设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
楼主: Rose_shadows
打印 上一主题 下一主题

[原创发布] [MV/MZ]ULDS无限图层插件使用详解 (2025-07-14更新+范例v4)

  [复制链接]

Lv2.观梦者

梦石
0
星屑
358
在线时间
134 小时
注册时间
2015-12-25
帖子
23
61
发表于 2024-4-15 00:54:49 | 只看该作者
麻烦问一下,想做成进入遮罩房间后显示npc, 并且npc可以在遮罩房间和走廊之间来回移动,应该怎么做呢?
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7556
在线时间
857 小时
注册时间
2021-8-28
帖子
101
62
 楼主| 发表于 2024-4-15 14:15:14 | 只看该作者
人偶师与机器人 发表于 2024-4-15 00:54
麻烦问一下,想做成进入遮罩房间后显示npc, 并且npc可以在遮罩房间和走廊之间来回移动,应该怎么做呢? ...

可以转换一下思路,底下铺上一整块房间+走廊的地图,然后用黑色遮罩图片遮住各个房间就行。玩家踩到哪个区域就隐藏哪个区域的黑色遮罩。遮罩的visible可以这样写:

"visible": "(function(){var regionId = 200; if($gamePlayer.regionId()===regionId){return false;}else{return true;}})()"

表示当玩家踩到区域#200时遮罩隐藏。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
144
在线时间
21 小时
注册时间
2024-5-1
帖子
8
63
发表于 2024-5-17 21:18:19 | 只看该作者
感谢大佬!
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7556
在线时间
857 小时
注册时间
2021-8-28
帖子
101
64
 楼主| 发表于 2025-7-14 16:35:07 | 只看该作者
ULDS简易范例更新至v4.00,更新内容如下:
1. 修改了ULDS插件,新增截取源图像的一部分作为图片图像的功能,并添加了对应的范例;
2. 初步整理了范例工程和插件帮助内容;
3. 更新了 ReadMe 文件。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2617
在线时间
375 小时
注册时间
2021-9-20
帖子
113
65
发表于 2026-1-15 15:15:43 | 只看该作者
地图设定的宽高是否要和图片大小一致?图片尺寸是否有限制,我图片是3500*3000,是不是过大了?
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
890
在线时间
91 小时
注册时间
2020-7-23
帖子
46
66
发表于 2026-1-15 16:34:24 | 只看该作者
kingybk1976 发表于 2026-1-15 15:15
地图设定的宽高是否要和图片大小一致?图片尺寸是否有限制,我图片是3500*3000,是不是过大了? ...

不用,但是图片不会自动缩放,不是做滚动效果的话默认只会显示出左上角的一部分。你可以先在RM里铺个底然后右键地图保存为图像,之后照着地图图像的尺寸调整素材
臭画画的
我的代码盲让我用插件都举步维艰
梦中Non-Title RPG简称梦NTR脑内制作中!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
99
在线时间
31 小时
注册时间
2026-2-17
帖子
7
67
发表于 2026-3-2 03:13:59 | 只看该作者
谢谢大大的教程!
做的时候有想到能不能在遮罩房间房间基础上,玩家站在特定ID区域内,效果为房间慢慢显现而不是瞬间显现
自己尝试的时候在“opacity”里加了一段检测玩家有没有踩在id10区块上,但是改了好久场景还是像“visible”一样是踩在区域内瞬间显现的
虽然也有可能是自己哪里没检查出来或者脑子笨没理解,麻烦大佬看看了><
<ulds> {
"name": "bathroom1",
"x": "this.rx(0)",
"y": "this.ry(0)",
"z": 1,
"opacity": "(function(){var regionId=10;var duration=1.5;var f=duration*60;var val=255/f;if($gamePlayer.regionId()==regionId){if(t<f){return t*val;}else{return 255;};}else{return 0;}})()"
} </ulds>
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7556
在线时间
857 小时
注册时间
2021-8-28
帖子
101
68
 楼主| 发表于 2026-3-8 17:36:45 | 只看该作者
本帖最后由 Rose_shadows 于 2026-3-8 17:37 编辑
pharnine 发表于 2026-3-2 03:13
谢谢大大的教程!
做的时候有想到能不能在遮罩房间房间基础上,玩家站在特定ID区域内,效果为房间慢慢显现 ...


很有意思的想法!这个要做到的话可以参考自由淡入淡出那个例子,因为无法实时获取到图层的真正不透明度,所以要用变量来存储图层的当前不透明度和目标不透明度。
可以这样写:

"opacity": "(function(){var regionId=16;var character=$gamePlayer;var init_opacity=0;var duration=0.5;var vId_opacity=11;var vId_target=12;var f=duration*60;var step=(255-init_opacity)/f;if(!v.value(vId_opacity)){v.setValue(vId_opacity,init_opacity);}if(character.regionId()===regionId){if(v.value(vId_target)!==255){v.setValue(vId_target,255);}var result=Math.min(v.value(vId_target),v.value(vId_opacity)+step);if(v.value(vId_opacity)!==result){v.setValue(vId_opacity, result);}return result;}else{if(v.value(vId_target)!==init_opacity){v.setValue(vId_target,init_opacity);}var result=Math.max(v.value(vId_target),v.value(vId_opacity)-step);if(v.value(vId_opacity)!==result){v.setValue(vId_opacity, result);}return result;}})()"

其中:
regionId - 人物踩在这个ID的区域里淡入图层,不在该区域则淡出图层。例子占用了区域#16。
character - 哪个人物所踩的区域可以决定图层的淡入淡出。例子里的 $gamePlayer 指玩家。
init_opacity - 人物没有踩在区域内时图层的初始不透明度。
duration - 淡入/淡出时长。单位秒。
vId_opacity - 存储当前不透明度的变量ID。只读。例子占用了变量#11。
vId_target - 存储目标不透明度的变量ID。只读。例子占用了变量#12。

所以这个例子的效果是当玩家踩在区域#16时,图层会慢慢显现,离开区域#16时图层则会渐渐消失。
回复 支持 1 反对 0

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
74
在线时间
13 小时
注册时间
2026-2-27
帖子
1
69
发表于 2026-3-16 12:25:12 | 只看该作者
感谢大佬的教程,尝试了一些想法,很受用,很优秀的插件

另外我有一些疑问,比如说能否全局设置一些ulds,因为我现在对话框就是通过ULDS实现的,每张图都做多少有点累(虽然也只是每张图多贴一段罢了)

另外战斗界面中是否可能运用ULDS?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
99
在线时间
31 小时
注册时间
2026-2-17
帖子
7
70
发表于 2026-3-17 20:05:47 | 只看该作者
Rose_shadows 发表于 2026-3-8 17:36
很有意思的想法!这个要做到的话可以参考自由淡入淡出那个例子,因为无法实时获取到图层的真正不透明度, ...

测试了一下完全可以!原本有点指令冲突的bug也用这个解决了,感谢大佬!!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2026-6-4 12:37

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表