Skip to content

关于预加载

相关插件

相关核心插件:

◆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播放时不停闪烁的情况。

这是因为第一次播放时,需要即时加载,即时加载来不及显示图片全貌,所以就闪了。

你可以在状态元、动作元配置中,勾选预加载设置。

预加载可以避免 即时加载 的闪图问题。

贡献者

暂无相关贡献者

页面历史

暂无最近变更历史