Project1

标题: RMXP显示大图片?会高概率崩溃吗? [打印本页]

作者: 89444640    时间: 2021-8-20 09:46
标题: RMXP显示大图片?会高概率崩溃吗?
本帖最后由 89444640 于 2021-8-20 09:48 编辑

RMXP不能调用显卡这个硬伤实在是要命,
现在是RMXP处理大图像时候无论你电脑再好他照样会卡我就忍了,那么会不会因为显示大图像毁数据库或者运行游戏时候一旦显示大图像就概率崩溃?

比如实现一个我想要的画面的效果,
动态的前景火焰循环,当前显示效果如下,

但是图像尺寸是6M,我是觉得没啥,但是……下略……图像越小越好

为了减小尺寸做了实验
结果是 gif虽然小,但是效果奇差,

加了还不如不加,根本无法满足画面要求,而且RMXP无法导入到pic素材。


jpg我简直不能忍受,无法透明背景,只能用合成加法。

我最讨厌的就是不透明!

所以,如果按照需要在切换场景或者剧情结束时,释放内存,是不是真的让xp这种不会调用显卡的,把内存腾出来留着加载别的图像用了?
这种也只是在剧情或者属性迷宫中会出现,按说释放掉按说就行了吧?
反正我加载70M的那个圣雨动画也没见崩溃,是不是不用管都用完释放就行了?





作者: 灯笼菜刀王    时间: 2021-8-20 11:19
本帖最后由 灯笼菜刀王 于 2021-8-20 11:23 编辑

这里设计方案等着你来沟通, 结果群里大面都不露宁愿到论坛发长篇大论是吧? 然后等人家做完再来叽叽歪歪是吧?

压缩方案三年前就给你了, 自己坚持死脑筋"决不压缩", 效果试都不试, 再去用蹩脚的GIF拆PNG是吧?

工作忙也就算了,休息日跑出去玩也就算了,但是能上网宁愿到论坛吹水不到都群里露个面, 呵呵

把抽空的时间都投在你工程上, 甚至停止了自己的工程的我简直就是傻瓜一样

