差异动画
概述
差异动画(Additive Animation)允许从两个姿势间提取差异并应用到其它姿势上,从而为已有动画增加额外的细节表现。与传统的关键帧动画不同,差异动画不需要为每个关键帧创建一个完整的姿势,而是只需要计算每个关键帧之间的差异,从而创建出更加流畅和自然的动画效果。
差异动画通常用于角色动画和游戏开发中,它可以减少动画制作的时间和成本,同时也可以提高动画效果的质量和逼真度。例如,在角色动画中,差异动画可以用于创建角色的表情和肢体动作,从而使角色更加生动和真实。
节点
涉及到以下三种动画树节点。
应用差异姿势节点
应用差异姿势(Apply Additive Pose)节点可在基础姿势上叠加差异动画的采样数据。
节点使用
在动画树空白处右键打开节点选择面板,展开混合(Blends)分类并从中选取应用差异姿势(Apply Additive Pose)。
添加节点成功后的效果:
然后可以继续为节点配置合适的输入/输出。
属性
属性 | 说明 |
---|---|
是否使用权重参数(Use Weight Parameter) | 勾选后会使用动画参数,可选择动画参数中浮点类型的参数。使用参数后,可根据动画参数来确定混合权重。不勾选,则可修改混合权重的值。 |
混合权重(Blend Weight) | 混合权重。 |
混合权重偏移(Blend Weight Offset) | 混合权重的偏移。 |
混合权重缩放(Blend Weight Scale) | 混合权重的缩放。 |
LOD阈值(LOD Threshold) | 该节点允许的最大LOD。 |
应用网格空间差异姿势节点
应用网格空间差异姿势(Apply Mesh Space Additive Pose)节点能够在基础姿势上应用网格空间差异动画的采样数据。
节点使用
在动画树空白处右键打开节点选择面板,展开混合(Blends)分类并从中选取应用网格空间差异姿势(Apply Mesh Space Additive Pose)。
添加节点成功后的效果:
然后可以继续为节点配置合适的输入/输出。
注意:从差异姿势(Additive Pose)引脚输入的动画需要配置为网格空间的差异动画。在输入到差异姿势引脚的动画的资产细项(Asset Details)面板中,将差异动画类型(Additive Anim Type)设置为网格空间(Mesh Space)。
属性
可参照应用差异姿势节点的属性介绍。
创建动态差异姿势节点
创建动态差异姿势(Create Dynamic Additive Pose)节点能够动态创建差异动画的数据,在姿势(Pose)上减去基础姿势(Base Pose),输出差异姿势。
节点使用
在动画树空白处右键打开节点选择面板,展开混合(Blends)分类并从中选取创建动态差异姿势(Create Dynamic Additive Pose)。
添加节点成功后的效果:
然后可以继续为节点配置合适的输入/输出。
属性
属性 | 说明 |
---|---|
网格空间叠加(Mesh Space Additive) | 是否创建网格空间差异姿势。 |
差异设置
输入到差异姿势(Additive Pose)引脚的动画需先在资产细项(Asset Details)面板中进行差异设置(Additive Settings)。
有关差异设置(Additive Settings)的属性介绍详见动画序列的资产细项部分。
应用
以下是使用应用差异姿势(Apply Additive Pose)节点的一个示例。将用于叠加的动画进行处理以得到射击动作(差异姿势),然后将射击动作叠加混合到向上瞄准的基础动画姿势上,最终获得向上瞄准射击的动画。
创建组合体
参考Actor组装,创建一个组合体(Actor),包含tpose,a_sm_shoot_fwd和a_hg_aim_up动画资产。
动画序列
对输入到差异姿势(Additive Pose)引脚的动画进行差异设置(Additive Settings)。
在动画编辑器的资产浏览器(Asset Browser)中,选中射击动画(骨架资产),右击打开快捷菜单选择将骨架资产转为动画序列资产(Convert Skeleton To AnimSeq),在弹出的窗口中输入动画序列名称,点击确定(OK)按钮完成转换。
转换完成:
按照上述操作将该射击动画(骨架资产)再次转为一个动画序列资产,后续用作于差异动画的基础姿势动画。
在动画编辑器中,依次点击菜单栏文件(File)-> 保存所有(Save All)。
在资产浏览器(Asset Browser)中,双击shoot动画序列进入该资产的编辑界面。在资产细项(Asset Details)面板中,进行差异设置(Additive Settings)相关属性的设置。用于叠加的shoot动画与所选择的基础姿势动画作比较,shoot动画中二者不相同的部分将作为差异姿势叠加到基础姿势引脚上。
属性 | 设置 |
---|---|
差异动画类型(Additive Anim Type) | 局部空间(Local Space) |
基础姿势类型(Base Pose Type) | 被选择动画帧(Selected Animation Frame) |
基础姿势动画文件(Base Pose Animation File) | base_shoot |
参考帧索引(Ref Frame Index) | 0 |
编辑完成后,同样进行保存。
动画树
在动画编辑器中依次点击菜单栏文件(File)-> 创建(Create),在弹出的窗口中的下拉框中选择动画树(AnimTree),然后输入名称并选择路径,点击确定(OK)按钮完成创建并进入到动画树编辑器中。
在动画树空白处右击打开节点选择面板,展开动画(Animation)分类,依次选择播放”a_hg_aim_up“(Play "a_hg_aim_up" )节点和播放”shoot“(Play "shoot" )节点,分别用于输入到基础姿势引脚和差异姿势引脚。
添加完成:
添加一个应用差异姿势(Apply Additive Pose)节点,将播放”a_hg_aim_up“(Play "a_hg_aim_up" )节点链接到应用差异姿势节点的基础姿势(Base Pose)引脚处,然后将播放”shoot“(Play "shoot" )节点链接到差异姿势(Additive Pose)引脚处,最后将应用差异姿势节点链接到最终动画姿势(Final Animation Pose)节点。
可根据需求在属性窗口(Property Window)中设置选中节点的各项属性。点击应用(Apply)按钮后,在预览(Preview)窗口中可预览效果。