UE4游戏或视频sequencer与动画蓝图交互

UE4 Sequencer Gameplay Blending Example在创建电影情节时,可能需要将现有的游戏动画与关卡序列中包含的动画混合。例如,一个可玩角色在游戏中来到门口,而您希望音序器使该角色复活并打开门。或者玩家在第三人称射击游戏中控制角色并陷入停顿状态,则需要按照电影级的死亡顺序混合所有内容。结合使用Sequencer,蓝图和动画蓝图,您可以将角色所在的任何游戏玩法与Sequencer定义的动画混合。

在此示例中,当输入时,我们将占据角色所在的任何游戏位置,并将其与Sequencer中的死亡动画混合。

对于本教程,我们将蓝图第三人称模板动画入门包结合使用,该模板可在Epic Marketplace免费获得。AnimStarterPack-ue4
  1. 在您的项目中,从地图中删除ThirdPersonCharacter然后通过将Auto Possess Player参数设置为Player 0来添加Ue4ASP_CharacterGame-Blend_01-eu4 如果愿意,可以通过选择胶囊组件和“ 游戏中隐藏”选项来关闭胶囊组件的显示Game-Blend_01b-ue4 
  2. 在主工具栏上,单击“ Cinematics”按钮,然后选择“ 添加关卡序列add level sequence”并将其保存为任何名称。Game-Blend_02-ue4
  3. 在“ 关卡序列”中,添加一个Ue4ASP_Character和一个动画轨道,并为其指定值Death_3作为动画。Game-Blend_03-ue4
  4. 右键单击关键帧窗口中的动画,然后在属性中将“ 完成时更改为保持状态Keep srate”更改为。Game-Blend_03b-ue4 这将使我们在完成关卡序列后保持动画的状态。还要注意下面突出显示的插槽名称属性。Game-Blend_03c-ue4 当“动画蓝图”控制“骨架网格物体”时,定序器在此蓝图的插槽中播放动画,并通过“ 插槽名称”属性进行控制。然后,可以在动画机和角色可能参与的游戏逻辑驱动的任何动画之间混合“动画蓝图”。

在下一步中,我们将调整“动画蓝图”和“角色蓝图”,以便将游戏玩法动画与此时创建的死亡动画进行混合。

自定义动画和角色蓝图

在这一点上,我们将调整“动画蓝图”,以便我们可以采用游戏姿势并与“关卡序列”定义的插槽动画混合。

  1. 内容浏览器中,找到并打开UE4ASP_HeroTPP_AnimBlueprint,然后在“ 我的蓝图”窗口中双击AnimGraphGame-Blend_04-ue4
  2. AnimGraph中,从现有的静态Locomotion自动机创建一个New Save Cached Pose(新保存的缓存姿态),并将其命名为lococacheGame-Blend_05-ue4
  3. 使用lococache他们的两倍,并连接一个引脚一个节点混合,它提供了最终的动画姿态Game-Blend_06-ue4
  4. 断开另一个lococache的连接,使用Slot节点并将其连接到针脚B(Blend),然后右键单击Alpha升级为Variable,然后将其称为Blend InterpGame-Blend_07-ue4
  5. 内容浏览器 中,打开蓝图  Ue4ASP_Character和替换部蹲下图表下方。GameB-lend_08-ue4

上面,我们用C键盘事件替换了InputAction Crouch节点并用了Flip Flop节点来切换下蹲状态。

该蓝图最初是为另一个项目创建的,该项目包括蹲伏的输入绑定,这不在我们的模板项目中。用标准的C键盘事件代替InputAction Crouch,我们将清除Blueprint警告消息,并让我们按C键在蹲伏状态和非蹲伏状态之间切换。

6.创建一个名为DefaultSlotInterp的新Float变量,并将Instance EditableExpose to Cinematics设置True。Game-Blend_09-ue4 

我们将在Sequencer中使用此变量进行混合,并将其值传递给Animation Blueprint Blend Interp变量,该变量处理实际的混合。

7.创建一个名为SetDefaultSlotInterp的新函数,并在Details面板中添加一个Float类型的Interp输入Game-Blend_10-ue4

创建了一个名为Set(属性值名称)的函数之后,我们创建了一个Proxy函数,每次相应属性的值更改时,Sequencer都会调用该函数。仅当有效性值更改时才调用此函数,并且此功能比使用事件刻度自定义事件时间线来反映DefaultSlotInterp属性的值的更改更有效。

8.从“ 组件”窗口中, 拖动到“ 网格”并使用“ 获取动画实例” 投射到UE4ASP_HeroTPP_AnimBlueprint Game-Blend_11-ue4

9. 如UE4ASP英雄TPP动画蓝图 使用集混合插补和含义内延伸插补混合插补。Game-Blend_12-ue4

每当使用Sequencer更改我们的DefaultSlotInterp值时,就会调用SetDefaultSlotInterp代理函数,并将浮点值传递到“ 动画蓝图”中的Blend Interp值,这会影响我们姿势的混合。

在下一步中,我们将默认插槽插入属性添加到我们的关卡序列中,以便我们可以在动画项目中控制混合插入。我们还将在该关卡中添加一个触发框,以便我们激活关卡序列并在玩家进入触发框关卡时进行播放。

电影变量的应用

在这里,我们添加了Default Slot Interp浮点变量,该变量将interp传递给我们的Animation Blueprint,确定何时将游戏姿势与Slot动画混合。我们还将触发盒添加到关卡中,我们将在下一步中使用该框,以使玩家开始玩关卡序列。

  1. 在我们的Ue4ASP_Character的级别序列中单击“ 跟踪”按钮并分配一个新的“ 默认槽口插值”属性Game-Blend_13-ue4
  2. 将时间轴向前滚动到第25帧(或任何其他帧),并为Default Slot Interp添加一个值为1.0的关键点Game-Blend_14-ue4
  3. 在主关卡编辑器的“ 模式”面板 中,将“ 触发框”字段拖动 到关卡,调整大小并将其放置在所需位置。Game-Blend_15-ue4 如果愿意,如果要在播放过程中查看触发音量,可以将“游戏中的演员隐藏”设置为false。

在本指南的下一个也是最后一个步骤中,我们将配置“ 水平蓝图”以在输入触发块体积时播放“  水平序列”。

开始序列 播放和混音

在最后一步中,我们可以测试设置之前,使用水平蓝图在玩家进入触发框时激活水平序列。当Sequence开始时,可用于摄影的DefaultSlotInterp属性将更改,这将启动更新我们的interp值的过程。这告诉我们的“ 动画蓝图”开始将游戏动画与Slot动画混合。

  1. 选中Triggerbox后,在主工具栏上单击蓝图按钮,然后单击打开级别蓝图Details19-UE4
  2. 点击上了日程鼠标右键,然后在部分碰撞拳击触发,选择了添加在开始重叠的演员Game-Blend_17-ue4
  3. 返回到关卡查看区域并选择“关卡序列”,然后右键单击“ 关卡蓝图”以添加指向“关卡序列”的链接。Game-Blend_18-ue4
  4. 断开您的关卡音序,使用Get Sequence Player,然后断开连接,使用“ 播放”节点并如图所示进行连接。Game-Blend_19-ue4
  5. 单击“ 编译” 和“ 保存”按钮,然后单击“ 播放”以打开编辑器。

Author: incg_UE4

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注