显示更多帧的动画
Animations with More Frames | The Official RPG Maker Blog
我们先前已经介绍了行走图在引擎中如何运作,但现在我们需要显示超过四帧的动画,或只是一个待机动画,该怎么办呢?
现在我为我的游戏绘制了一个笔记本电脑,并打算把它放在桌上,玩家能够与其互动并打开它

这张图只用了四帧,最简单的方法就是将它们对齐到一个空的3x4的单个行走图的一列(文件名为!$anyname.png,其中!表示去除了行走图向上八分之一格的偏移,$表示这张图只有单个行走图,而非八个)

至于选择哪一列,这不重要,可以把三列都填满,不过具体运作起来都没什么区别。总之,只要在一张行走图中的其中一列,可以通过让角色转动朝向来实现动画,像这样:

由于笔记本自己会改变朝向,所以要勾选固定朝向。同时这个事件并不完整,因为每次与事件互动时他都会重新打开,所以要么需要重新关闭,要么跳转到新的标签页。
但如果我不仅想让笔记本打开,还能让它屏幕亮起来:

想让它按先前的运行方式来运行,就比较难了
先把它们放入同一个行走图中,只要排在空闲的一列:

但我们不能更改到行走图的一列,只能更改到同一张图上的另一行走图或者另一张图上(不得不说只有xp能直接选一个具体的帧来更改,多少有点倒退了)
我们可以通过几个步骤来实现动画:
使用开关和变量
我们的起始页和上一个事件几乎一样,但最后要开启一个开关或操控变量(这里使用了独立开关)

这一开关会激活下一页,事件图像为下一列的第一帧,也就是动画序列的第五帧

这一页与第一页相连,使用自动运行,从第一页停下的地方继续
然后再更改朝向,显示第六第七帧,由于是自动执行,所以需要再使用第三页,来作为播放动画后的处理

这一页的事件由你而定,最重要的是这一页固定朝向,玩家从不同角度与事件对话时,事件不会转向其他帧
- 优点:可以在一张行走图上容纳12帧相同的动画
- 缺点:比较占事件页,最多只能有20个事件页(其实应该也够了)
使用多张图片
虽然不能更改到同一行走图上的列,但可以更改图像——也就是直接更改到另一个行走图上来播放动画
可以放到两个不用的图像

也可以放在同一个大行走图集上

但最重要的是:想展示的第二张第一帧必须与第一张的最后一帧处于同一位置
这是由于更改图像会整个替换显示的图像,但会保留显示的朝向,而不能直接更改到某一列上

现在事件是这样:

优点:
- 可以把整个动画都写在一页里
- 如果有三个移动方式相同的东西(比如有三个看起来不同的笔记本),可以放在同一张图,并重复使用同一个移动路线命令
缺点:
- 可能会占用太多图,尤其是当动画帧数不同时,图片上可能会有很多空白
脚本调用
我们可以直接通过调用脚本,来切换当前行走图上的列!
在没有固定移动命令的情况下,可以使用如下脚本代码:
$gameMap.event(x)._originalPattern = y;
x代表你想切换列的事件ID,y是行走图上的列

y值只改变列,不影响行。
现在的解决方案可以是这样的:

可能会发现我们脚本调用后的等待时间是20帧而不是10帧,因为使用10帧时会出现奇怪的bug
如果想在移动路线设置中使用脚本调用,可以使用如下代码:
this._originalPattern = y
在编辑器里看起来会是这样:

提示:如果想要调用脚本,就要确保切换的帧在同一行,如果尝试将转向命令和脚本调用连在一起,就会出现转动帧在切换列之前会闪烁一下。
优点:
- 在不切换事件页、节省图片空间的情况下,利用同一张行走图来实现12帧动画
缺点:
- 可能需要调整动画的节奏以免出现故障
- 需要掌握脚本调用
总结
显然三种方式各有优缺点,使用多页行走图是最为容易理解的方式。
无论用哪种方式,动画的表现形式可能会有所不同,但了解所有方法以及如何让它们发挥作用是最重要的!