编辑动画层

动画层编辑功能允许您在虚幻引擎 4 中修改任何现有的 动画序列 ,作为附加层轨道的一部分。通过动画层编辑,您可以提取现有动画并进行调整,产生该动画的不同副镜头,也可以基于原动画创建一段独立的、有自身动作的新动画。

本页将向您说明如何使用动画层编辑工具,并提取一段闲散动画将其重新制作为填弹动画。

对于本操作指南,我们在启用了 起步内容 的前提下使用 Blueprint First Person 模板创建了新项目。

创建新动画

在本节中我们将创建一个闲散动画的副本,然后我们可以修改该副本,保留原动画不变。

  1. 内容浏览器 中的 Game/FirstPerson/Animations 文件夹下,打开 FirstPerson_Idle 动画。

    AnimEdit1.png

  2. 打开动画后,使用 播放控件 暂停动画,然后将其设置到第 0 帧,使其停在开始处。

    AnimEdit2.png

  3. 单击工具栏菜单中的 创建资产(Create Asset)按钮,然后在 创建动画(Create Animation)下选择 从当前动画(From Current Animation)

    LE_FromCurrentAnimation.jpg

    此处我们基于闲散动画创建了一个新动画。还有基于动画中的特定姿势或从基本参考姿势创建新动画的选项。为了达到我们的目的,我们需要整段闲散动画,以便用它进行修改来执行填弹动作,因此 从当前动画(From Current Animation)是最好的选择。

  4. 创建新动画资产(Create a New Animation Asset)窗口中,选择 Animations 文件夹,将动画资产命名为 FirstPerson_Reload,然后单击 确定(OK)

    AnimEdit4.png

    系统将创建该动画并自动打开,以便我们开始编辑。

编辑新动画

