手册:精灵动画与判定动画(对象制作视图)

关于本手册

本手册讲解 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. 选择图像(用「浏览」,或用对话框内显示的图像一览)。
  2. 输入帧尺寸(1 帧的大小)或水平 / 垂直的帧数。改动其中一方,另一方会跟随。
  3. 在网格上点击(或拖动)选择要用的单元格。也有「全选」「清除」。
  4. 需要的话勾选「循环」,然后添加。
  • 更换图像后,帧尺寸会按图像重新测定。 如果当前帧尺寸能整除该图像,就保持为素材表的分割设定;无法整除的图像(把 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 的帧编号由精灵动画选项卡管理,因此不在对象范围内。

切换要素的显示

右键点击一览的空白处即可选择要显示的种类。设置会按项目记住。

「对象本体」默认为隐藏。 因为让本体旋转的设置与左右翻转(自动生成左向翻转)无法并存,为了防止事故,改成由熟悉的人自己调出来的形式。在隐藏了某些内容期间,标题处会出现标记。

简单模式(默认)

以帧为单位编辑的模式。

  1. 从预览下方显示的帧一览中选择要编辑的帧。
  2. 在预览上拖动手柄来改变位置和大小。
  3. 改动会自动登记到所选的帧上。
  • 关键帧会打在帧的起始时刻上。不会出现打在帧中途的关键帧。
  • 预览的操作是:滚轮 = 缩放 / 中键拖动 = 移动画面。
  • 帧一览的末尾有「END」行。它不是实际的帧,而是指向**动画终点(循环的接缝)**的行。想在「从最后一帧回到第一帧」这段区间中放入数值时(例如 360 度旋转),就把关键帧打在这里。
  • 如果没有出现帧一览,说明该动画没有帧编号的轨道(或没有帧)。请在详细模式中编辑。

详细模式

自由指定时刻的模式。用「切换到详细模式」进入。

  • 关键帧的时间轴编辑在下方的标准 AnimationPlayer 面板中进行(打开选项卡时会自动切换到目标播放器和动画)。
  • 在时间轴上定位,并用预览上的手柄调整。
  • 打开「自动同步」后,在拖动确定的瞬间就会在当前时刻登记关键帧。 关闭时则用「将当前状态登记为关键帧」来打。
  • 打开本选项卡期间,关键帧的剪切 / 拷贝 / 粘贴快捷键(Ctrl+X / C / V)会被禁用。 这是为了防止点击时间轴后的误操作。从菜单进行的明确操作仍然可用。
  • 在底部面板切换动画后,左侧的一览和预览也会跟随。

工具栏的各个按钮

按钮 内容
+ 添加轨道 把所选要素的轨道添加到本动画中
将当前状态登记为关键帧 把所选要素的当前值作为当前时刻的关键帧插入(缺少的轨道会自动添加并通知)
自动同步 拖动确定时自动登记关键帧(详细模式)
初始关键帧同步 把在预览选项卡中设置的判定值反映到0 秒位置
还原到原点 把所选要素的位置还原为 (0, 0)
插值 一并更改所选要素数值轨道的插值方式
网格吸附 / 吸附间隔 拖动时把位置和大小对齐到指定像素的倍数
播放 在选项卡内播放预览

关于「初始关键帧同步」

0 秒的关键帧被视作「基准值」。 按下按钮后,在预览选项卡中设置的各判定值会进入所编辑动画的 0 秒位置,并且不存在的判定的轨道会被删除。

这是「在预览中整理好了判定,但播放动画时又回到旧位置」时的修正方法。反过来,在帧中途有意打下的关键帧不会被改动。

另外,在预览选项卡或检查器中更改基准值时,0 秒的关键帧会自动跟随。 否则保存场景时会回到旧值(因为保存时会把基准值动画应用到节点上)。

插值方式

方式 动作
离散(逐帧) 在帧切换的瞬间数值跳变
连续(平滑) 关键帧之间会被插值,因此平滑移动
混合 各轨道设置不一致的状态(仅显示用)

新建轨道的默认值是:图像和本体为「连续」,判定为「离散」。 判定多用于「只在这一帧启用」这类用法,被插值会产生非本意的中间状态。如果已有轨道的设置一致,则会继承它。

使用骨骼动画时

在使用骨骼动画(Skeleton2D)的对象上,预览无法显示图像(本选项卡的预览是手绘的,无法再现骨骼变形)。上方只会出现一行提示,判定的布置本身仍然可以进行。


2 个选项卡的联动

改变帧编排时关键帧的跟随

在判定动画中打的关键帧是以绝对时刻保存的。因此,如果在精灵动画侧改变 FPS 或 Wait,或增减・重排帧,什么都不做的话帧与关键帧的对应关系就会错位。

这是自动移位的。

  • 会比较编辑前后的帧编排,把关键帧的时刻移动到新帧的位置。
  • 位于被删除帧区间内的关键帧会一起消失。
  • 0 秒的关键帧(基准值关键帧)始终留在 0 秒。
  • 用 Ctrl+Z 时,帧编排和关键帧会一起还原。

基准值会被分发到所有动画的机制

创建轨道时,0 秒位置会自动放入基准值关键帧,并被分发到所有动画的开头。 这样在游戏中切换动画时,上一个动画中移动过的值就不会残留。


实用示例

只在攻击的第 3 帧启用攻击判定

  1. 在「预览」选项卡整理攻击判定的位置和大小(这会成为基准值)。
  2. 在「精灵动画」选项卡选择攻击动画,确定帧编排。
  3. 切到「判定动画」选项卡,从要素中选择攻击判定。
  4. 在帧一览中选择第 1 帧,把「启用・禁用」设为禁用并登记关键帧。
  5. 选择第 3 帧设为启用,在第 4 帧再次设为禁用。
  6. 播放确认判定是否只在期望的帧出现。

如果判定没有出现在预想的位置,请按「初始关键帧同步」后重来。 有时 0 秒处还残留着带旧值的关键帧。

配合行走让身体上下起伏

  1. 在「判定动画」选项卡,从要素中选择对象图像。
  2. 在帧一览中选择一帧,在预览上拖动稍微上移(改动会自动登记到所选帧)。
  3. 在另一帧则下移。
  4. 把插值设为「连续(平滑)」,帧之间就会被平滑插值。

制作 360 度旋转

  1. 在「判定动画」选项卡把对象本体设为显示(右键点击要素一览的空白处)。
  2. 在第一帧打上 0 度的关键帧。
  3. 选择帧一览末尾的「END」行,打上 360 度的关键帧。

如果打在最后一帧上,从那里回到第一帧的区间看起来会是反向旋转。 打在终点(END)才是正确做法。

只用朝右的图像制作角色

  1. 在「精灵动画」选项卡制作朝右的动画。
  2. 选中方向条目,在 3×3 网格中指定「右」。
  3. 打开「自动生成左向翻转」。朝左时会自动翻转显示。

注意事项

  • 没有挂在动画集上的动画无法从可视化脚本中选择。 可视化脚本选择栏的候选是由动画集名称生成的,而不是动画名称。请把留在「未分配」中的动画拖进动画集。
  • 删除动画集的行时,只有该动画集在使用的动画也会一起被删除。 被其他动画集同时引用的会保留。
  • 「往复」无法只靠精灵动画侧表达。 由于那里的数据结构只能保存是否循环,往复是作为动画侧的设置保存的(操作上无需在意)。
  • 改变帧编排会移动判定关键帧的时刻,位于被删除帧区间内的关键帧会被删除。 对于持有不想丢失关键帧的帧,请用 Wait 调整而不是删除。
  • 0 秒的关键帧作为「基准值」被特殊对待。 它会被分发到所有动画的开头,并在保存场景时应用到节点上。把演出用的数值放在这里会影响其他动画。
  • 如果在预览选项卡整理好的判定在动画中又还原了,请按「初始关键帧同步」。 这说明 0 秒的关键帧持有旧值。
  • 「对象本体」与左右翻转(自动生成左向翻转)无法并存。 这也是它默认隐藏的原因。
  • 判定轨道的默认插值是「离散」。 想让判定平滑移动时,请明确改为「连续」。
  • 使用骨骼动画(Skeleton2D)时无法使用精灵动画选项卡。 判定动画选项卡除了预览不显示图像之外,判定的布置仍可进行。
  • AnimatedSprite2D 的帧编号无法在判定动画中移动。 因为帧编排由精灵动画选项卡作为原本管理(只有用 Sprite2D 组建的对象,才能在判定动画中指定帧编号)。
  • 打开详细模式期间,Ctrl+X / C / V 的关键帧操作被禁用。 从菜单仍可操作。