关于本手册
本手册讲解 Maker 模式的对象制作视图中的「精灵动画」选项卡与「判定动画」选项卡。前者用于制作帧的编排(哪张图像显示几帧、以多快的速度播放),后者用于配合这些帧来移动判定和图像。「只想在攻击命中的那一瞬间启用攻击判定」「只在行走时让身体上下起伏」这类细致的打磨,就是在这两者之间来回操作完成的。
3 个选项卡的分工
对象制作视图的中央有 3 个选项卡。它们只是从不同角度看同一个对象,所以在哪个选项卡修改,结果都会进入同一个对象。
| 选项卡 | 决定什么 |
|---|---|
| 预览 | 判定和图像的基准值(不属于任何动画的、原始的位置与大小) |
| 精灵动画 | 帧的编排(图像的排列・速度・循环) |
| 判定动画 | 逐帧的值(该动画在该时刻的位置・大小・启用状态) |
在「预览」中决定的是地基,「判定动画」是在其之上的覆写。 如果希望攻击判定始终在同一位置,只用预览就够;如果想只在攻击的第 3 帧把它往前推,就在判定动画中打关键帧。
所选的动画会跨选项卡带着走。 在精灵动画中选中「attack」后切到判定动画,就能直接编辑「attack」的判定。
数据的保存方式
用一句话说,机制如下。
- 帧编排的原本是 AnimatedSprite2D 的 SpriteFrames。 精灵动画选项卡编辑的就是它。
- 每次编辑,AnimationPlayer 侧同名动画中只有帧推进的轨道会被重新生成。
- 在判定动画中打的关键帧不在重新生成的范围内。 即使改变帧编排,判定的关键帧也不会消失。
因此,从哪个选项卡开始编辑都可以。
精灵动画选项卡
首次设置
在缺少动画所需节点(AnimationPlayer 与 AnimatedSprite2D)的对象上,选项卡会显示说明和按钮。
| 出现的按钮 | 什么情况下出现 |
|---|---|
| 使用精灵动画(创建 AnimationPlayer + AnimatedSprite2D) | 两者都不存在时 |
| 将 Sprite2D 转换为 AnimatedSprite2D 并使用精灵动画 | 在 Godot 模式下用 Sprite2D 组建的对象 |
| 从模板加载(设置 + 动画注册) | 想同时完成设置和批量注册时 |
转换会继承节点名称。 由于 AnimationPlayer 的轨道是按节点名称解析对象的,已有的动画会原样继续有效。图像・布置・帧编排(hframes / vframes 或帧推进的关键帧)也会被继承。
使用骨骼动画(Skeleton2D)的对象无法使用本选项卡。 因为与帧编排的机制不契合,只会显示提示。
动画集与动画
左栏是「动画集 > 动画」的 2 层结构。
- 动画集是「待机」「行走」「攻击」这类归类的名称。
- 其下方排列着按方向区分的动画(朝下的行走、朝右的行走……)。
- 行的末尾会显示帧数。
可视化脚本的「更改动画」中能选择的是动画集名称,而不是动画名称。 因此,即使做好了动画,只要它没有挂在动画集上,就无法从可视化脚本中选择。 从选项卡的按钮添加动画时会一并创建同名的动画集,所以通常无需特别留意。
没有挂在任何动画集上的动画,会出现在一览末尾的「未分配」之下。这是为了让你打开旧项目时不改写数据地原样呈现,你可以从那里拖动把它放进动画集。
无法拥有动画集的对象(特效、粒子)的一览不是 2 层,而是平铺的排列。特效只持有 1 个动画,并且会自动设置为 AnimationPlayer 的自动播放。
一览中可以进行的操作
| 操作 | 方法 |
|---|---|
| 添加动画 | 工具栏的添加按钮(会一并创建同名的动画集) |
| 添加到已有的动画集 | 动画集行上出现的「+」 |
| 复制(副本) | 复制按钮,或 Ctrl+D |
| 拷贝 / 粘贴 | Ctrl+C / Ctrl+V(会粘贴到所选的动画集之中) |
| 改名 | F2,或右键 →「改名」 |
| 删除 | Delete,或右键 →「删除」 |
| 移入动画集 / 从动画集移出 / 重排动画集 | 在一览内拖动 |
拷贝会连帧的内容一起带走。 即使切换到别的对象之后也能粘贴。
删除动画集的行时,只有该动画集在使用的动画也会一起被删除。 被多个动画集引用的动画会保留。当前选中的行会删除什么,工具提示中会说明。
方向的设置
选中方向条目后,右侧会出现「方向」的 3×3 网格与「自动生成左向翻转」。
- 用网格的按钮指定该动画在哪些方向时播放(可多选)。
- 打开「自动生成左向翻转」后,只需准备朝右的图像,朝左时引擎会左右翻转显示。
- 新建动画时的默认值是:顶视图项目为全部 8 个方向,侧视图项目为左右(两者都以自动左右翻转为前提)。
一览的行上会用图标和文字显示方向。「全方向」「左右」这类常见组合会合并为一个词显示。
添加帧(从素材表添加)
用「从素材表添加」从精灵表中切出帧。
- 选择图像(用「浏览」,或用对话框内显示的图像一览)。
- 输入帧尺寸(1 帧的大小)或水平 / 垂直的帧数。改动其中一方,另一方会跟随。
- 在网格上点击(或拖动)选择要用的单元格。也有「全选」「清除」。
- 需要的话勾选「循环」,然后添加。
- 更换图像后,帧尺寸会按图像重新测定。 如果当前帧尺寸能整除该图像,就保持为素材表的分割设定;无法整除的图像(把 48×40 当作 32×32 之类)则会变成 1 帧 = 整张图像。
- 可以改变网格的显示缩放。用
Ctrl+ 滚轮也能逐级缩放。 - 从「初始判定调整」可以打开一个以所选帧为基准调整已有判定的独立窗口。这里的调整不仅作用于基准值,也会反映到该动画中已经打好的判定关键帧上(因为关键帧持有旧值时,只改基准值外观不会变化)。
- 1 个动画中可以混用来自多张素材表的帧。
把图像拖放到播放预览上,也会打开「从素材表添加」。 从图像一览停靠面板拖入时,会以加载了该图像的状态打开。如果还没有任何动画,会先询问是否创建。
帧编排的调整
用下方的帧条和其上方的工具栏来调整。
| 项目 | 内容 |
|---|---|
| FPS | 整个动画的速度(1〜120,默认 8) |
| 循环 | 不循环 / 循环 / 往复(往复是播放到最后后反向播放返回) |
| Wait(倍率) | 仅所选帧的显示时间倍率(0.01〜10。为 2 时显示时长是其他帧的 2 倍) |
| 显示缩放 | 播放预览的缩放(自动 / 50% / 100% / 200% / 400% / 800%) |
- 帧可以通过拖动重排。也有向左右移动的按钮。
- 帧也可以用
Delete删除。 - 播放按钮会让预览动起来。不循环的动画会停在最后一帧,因此可以确认收尾的画面。
「自动」缩放对像素画来说有时会得到不整齐的放大倍数。 想确认实际观感时,请固定为 100% 或 200%。
从模板加载
从「从模板加载」可以使用模板素材表批量注册动画与动画集。
- 用于俯视图(RPG Maker 格式):把 4 个方向 × 行走 / 奔跑 / 待机 / 停止(以及攻击)一次性注册,并完成动画集的分配。也支持攻击动作的武器图像。
- 用于侧视图:按模板的行顺序注册,并带自动左右翻转以对应左右。
两者都在 1 次操作(1 次撤销)内完成。 即使是尚未完成设置的对象,也会连所需节点的创建一起进行。
加载的详细格式请参阅另一份手册「从模板加载」。
判定动画选项卡
这是配合帧,按时刻移动判定和图像的选项卡。在左侧选择目标要素,用预览上的手柄移动,然后登记为关键帧。
可以移动的内容
从左侧的「要素」一览中选择。可移动的内容因要素种类而异。
| 要素 | 可移动的内容 |
|---|---|
| 对象本体(紫) | 旋转 / 缩放 |
| 对象图像(白) | 位置 / 偏移 / 旋转 / 缩放 / 显示・隐藏 |
| 墙壁判定(浅蓝)・受击判定(蓝)・攻击判定(红) | 启用・禁用 / 位置 / 旋转 / 缩放 / 大小(依形状为半径・高度) |
| 连接点 | 位置 |
- 本体没有位置。 根节点的位置在运行时会被移动处理改写,所以打关键帧没有意义。
- 只有图像是 Sprite2D 时,才能移动「帧编号」「左右翻转」「上下翻转」。AnimatedSprite2D 的帧编号由精灵动画选项卡管理,因此不在对象范围内。
切换要素的显示
右键点击一览的空白处即可选择要显示的种类。设置会按项目记住。
「对象本体」默认为隐藏。 因为让本体旋转的设置与左右翻转(自动生成左向翻转)无法并存,为了防止事故,改成由熟悉的人自己调出来的形式。在隐藏了某些内容期间,标题处会出现标记。
简单模式(默认)
以帧为单位编辑的模式。
- 从预览下方显示的帧一览中选择要编辑的帧。
- 在预览上拖动手柄来改变位置和大小。
- 改动会自动登记到所选的帧上。
- 关键帧会打在帧的起始时刻上。不会出现打在帧中途的关键帧。
- 预览的操作是:滚轮 = 缩放 / 中键拖动 = 移动画面。
- 帧一览的末尾有「END」行。它不是实际的帧,而是指向**动画终点(循环的接缝)**的行。想在「从最后一帧回到第一帧」这段区间中放入数值时(例如 360 度旋转),就把关键帧打在这里。
- 如果没有出现帧一览,说明该动画没有帧编号的轨道(或没有帧)。请在详细模式中编辑。
详细模式
自由指定时刻的模式。用「切换到详细模式」进入。
- 关键帧的时间轴编辑在下方的标准 AnimationPlayer 面板中进行(打开选项卡时会自动切换到目标播放器和动画)。
- 在时间轴上定位,并用预览上的手柄调整。
- 打开「自动同步」后,在拖动确定的瞬间就会在当前时刻登记关键帧。 关闭时则用「将当前状态登记为关键帧」来打。
- 打开本选项卡期间,关键帧的剪切 / 拷贝 / 粘贴快捷键(
Ctrl+X/C/V)会被禁用。 这是为了防止点击时间轴后的误操作。从菜单进行的明确操作仍然可用。 - 在底部面板切换动画后,左侧的一览和预览也会跟随。
工具栏的各个按钮
| 按钮 | 内容 |
|---|---|
| + 添加轨道 | 把所选要素的轨道添加到本动画中 |
| 将当前状态登记为关键帧 | 把所选要素的当前值作为当前时刻的关键帧插入(缺少的轨道会自动添加并通知) |
| 自动同步 | 拖动确定时自动登记关键帧(详细模式) |
| 初始关键帧同步 | 把在预览选项卡中设置的判定值反映到0 秒位置 |
| 还原到原点 | 把所选要素的位置还原为 (0, 0) |
| 插值 | 一并更改所选要素数值轨道的插值方式 |
| 网格吸附 / 吸附间隔 | 拖动时把位置和大小对齐到指定像素的倍数 |
| 播放 | 在选项卡内播放预览 |
关于「初始关键帧同步」
0 秒的关键帧被视作「基准值」。 按下按钮后,在预览选项卡中设置的各判定值会进入所编辑动画的 0 秒位置,并且不存在的判定的轨道会被删除。
这是「在预览中整理好了判定,但播放动画时又回到旧位置」时的修正方法。反过来,在帧中途有意打下的关键帧不会被改动。
另外,在预览选项卡或检查器中更改基准值时,0 秒的关键帧会自动跟随。 否则保存场景时会回到旧值(因为保存时会把基准值动画应用到节点上)。
插值方式
| 方式 | 动作 |
|---|---|
| 离散(逐帧) | 在帧切换的瞬间数值跳变 |
| 连续(平滑) | 关键帧之间会被插值,因此平滑移动 |
| 混合 | 各轨道设置不一致的状态(仅显示用) |
新建轨道的默认值是:图像和本体为「连续」,判定为「离散」。 判定多用于「只在这一帧启用」这类用法,被插值会产生非本意的中间状态。如果已有轨道的设置一致,则会继承它。
使用骨骼动画时
在使用骨骼动画(Skeleton2D)的对象上,预览无法显示图像(本选项卡的预览是手绘的,无法再现骨骼变形)。上方只会出现一行提示,判定的布置本身仍然可以进行。
2 个选项卡的联动
改变帧编排时关键帧的跟随
在判定动画中打的关键帧是以绝对时刻保存的。因此,如果在精灵动画侧改变 FPS 或 Wait,或增减・重排帧,什么都不做的话帧与关键帧的对应关系就会错位。
这是自动移位的。
- 会比较编辑前后的帧编排,把关键帧的时刻移动到新帧的位置。
- 位于被删除帧区间内的关键帧会一起消失。
- 0 秒的关键帧(基准值关键帧)始终留在 0 秒。
- 用
Ctrl+Z时,帧编排和关键帧会一起还原。
基准值会被分发到所有动画的机制
创建轨道时,0 秒位置会自动放入基准值关键帧,并被分发到所有动画的开头。 这样在游戏中切换动画时,上一个动画中移动过的值就不会残留。
实用示例
只在攻击的第 3 帧启用攻击判定
- 在「预览」选项卡整理攻击判定的位置和大小(这会成为基准值)。
- 在「精灵动画」选项卡选择攻击动画,确定帧编排。
- 切到「判定动画」选项卡,从要素中选择攻击判定。
- 在帧一览中选择第 1 帧,把「启用・禁用」设为禁用并登记关键帧。
- 选择第 3 帧设为启用,在第 4 帧再次设为禁用。
- 播放确认判定是否只在期望的帧出现。
如果判定没有出现在预想的位置,请按「初始关键帧同步」后重来。 有时 0 秒处还残留着带旧值的关键帧。
配合行走让身体上下起伏
- 在「判定动画」选项卡,从要素中选择对象图像。
- 在帧一览中选择一帧,在预览上拖动稍微上移(改动会自动登记到所选帧)。
- 在另一帧则下移。
- 把插值设为「连续(平滑)」,帧之间就会被平滑插值。
制作 360 度旋转
- 在「判定动画」选项卡把对象本体设为显示(右键点击要素一览的空白处)。
- 在第一帧打上 0 度的关键帧。
- 选择帧一览末尾的「END」行,打上 360 度的关键帧。
如果打在最后一帧上,从那里回到第一帧的区间看起来会是反向旋转。 打在终点(END)才是正确做法。
只用朝右的图像制作角色
- 在「精灵动画」选项卡制作朝右的动画。
- 选中方向条目,在 3×3 网格中指定「右」。
- 打开「自动生成左向翻转」。朝左时会自动翻转显示。
注意事项
- 没有挂在动画集上的动画无法从可视化脚本中选择。 可视化脚本选择栏的候选是由动画集名称生成的,而不是动画名称。请把留在「未分配」中的动画拖进动画集。
- 删除动画集的行时,只有该动画集在使用的动画也会一起被删除。 被其他动画集同时引用的会保留。
- 「往复」无法只靠精灵动画侧表达。 由于那里的数据结构只能保存是否循环,往复是作为动画侧的设置保存的(操作上无需在意)。
- 改变帧编排会移动判定关键帧的时刻,位于被删除帧区间内的关键帧会被删除。 对于持有不想丢失关键帧的帧,请用 Wait 调整而不是删除。
- 0 秒的关键帧作为「基准值」被特殊对待。 它会被分发到所有动画的开头,并在保存场景时应用到节点上。把演出用的数值放在这里会影响其他动画。
- 如果在预览选项卡整理好的判定在动画中又还原了,请按「初始关键帧同步」。 这说明 0 秒的关键帧持有旧值。
- 「对象本体」与左右翻转(自动生成左向翻转)无法并存。 这也是它默认隐藏的原因。
- 判定轨道的默认插值是「离散」。 想让判定平滑移动时,请明确改为「连续」。
- 使用骨骼动画(Skeleton2D)时无法使用精灵动画选项卡。 判定动画选项卡除了预览不显示图像之外,判定的布置仍可进行。
- AnimatedSprite2D 的帧编号无法在判定动画中移动。 因为帧编排由精灵动画选项卡作为原本管理(只有用 Sprite2D 组建的对象,才能在判定动画中指定帧编号)。
- 打开详细模式期间,
Ctrl+X/C/V的关键帧操作被禁用。 从菜单仍可操作。