创建 FirstPerson_Reload 动画后,我们可以通过动画层编辑开始编辑它。

  1. FirstPerson_Reload 动画打开的情况下,单击 播放控件 中的 前进 按钮,前进至第 15 帧。

    AnimEdit5.png

  2. 骨架树(Skeleton Tree)中,单击 upperarm_l 骨骼以选中它。

    LE_Leftarm.jpg

    为了开始编辑,您必须先选择将在 附加层轨道 中修改的骨骼,我们已经在上文完成了这一步。

    您可能还希望移动摄像机,以获得观察左臂的更好视角,从而方便编辑。在视口中,按住 鼠标右键,使用 WASD 键移动摄像机来获得您需要的视角。

  3. 在工具栏中,单击 添加键(Add Key)按钮。

    AnimEdit7.png

    这将向附加层轨道添加对应骨骼当前位置的键,如下图所示。

    AnimEdit8.png

    在上图中,已经为 upperarm_l 骨骼添加了三条独立的轨道:一条 平移 轨道 (1)、一条 旋转 轨道 (2) 和一条 比例 轨道 (3)。

  4. 单击 前进 按钮前进至第 30 帧。

    AnimEdit9.png

  5. 在视口中,左键单击 旋转 小部件的绿色圆弧。

    LE_LeftArmRot.jpg

    它将变为轴旋转小部件,将鼠标向左移动到 -60.00 标记处。

    LE_LeftArmMinus60.jpg

    从第一人称视角来看,这将使手下落到屏幕外。

  6. 在工具栏中,单击 添加键(Add Key)按钮(或按 *S** 键)。

    AnimEdit12.png

    系统将向附加层轨道添加新的键,并创建一条从第一个键到第二个键的曲线。

  7. 单击 播放控件 上的 前进 按钮前进至第 45 帧。

  8. 在视口中,左键单击 并拖动 旋转 小部件的绿色圆弧,然后向右旋转到 60.00 标记处。

    LE_LeftArmUp60.jpg

  9. 在工具栏中,单击 添加键(Add Key)按钮(或按 *S** 键)。

    AnimEdit15.png

    系统将添加新的键,它们的值应该与第一组键相同。

  10. 单击 播放控件 上的 前进 按钮前进至第 50 帧,然后按 *S** 键添加一组键。

    AnimEdit17.png

  11. 单击 播放控件 上的 前进 按钮前进至第 60 帧。

  12. 在视口中,按 W 切换到 平移 模式,然后 左键单击 并将红色箭头向右移动少许。

    LE_LeftArmPump.jpg

    这将使手臂向后移动,仿佛在给散弹枪上膛。您可以根据自己的判断来决定要移动多少距离。

  13. 在工具栏中,单击 添加键(Add Key)按钮(或按 *S** 键)。

    AnimEdit20.png

    系统将把对应姿势的键添加到附加层轨道,与先前的键组成的曲线并列。

  14. 单击 播放控件 上的 前进 按钮前进至第 65 帧,然后按 *S** 键添加一组键。

    AnimEdit22.png

    新键的值将归零,您可以单击轨道中的键来确认。

    AnimEdit23.png

    您也可以在轨道中单击某个键,手动输入 时间(Time)值(Value)来得到您需要的确切值。

  15. 在工具栏菜单中,单击绿色的 应用(Apply)按钮将更改应用到动画。

    AnimEdit24.png

    将键和曲线添加到动画后,就得到了一段应用于基本动画的附加动画。只要单击 应用(Apply)按钮,系统就会将键和曲线数据烘焙到最终动画中。

  16. 完成动画时,单击 保存(Save)按钮。

  17. Game/FirstPerson/Animations 文件夹中,双击 FirstPerson_AnimBP 将其打开。

    AnimEdit28.png

  18. 动画蓝图编辑器 中,双击 我的蓝图(My Blueprint)面板中的 动画图(Anim Graph)将其打开

    AnimEdit29.png

  19. 双击 动画图(Anim Graph)中的 新建状态机器(New State Machine)节点。

    AnimEdit30.png

  20. 找到标题为 FPP_Idle 的节点,双击 打开它。

    AnimEdit31.png

  21. 在图中 右键单击,然后创建一个 Play FirstPerson_Reload 节点。

    AnimEdit32.png

  22. 将现有的 Play FirstPerson_Idle 节点替换为新的 Play FirstPerson_Reload 节点,方法是按住 Ctrl,同时按住 鼠标左键Play FirstPerson_Idle 节点的输出拖动到 Play FirstPerson_Reload 节点。

    AnimEdit33.png

  23. 编译保存 动画蓝图,然后关闭它,再单击 播放(Play)测试您的新动画。

下面是该动画在游戏中角色上播放的示例。

总结和常见问题

您可以继续修改此动画,方法是移动到时间轴上的某一帧,选择您要修改的骨骼并为其设键,然后将时间轴向前移动一些,将骨骼移动到新位置并再次设键。骨骼将沿着随时间轴推进而创建的曲线从第一个键移动到第二个键。您可以根据需要修改任意数量的骨骼来获得比我们的示例更精确的动画,但设键的过程是相同的。

常见问题

如果导出动画会怎样?

  • 如果导出动画,可以获得任意一个经过烘焙的动画版本。如果您应用所有曲线,它将带着曲线导出。

如果重新导入动画会怎样?

  • 如果重新导入动画,它将覆盖源数据并应用曲线。如果您不需要曲线,可以将它们移除。

我可以临时禁用或移除轨道吗?

  • 可以,您可以在位于轨道窗口右上角的 轨道选项(Track Options)菜单中进行这两种操作。

    AnimEdit25.png

有没有办法查看我编辑过的动画与源动画的差异?

  • 显示(Show)菜单选项中,您可以启用 源动画(Source Animation)和(或)烘焙动画(Baked Animation)在视口中的显示。可以查看以白色骨架显示的源动画和以蓝色骨架显示的烘焙动画,如下图所示。

    LE_SourceBakedAnim.jpg

动画层编辑可用来创建根运动吗?

  • 可以。选择您的根骨骼并为其设键,然后将时间轴向前推进,移动根骨骼并重新设键。

    LE_ThirdPersonAnim.jpg

    在上面我们启用了源动画和烘焙动画预览,其中白色骨架是源动画。