关于预加载
相关插件
相关核心插件:
◆Drill_CoreOfActionSequence 系统 - GIF动画序列核心
◆Drill_CoreOfGaugeMeter 系统 - 参数条核心
◆Drill_CoreOfGaugeNumber 系统 - 参数数字核心
……
所有地图界面装饰插件相关,如:
◆Drill_LayerGround 地图 - 多层地图背景
所有战斗界面装饰插件相关,如:
◆Drill_BattleBackground 战斗 - 多层战斗背景
所有天窗层插件相关,如:
◆Drill_HtmlDynamicSnapshotBackground 游戏窗体 - 天窗层的多层背景
大部分需要配置 资源 的插件都有预加载的配置设置。
如果你不清楚预加载应该在什么时候开启,那么可以直接看章节:使用场景 。 |
名词索引
以下你可以按住ctrl键点击下面的词,可以直接定位到想了解的名词:
预加载 | CPU 内存 外存 加载 预加载 |
使用场景 | 动画转场的预加载 图片的预加载 GIF闪烁与预加载 |
预加载
快速理解
1)内存、外存与CPU
CPU: 是指软件在系统中 运行程序任务 所占的百分比。
软件要进行游戏每帧的计算时,都会占用一部分的CPU来确保程序执行。
内存: 是指软件在系统中 占用的空间。
软件每次需要临时使用新数据时(比如加载一个图片),都会向请求开辟内存空间放数据以供随时使用。
打开win10的任务管理器(快捷键 Ctrl + Shift + Esc),可以看到所有程序的CPU和内存的关系。
外存: 是指系统内存储在 磁盘 上面的文件,也就是存储文件。
CPU 是衡量 游戏性能 的指标。内存 是衡量 游戏占用空间 的指标。外存 是游戏资源文件 占用/存储 在磁盘的空间指标。 |
2)内存、外存与游戏
以吃饭为例子,你需要跟 桌子、菜、碗 等交互物进行交互。
如下图,盘子中的菜,就好比存储在外存中的资源文件。
加载: 指将外存的数据文件,复制或转移到内存中。
把菜夹到碗里这个过程,即加载的过程。
加载需要时间,只不过这个时间很短,10帧以内就可以加载完毕。
预加载也就是在进行游戏前,提前把盘子里的菜夹到碗里。但是,由于碗装不下所有菜,所以要先考虑哪些菜必须吃,才可以提前夹。 |
加载时间短,并不代表没有加载时间,如果文件数量很多,加载时间的问题会凸显,比如图片闪烁问题,可见:GIF闪烁与预加载 。 |
原理
1)加载与预加载
预加载: 指在进入游戏后,对指定的资源进行提前加载,并且加载后长期占着内存,不会被释放。
游戏不会一次性将全部资源都 预加载,因为那样会占用大量的内存。大部分贴图都是按需载入,比如切换 战斗界面、菜单界面、地图界面 时,会弹出loading提示,这时场景加载就是大量加载图片的过程。 |
以地图界面切换到菜单界面的过程为例,
界面过渡时,会销毁上一个界面的所有资源和贴图。
如果资源图片被标记了预加载,那么会被绑定到 预加载容器 中,
那么该资源图片会永久占着内存,直到游戏关闭。
部分插件中能进行 预加载 的配置。
预加载的标记规则 可见后面章节:规则 。
2)内存占用
打开电脑的属性,你可以看到内存信息。
通常情况下 电脑内存 不会被全部占满。
但是,如果你一边开 PS、浏览器,一边用RMMV测试的时候,就有内存占满的风险了,内存满了会导致游戏闪退。
内存简单计算方法:
以100张1M的图片为例,100x1M = 100M。
也就是说,加载这些图片,会暂时使用100M内存。
注意,不管加载还是预加载,都会占用内存,如果你在游戏中某处配置了100张1M的png大图(比如GIF插件),可以比较明显地看到100M的内存占用增加。 |
使用场景
规则
只要满足下面的条件,即可考虑启用预加载:
> 游戏中多次、反复使用的贴图,可以开启预加载功能。
(比如UI、作为幕布的纯色图片、GIF装饰物等)
> 配置的GIF贴图在游戏时会不停地闪烁,那么该贴图可以开启预加载功能。
(预加载能消除闪烁问题)
其他情况下,都最好默认关闭 预加载 功能。
动画转场的预加载
动画转场: 通常指 地图传送、进入战斗界面 等情况时,播放的动画效果。
由于动画要求播放时立即显现,所以一般都会启用预加载。
动画转场相关设计可以去看看:“16.图片 > 特效设计-动画转场.docx ”。常用的动画转场可以开预加载,不常用的可以不开。 |
图片的预加载
下面插件提供了常规图片的预加载功能:
Drill_PictureShortcut 图片 - 快捷操作
如果图片立绘很大,第一次显示图片时会闪一下。如果你不希望立绘闪烁,可以放在预加载列表中。 |
GIF闪烁与预加载
GIF动画序列中,经常会遇到GIF播放时不停闪烁的情况。
这是因为第一次播放时,需要即时加载,即时加载来不及显示图片全貌,所以就闪了。
你可以在状态元、动作元配置中,勾选预加载设置。
预加载可以避免 即时加载 的闪图问题。