创建表情动作
创建 Decentraland 表情动作的技巧与指南。
本文档将介绍文件规格、Blender 中动画的基础知识、正确导出 Emote 的方法,以及如何将其导入 Builder。
动画规格表
最大长度
10 秒(300 帧)
每个文件的动画数量
1
导出格式
.glb
采样率
默认值为 1(需要时可设为 2 或 3)
最大文件大小
3 MB
最大动画位移距离
1 米(前/后、左/右)
最大动画高度
4 米
你可以在下方找到对动画规格更详细的说明 下面.
资源
本文档解释了 Rig 1.0 的设置、控制以及功能。
开始之前
帧率
在开始之前,先检查帧率很重要。Decentraland 的动画必须使用 30 fps。该骨架文件默认是 24 fps,所以在开始动画前要先改成 30(帧率错误会影响动画速度)。这个选项可以在 Output Properties(打印机图标)里的 Format 下找到,如下所示:

在开始前,请确保帧率设置为 30 fps。
Pose Mode
在 Blender 中,骨架可以以三种不同模式查看:Object Mode、Edit Mode 和 Pose Mode。动画只能在 Pose Mode 下进行(在该模式下,控制器会显示颜色)。选中骨架后,你会在右上角的下拉菜单中找到该选项。

切换到姿态模式。
动画界面
在骨架文件中,除视口(正视图和侧视图)的两个窗口外,底部还有三个:一个 图形编辑器, 一个 Dope Sheet(关键帧表),以及一个 时间轴.
图形编辑器:在这个编辑器中,可以编辑所选控制器每个变换属性的动画曲线。这些曲线显示插值是如何计算的,你可以通过编辑它们来实现动画中想要的效果。在这里以及在 Dope Sheet 中,都会启用“仅显示所选”工具,这意味着它只会包含与所选控制器相关的通道。只需点击箭头图标即可将其开启或关闭。 仅显示所选 工具已启用,这意味着它只会包含与所选控制器相关的通道。只需点击箭头图标即可将其开启或关闭。
Dope Sheet(关键帧表):在这里可以编辑关键帧。你也可以在这里创建新动画,或浏览已创建的多个动画。请记住,要访问动画,必须先选中 动作编辑器 。这个选项就在 Dope Sheet(关键帧表) 图标旁边的下拉菜单中。
时间轴:这里可以找到时间轴和播放控制。在这里, 自动关键帧 已开启,这意味着每次操作控制器时都会自动创建关键帧。你始终可以点击播放控制旁边的圆点来关闭此功能。
有了这个工作区,你就拥有开始制作动画所需的一切!

这些是底部窗口。上方的是 图形编辑器, 中间的是 Dope Sheet(关键帧表), 而最下面的是 时间轴。 上方的红色箭头显示 仅显示所选 工具,下方的显示 自动关键帧.
开始上手
起始姿势
在提供的骨架文件中,已经有一个动作: Starting_Pose。考虑到所有头像动作都从待机姿势开始, 我们非常建议你从这个姿势开始制作动画,并在最后一帧再次使用它。这样可以让 Idle 到 Emote 的过渡更自然,动画也更流畅。
为了让循环顺畅运行,第一帧和最后一帧的关键帧必须完全一致。例如,在 30 fps 下制作一个 4 秒循环,帧 1 和帧 121 上必须是相同姿势。只要有任何不同,玩家每次循环时都会看到明显的跳变。
动画区域
在提供的头像文件中,你会找到一个名为 Animation_Area_Reference的集合。它由三个对象组成,可直观地帮助设置动画限制: Animation_Area_Reference, Ground_Reference 和 Root_Animation_Area.
Animation_Area_Reference 是一个 4x4 的立方体,也就是包围盒。头像网格和道具在整个动画过程中都应保持在这个区域内。只要道具始终位于立方体区域内,就可以自由移动。
Ground_Reference 是一个用于检查动画过程中是否穿地的平面。它还包含重要信息:较小的圆直径为 2 米,定义了头像根部可移动的区域。这意味着在地面上时,头像每个方向最多只能移动 1 米:前、后、左、右。
Root_Animation_Area 是一个圆柱体,用于定义你可以移动头像根部/重心(CTRL_Avatar_UpperBody 或 Avatar_Hips)的区域。这个圆柱体高 4 米,这意味着只要没有任何网格超出包围盒,根部就可以一直向上移动。头像的腿、手臂和其他身体部位可以位于圆柱体之外,只要它们从不超出 Animation_Area_Reference 即可。

总之,只要根部保持在圆柱体内,头像就可以向右、向左、向前和向后移动,这意味着在四个方向上都最多可移动 1 米。

至于高度,只要头像保持在包围盒内,就可以一直向上移动(最大 4 米)。下面是一些正确的头像高度示例(整个身体都在包围盒内),以及一些错误的示例(网格超出包围盒)。





以下是一些位于动画区域边界内的表情动作示例。


创建动画
blend 文件中已经有一个可编辑的动画片段: StartingPose_Avatar。你可以根据需要复制并重命名该动画片段。无需从头创建!
在 浏览动作 部分,只需点击 创建新动作 按钮即可复制当前动画。要重命名片段,只需点击文本并输入其他名称。
Blender 4.4 引入了 分槽动作,这是前几个版本中 浏览动作 部分右侧的图标。如果你要创建不带道具的表情动作,无需处理它,保持原样即可。如果你在为头像制作动画,请确保分槽动作是 Avatar_Animation。

