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

Project1

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

[原创发布] drill_up小插件集合

[复制链接]

Lv1.梦旅人

梦石
0
星屑
54
在线时间
10 小时
注册时间
2025-10-26
帖子
2
41
发表于 2025-10-27 13:42:45 | 只看该作者
本帖最后由 mamamiyas 于 2025-10-27 13:53 编辑

一些关于Drill_TitleGif.js加载图片的小优化:
起因是我玩的某个rpgmv游戏,该游戏的标题图是个动态的白毛异瞳美少女,然而我每次开游戏进标题或从别的界面返回标题界时都要会明显延迟一下然后再黑屏一会儿才逐渐显示出标题图,美少女很好看但这界面加载加载速度太拉了,连原神和黑猴用的的实体地图标题都没见卡过的怎么这个反倒卡了。于是我就找到了该游戏用来设置标题用的这个Drill_TitleGif.js和图片文件打算优化一下。
我首先看了图文件,分为静态图的和动态光点图和动态少女图,大头是进行动态播放的少女图片组,一组就有540张图片9秒循环播放来实现动态效果,,,另外还有一组差分也是540张,根据游戏进度换成差分组的来播放。结果js里的加载逻辑是每次进标题都要重新创建元素和读取图片,设置为隐藏的也照样读进内存只是不显示,额如果是普通gal一共就十几张图片全加载也没事但这个的读取总量是破千张的图片组而且每次都重读。我试了下,加载设置为隐藏的图片消耗的时间大约是设置为显示的图片的一半少一点。然后我就把隐藏的判断跳过不读取了,然后加载总时间降到了大约原来的2/3。但这样还是会明显黑屏,明明有标题的快照结果返回标题又重新黑屏这就观感很不好,我就看了看刷新机制,要等到判定全读取完才创建元素节点从时机上来看有些慢了,于是我就加了个异步加载的机制,然后把首次的create从updata里提前放到了backgroundcreaate里面执行,提前了元素创建的时机,先读最多30帧的图片然后再慢慢加载,现在进标题已经基本感觉不到什么延迟和明显黑屏了而且图片播放是正常的。我测了下函数完成执行的时间,大约是从原来的460多ms降到了7到12ms这样,我也不知道就0.5秒为什么能有那么大的延迟感但总之现在没什么延迟感了。
另外我发现这个js的initialize函数在读档的那一刻不知道为什么也会执行一次,而原本的initialize也写了图片的读取,这就导致读档的那一下变得很卡,我注释了读取部分结果读档在也不卡了,,,。initialize的读取部分看的出来是打算做预读取做缓存,但后面执行的create函数里有一模一样的函数再读取一遍图片,create读缓存更快一些吧但这样好像意义不大还让多判断一次缓存。我是第一次接触rpg的插件修改,搞不太懂为什么读档时也要初始化一次TitleGif。
附件是我优化的TitleGif-fix.js,和与游戏用的TitleGif.js的差异对比报告diff,版本都是1.7。另外我也拿网盘里给的最新版TitleGif.js(看着也是1.7版本)试过了,同样和游戏的一样会有延迟和黑屏。

Drill_TitleGif.zip (13.67 KB, 下载次数: 1)


点评

感谢,你的思路比较有意思,我可以试试  发表于 6 天前
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
341
在线时间
23 小时
注册时间
2022-12-20
帖子
20
42
发表于 2025-10-27 23:17:42 | 只看该作者
看的心痒痒的,恨不得马上弃用MZ转入MV
一个停摆了很久很久的游戏开发者,偶尔上论坛逛逛。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-11-18 12:31

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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