叠加动画
中级 设计人员
叠加动画(Additive Animation)是使用差值剪辑(也称为叠加动画剪辑)来组合动画的过程。

在上图中,最左边的动画是 Walk 动画,最右边的动画是 Idle 动画。中间的两个动画分别是 Walk 和 Idle 动画,但叠加了 Reload 动画。
这意味着我们只需创建三个动画:Walk、Idle 和 Reload。此外,我们还可以把 Reload 动画添加到其他合适的动画上(如 Crouch、Strafe 或 Run)。这有助于保持较低的内存预算和动画数量。
差值剪辑
差值剪辑(Difference clip)描述两个动画剪辑之间的差值:一个源剪辑和一个参考剪辑。
以上面的 Reload 动画为例,我们想把它添加到其他动画剪辑上。这就是我们的源剪辑(S)。由于 Reload 动画主要涉及手臂,它与不涉及手臂的动画(如待机和蹲伏)能很好地混合。我们可以使用这些动画之一——比如 Idle 动画——作为参考剪辑(R)。
Stride 会计算源剪辑和参考剪辑之间的差值,以创建差值剪辑(D)。差值剪辑对源剪辑和参考剪辑之间的差值进行编码,可以表示为 D = S - R。
我们可以使用差值剪辑来混合源动画和参考动画。我们也可以用同一个差值剪辑把源动画与其他动画混合。如果添加到的动画与原始参考剪辑足够相似,那么混合效果就会很好。例如,你可以用它把换弹动画添加到任何不使用手臂的动画上,比如蹲伏。
Note
叠加动画应使用相同的蒙皮网格和骨架。
创建差值剪辑
在资产视图(默认位于底部),点击添加资产并选择 Animations > Animation。将打开一个浏览对话框。
由于此动画不需要源文件,点击取消。
Game Studio 会询问是否要创建没有源文件的动画。

点击是。Game Studio 会向资产视图添加一个新的空动画资产。
为资产取一个便于识别的名称。例如,如果你想制作一个可与其他动画配合使用的换弹动画,可以将资产命名为 ReloadAdditive。
在资产视图(默认位于底部窗格),选择你创建的动画资产。
在属性网格(默认位于右侧),添加**源(Source)**动画剪辑。这是你想要应用到其他动画上的动画。

Note
请确保添加的是包含动画本身的文件(如 .fbx 等模型文件),而不是引用它的动画资产。动画文件通常保存在 Resources 文件夹中。
在**类型(Type)**下,选择 Difference Clip。
在参考(Reference)下,指定要作为参考剪辑的动画。Stride 会参考该动画来创建差值剪辑。

从下拉菜单中选择模式(Mode)。
- Animation 会基于完整的源动画创建差值剪辑,逐帧进行参考。
- FirstFrame 仅基于源动画的第一帧创建差值剪辑,作为静止姿态。
在**骨架(Skeleton)**旁边,为差值剪辑指定一个骨架。

该骨架应适用于所有要与差值剪辑混合的动画。在大多数情况下,你应该使用与源动画和参考动画相同的骨架。
如果你想在资产预览中预览动画, 请指定适合该动画的预览模型。

Note
资产预览只会显示你在差值剪辑中指定的源动画。
使用叠加动画
你可以将叠加动画与使用相同骨架和蒙皮网格的动画一起使用。
在资产视图(默认位于底部窗格),点击添加资产。
选择 Scripts > Animation Start。

AnimationStart 是一个启动脚本,可用于将动画(包括叠加动画)加载到模型中。更多信息请参见动画脚本。
重新编译项目以应用更改。
在场景视图中,选择要驱动动画的实体。

Note
要驱动实体的动画,该实体必须具有模型组件。
在属性网格(默认位于右侧),点击添加组件并选择 Animations。

Game Studio 会为该实体添加一个动画组件。
点击添加组件并选择 Animation Start 脚本。

该脚本允许你自定义要加载到实体中的动画列表。
在 Animation Start 属性中,点击 Animations 旁边的
(添加)。
在 Clip 旁边,指定你在差值剪辑中设置的源动画。

在 Add to Animations 旁边,点击
(添加)。展开动画属性。在 Clip 旁边,指定你在差值剪辑中设置的参考动画。

在 Blend Operation 下,选择 Additive。

重复上述步骤,根据需要添加任意多个动画。