通过复制现有动画或点击 取消关联动作 然后 新建.
浏览和删除动画
在 Blender 中,同一个文件里可以有多个动画轨道。你可以通过点击“浏览动作”下拉菜单来浏览它们。所有带 F(Fake User)的动画都会被保存。要删除动画,请按住 Shift 键并点击 X。这样做之后,动画旁边会显示一个 0,这意味着下次关闭 Blender 或重新打开文件时,它就会被删除。

浏览动画:带有 F 的会被保存,带有 0 的会被删除。
另一种删除动画而无需重新加载 Blender 的方法,是将 Display Mode 从 View Layer 改为 Blender File。展开 Actions,右键单击任何不需要的动画并选择 Delete。

你可以在大纲视图的显示模式下,直接从 Blender File 中删除动画。

复制动画片段。
命名
动画名称应以大写字母开头;如果名称由多个单词组成,单词之间应使用 _ 分隔。 不要使用空格或特殊字符。以下是一些命名示例:
Snowfall
Rainbow_Dance
Throw_Money
Talk_To_Hand
表情覆盖
当变形骨骼在某个参数中没有设置关键帧时,就会发生表情覆盖。没有关键帧时,该骨骼就不会知道自己应该位于哪里、旋转了多少以及缩放了多少,从而使该通道处于开放状态。结果就是,如果你在世界中播放一个表情动作,然后在上一个动作还在播放时触发自己的动作,位置、旋转和缩放信息就会被前一个表情动作覆盖,从而把两者组合在一起。除非这是有意为之,否则会影响你的动画,有时会产生有趣的效果,但有时也会把表情动作完全弄乱。下面是一个表情覆盖的示例。

为避免这种情况,请选择所有带骨骼的图层(可在 对象数据属性 > 骨架 > 图层中找到)。然后,在 Pose Mode中,将时间轴光标停在动画的第一帧,并将鼠标放在 视口显示上,按 一个 以全选。在 图形编辑器,双击 眼睛 图标旁边的骨架通道,使所有通道可见。选中所有骨骼后,按 I 来设置关键帧。最后一帧也同样操作。
务必选择变形骨骼,这一点尤其重要! 变形骨骼可以在最底层的最后一层中找到,并在 视口.
中显示为绿色骨骼。
动画规格
动画长度
动画的最大长度是 10 秒 或 300 帧。记得在第一帧和最后一帧为每个控制器的属性设置关键帧。

在设置关键帧之前,请先让通道可见!
动画数量
如果是标准表情动作(不带道具),导出的文件只能包含一个动画。对于 Emotes 2.0,你可以有一个头像片段和一个道具片段。如果过程中复制过动画,请确保在导出前全部删除,只保留最终版本。当前不支持需要多个动画才能工作的序列表情动作(动作开始、动作循环和动作结束)。
格式
动画应导出为GLB。文件中只能包含变形骨架和动画。 网格、控制器和任何其他对象都不应导出。更多导出细节请见 下面.
采样
由于约束无法导出,导出动画片段的唯一方法是将其烘焙,这意味着变形骨骼的所有位置、旋转和缩放都会在动画的每一帧上设置关键帧。如果片段太长,比如长达 300 帧,导出后就会有 300 个关键帧;关键帧越多,文件就越大。
采样是优化动画的好方法。采样率决定动画中关键帧烘焙的频率。例如,如果采样率设为 2,就表示每 2 帧创建一个关键帧。采样率为 3 时,每 3 帧烘焙一个关键帧,依此类推。采样率越高,文件越轻。
不过,缺点是动画会变得越来越不流畅,因为它会丢失一些重要关键帧(这些关键帧在整个动画中分布不均)。还要注意的是 采样并不是将动画帧数除以采样率.
通常, 2 或 3 的采样率 就足够了。这些数值可以在不影响质量的情况下优化动画。
文件大小
最大文件大小是 3 MB。如果导出后文件超过此限制,请检查是否误导出了网格,或者动画是否超过 10 秒。如果仍然超过 3 MB,请尝试调整采样率,因为更高的数值会提升优化效果。
如果表情动作包含任何额外的 3D 模型,这些模型中的纹理大小不能超过 1024 像素。
导出
由于我们只希望导出骨架和动画,请在导出前关闭网格可见性以及除骨架之外的任何对象,如下所示:

导出前请关闭网格可见性!
你的文件还必须只包含你要导出的那个动作。骨骼文件自带一个 Starting_Pose 动作,所以 请将其删除 以及任何其他残留动作,否则导出的 .glb 会包含两个片段,而不是 每个文件一个动画 这是 Decentraland 所期望的。在移除任何内容之前,请先保存一份可编辑的 .blend 副本。
要导出,请前往 文件 > 导出 > glTF2.0 (.glb, .gltf)

在导出设置中,展开 Include,并在 Limit to 中切换 Visible Objects。然后展开 Data 选项卡,展开 Armature,并启用 Export Deformation Bones Only。


如果你需要对动画进行采样,展开 Animation 选项卡,展开 Sampling Animations,并选择所需的采样次数。


导出动画就到这里!
参考资料
如果你仍然不知道从哪里开始,或者需要一些参考或灵感,下面有一些动画片段可以帮助你。这些也可以作为很好的学习素材!
最后更新于