大家说说看,这样甲方还有必要伺候么?
作者: ppspssss    时间: 2021-8-20 12:40
动画只支持192X192, 所以你可把动画分辩率由640X480降成192X144 , (不使用脚本
若会脚本就把图片分割成若干640X480图片, 再用序列帧顺序播放,

另不只是RMXP,  VX, VA MV, MZ全都是只支持单线程, 不存在电脑多好就全吃的情况  
作者: 非常白菜    时间: 2021-8-20 12:56
呃,我来提供一个或许对你有帮助的小程序,Large Address Aware, LAA可以使32位程序访问到大于2GB的内存,在64位操作系统下最多可以使用4GB内存



Large Address Aware.rar (13.01 KB, 下载次数: 16)


作者: guoxiaomi    时间: 2021-8-20 13:01
3200x1920x4一张图在内存里也只有28M吧……
作者: enghao_lim    时间: 2021-8-20 14:04
RMXP毕竟是很久以前的产物,况且它生来就不打算考虑这些问题。我以前玩大量图片显示的RM游戏作者都会表明,代表玩家得时时刻刻存档,不然不知道啥时会爆内存。
作者: fux2    时间: 2021-8-20 14:53
尺寸本身是有限制的,不过超出限制的时候会报错而不是内存访问异常
出现异常更可能是其他问题,比如经典精灵泄漏
作者: Im剑侠客    时间: 2021-8-20 19:34
看来数字君的这个效果,是在地图上的效果。
想了想,有几种解决方案:
1.显示动画,而且是按等待帧,手动循环。很可能就是数字君当前的方案。
2.显示动画,把loop_animation,即循环动画从sprite battler也就是战斗动画的技术中,给提炼出来,应用到地图(scene_map)。循环动画相对于普通动画有很多优点,如:只需要一个精灵,而且可以随着启闭即时出现或消除。
3.按照窗口大小,拆分成单帧图片,一个事件并行处理,图片随编号进行循环的显示。
4.学习mog的地图菜单技术,新建一个UI,与普通的UI有个区别,也就是在update加一个bitmap的更新循环。同时可以做到开关启闭,也可以做到开关介入循环启动的条件,达到合适的平时不影响的效果。
最后,再说说我对RMXP默认的释放机制的看法,显示动画的时候,开着任务管理器观看内存变化,我发现显示动画的过程,是一个内存上升与递减并存的状态,当动画显示结束,这个内存占用立即就没有了。我感觉这个才是卡顿的源头,也就是说后一帧动画显示,内存加载这一帧且释放前一帧(假设),如此一来,反复之中才有了损耗。也就是说,如果保持当前方案的话,将这个特性关闭就可以直接解决。
然后,说说我的,我自己使用的RMXP因为使用了XAS的系统,默认的这个特性就没有体现出来,我觉得XAS系统可能写了什么,然后抑制住默认的这个特性,虽然我并没有提炼出这个特性的关键点,这一点或许希望楼下的补充吧。
作者: 89444640    时间: 2021-8-21 05:52
标题:
本帖最后由 89444640 于 2021-8-21 07:03 编辑
Im剑侠客 发表于 2021-8-20 19:34
看来数字君的这个效果,是在地图上的效果。
想了想,有几种解决方案:
1.显示动画,而且是按等待帧,手动循 ...


在不大动脚本的情况下,也有几个方法,
1、640*480 全都/4 变成160*120,然后放大四倍,
缺点,高清特效的细节都没了,看起来会是一片马赛克
2、用菜刀给的有损压缩,体积减小为原来一半甚至左右,压缩后非像素图有损问题也不大。
缺点,要留原图,以后再想加工比较麻烦,压缩后的图像不能再PS了,否则会出现黑边根本没法擦除,据soul说用sai打开存psd后可能没黑边。
但是毕竟有损压缩,不到输出时候不用,因为我为了省事,很多图都是直接素材库里直接加工了,免得我没备份原图。
3、抽帧,循环光效隔1帧删一个,体积减小为原来一半
缺点 循环动画变得不流畅,因为xp40帧实际只有20帧,我动画播放时候为了不丢帧还是2帧更改一次图像,抽图太多了画面会显得一蹦一蹦的。

所以目前还是维持原状,用有损压缩减小了一点体积(光效我还没存原图,以后这几个不能加工了,到是这几个也不用加工了)

用动画播放特效其实也行,不过有个图大会卡的问题,guoxiaomi的全屏动画播放因为我光效太大70M那个ORZ,播放前要先卡几秒,因为没预加载到内存,所以我只能在到这个场景前,先过场假装黑屏读盘,把这段剧情要用的动画先播放一遍加载到内存,当然还得先让声音为0不然就穿帮了,等到剧情时候再去播放这个动画,就不会卡那么久了。

感觉没啥变化啊 除了cpu使用上来一点点,我一直当现在电脑性能过剩来做的所以以前从来不考虑rmxp会不够用,没想过会有软件问题造成性能不够用,你看这cpu才9%,内存才22%……不说利用100%好歹游戏运行起来利用50%然后游戏运行很流畅才好XD

作者: 任小雪    时间: 2021-8-21 06:23
不能将图片分割成4份吗
作者: RPGzh500223    时间: 2021-8-27 15:18
RMXP显示一张图片最好别超过4M(具体大小我忘了)
以前遇到这个问题,显示一张6M的图片时间远超显示2张3M的(就算同宽同长)
我解决的办法就是改变图片的大小
网上一搜就行了https://www.cnblogs.com/chenxiaomeng/p/6572410.html

其实你这情况分成单张切换几乎不会影响效率(直接脚本,别用事件)
分成640 * 480的才20张图,原来试过200张的都不卡……
作者: saterick    时间: 2021-8-31 08:46
有遇到类似情况,记得当时反反复复折腾了好几天,最终还是采用了多张640*480图片轮换,执行效率最高、素材要求最小。至于大图,之前有把同一角色的战斗动画一直往下无限延伸的,每次施展都会明显卡顿一下,后来发现拆开来效率就好很多了。不想从技术层面和RMXP太较真,限制多、扩展性差反而是特色,平常心更重要。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1