2.动画与角色蓝图设置

在此步骤中,我们将设置角色和动画蓝图,以决定如何将玩法混合到Sequencer的插槽动画。

Windows
MacOS
Linux

在这一步中,我们将设置动画蓝图,以制作游戏动作并混合到关卡序列定义的插槽动画。

  1. 内容浏览器 中找到并打开 UE4ASP_HeroTPP_AnimBlueprint,然后双击 我的蓝图(My Blueprint) 窗口中的 动画图表(AnimGraph)

GameBlend_04.png

  1. 动画图表(AnimGraph) 中关闭已有的 运动(Locomotion) 状态机,创建 New Save Cached Pose 并将其命名为 运动缓存(lococache)

GameBlend_05.png

  1. 使用两次 运动缓存(lococache),将其中一个连接到 混合(Blend) 节点的 A 引脚,它会向 最终动画动作(Final Animation Pose) 馈送数据。

GameBlend_06.png

  1. 对于另一个 运动缓存(lococache),使用 插槽(Slot) 节点并将其连接到 混合(Blend) 节点的 B 引脚,然后右键单击 Alpha提升为变量(Promote to Variable),并将其命名为 混合插值(Blend Interp)

GameBlend_07.png

  1. 内容浏览器 中打开 Ue4ASP_Character 蓝图,然后将 下蹲(Crouching) 片段替换为下图。

GameBlend_08.png

上面我们将 输入动作下蹲(InputAction Crouch) 节点替换为 C 键盘事件和 Flip Flop 节点,以切换下蹲状态。

  1. 创建新的 浮点(Float) 变量,将其命名为 DefaultSlotInterp,并将 实例可编辑(Instance Editable)公开给过场动画(Expose to Cinematics) 设置为 True

GameBlend_09.png

我们将在Sequencer中使用这个变量来进行混合,并将值传递给处理实际混合的动画蓝图变量 混合插值(Blend Interp)

  1. 创建名为 SetDefaultSlotInterp 的新函数,然后在 细节(Details) 面板上添加 输入(Input),将其命名为 浮点(Float) 类型的 插值(Interp)

GameBlend_10.png

通过创建名为 Set (Property Value Name) 的函数,我们创建了一个 代理(Proxy) 函数,只要关联的属性值发生变化,它就会被Sequencer调用。 这个函数只在属性值更改时被调用,与使用 事件Tick自定义事件时间轴 相比,能更高效地反映 DefaultSlotInterp 属性值的更改。

  1. 组件(Components) 窗口中,拖入 网格体,并使用 获取动画实例(Get Anim Instance)投射到UE4ASP_HeroTPP_AnimBlueprint

GameBlend_11.png

  1. 关闭 As UE4ASP Hero TPP Anim Blueprint,使用 设置混合插值(Set Blend Interp),并将 插值(Interp) 的数值传递到 混合插值(Blend Interp)

GameBlend_12.png

每当通过Sequencer更改 默认插槽插值(DefaultSlotInterp) 的数值时,将调用 SetDefaultSlotInterp 代理函数,并将浮点值传递给动画蓝图的 混合插值(Blend Interp) 数值,进而影响动作的混合效果。

欢迎来到全新虚幻引擎4文档站!

我们正在努力开发新功能,包括反馈系统,以便您能对我们的工作作出评价。但它目前还未正式上线。如果您对此页面有任何意见与在使用中遭遇任何问题,请前往文档反馈论坛告知我们。

新系统上线运行后,我们会及时通知您的。

发表反馈意见