For the complete documentation index, see llms.txt. This page is also available as Markdown.

创建表情动作

创建 Decentraland 表情动作的技巧与指南。

本文档将介绍文件规格、Blender 中动画的基础知识、正确导出 Emote 的方法,以及如何将其导入 Builder。

💡 提示:安装 Decentraland Tools Blender 插件。它包含一些实用功能,可帮助你编辑和导出 3D 模型、可穿戴物品和表情动作。

动画规格表

帧率
30 fps

最大长度

10 秒(300 帧)

每个文件的动画数量

1

导出格式

.glb

采样率

默认值为 1(需要时可设为 2 或 3)

最大文件大小

3 MB

最大动画位移距离

1 米(前/后、左/右)

最大动画高度

4 米

你可以在下方找到对动画规格更详细的说明 下面.

资源

本文档解释了 Rig 1.0 的设置、控制以及功能。

Decentraland Blender 骨架

如果你使用 Maya,可以下载这个 Maya 骨架 和 选择器 由 SparkleStudios ❤️。

开始之前

帧率

在开始之前,先检查帧率很重要。Decentraland 的动画必须使用 30 fps。该骨架文件默认是 24 fps,所以在开始动画前要先改成 30(帧率错误会影响动画速度)。这个选项可以在 Output Properties(打印机图标)里的 Format 下找到,如下所示:

在开始前,请确保帧率设置为 30 fps。

在开始前,请确保帧率设置为 30 fps。

Pose Mode

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

切换到姿态模式。

切换到姿态模式。

动画界面

在骨架文件中,除视口(正视图和侧视图)的两个窗口外,底部还有三个:一个 图形编辑器, 一个 Dope Sheet(关键帧表),以及一个 时间轴.

  • 图形编辑器:在这个编辑器中,可以编辑所选控制器每个变换属性的动画曲线。这些曲线显示插值是如何计算的,你可以通过编辑它们来实现动画中想要的效果。在这里以及在 Dope Sheet 中,都会启用“仅显示所选”工具,这意味着它只会包含与所选控制器相关的通道。只需点击箭头图标即可将其开启或关闭。 仅显示所选 工具已启用,这意味着它只会包含与所选控制器相关的通道。只需点击箭头图标即可将其开启或关闭。

  • Dope Sheet(关键帧表):在这里可以编辑关键帧。你也可以在这里创建新动画,或浏览已创建的多个动画。请记住,要访问动画,必须先选中 动作编辑器 。这个选项就在 Dope Sheet(关键帧表) 图标旁边的下拉菜单中。

  • 时间轴:这里可以找到时间轴和播放控制。在这里, 自动关键帧 已开启,这意味着每次操作控制器时都会自动创建关键帧。你始终可以点击播放控制旁边的圆点来关闭此功能。

有了这个工作区,你就拥有开始制作动画所需的一切!

这些是底部窗口。上方的是 图形编辑器, 中间的是 Dope Sheet(关键帧表), 而最下面的是 时间轴。 上方的红色箭头显示 仅显示所选 工具,下方的显示 自动关键帧.

💡 提示!

由于 Blender 的可定制性很强,这也是设置最适合你的布局的好时机,你可以添加、调整或移除窗口。每位动画师都有自己的偏好,所以请随意按你的想法编辑布局!

开始上手

起始姿势

在提供的骨架文件中,已经有一个动作: 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,并选择所需的采样次数。

导出动画就到这里!

参考资料

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

Idle.glb

Jump.glb

Walk.glb

Run.glb

Pose_Jump.glb

Pose_Spin.glb

Spotlight.glb

Fashionista.glb

Chic.glb

Flag_Emote.glb

Flag_Emote.blend

最后更新于