虚幻4游戏引擎动画系统制作流程(下篇)

发表于2016-02-29
评论1 7k浏览

  本文是 《虚幻4游戏引擎动画系统制作流程》的下半部分。

  如果您没有看过“上篇”的朋友请点击下面的链接进行学习:

  虚幻4游戏引擎动画系统制作流程(上篇)

  本章节将混合更复杂一些的,跳跃状态机,跑跳状态机,下蹲走状态机,等。

  打开上一篇的状态机节点:

  按照上图的链接方式创建节点并且先链接好。之前我们只有Idle 和 Locomotion。

  双击Jump节点,进入子界面。点击右键创建或者从Asset Browser中把Jump_From_Stand的动画文件拖入到窗口中。这个动画文件为 站立 ——》 跳起——》站立 的循环状态。勾选Loop Animation,并连接到Final Animation Pose:

  返回到上一级菜单,双击Crouch节点,进入子界面。

  把Crouch_Idle_Rifle_Hip(原地下蹲动作)拖入到窗口中。并连接到Final Animation Pose。

 

  退回到主菜单,打开Content Browser在“角色名”文件夹中创建一个“角色名” + BS + CrouchWalk的BlandSpace文件,并双击进入。

  在Parameters中设置X Axis Label为Direction, X Axis Range为-180, 180。

  设置Y Axis Label为Speed 0, 270。

  然后从Asset Browser中拖入4种“蹲走”姿态。分别为:

  “角色名” +  Crouch_Walk_Bwd_Rifle_Hip                              蹲后走

  “角色名” +  Crouch_Walk_Fwd_Rifle_Hip                 蹲前走

  “角色名” +  Crouch_Walk_Lt_Rifle_Hip                                      蹲左走

  “角色名” +  Crouch_Walk_Rt_Rifle_Hip                                      蹲右走

  分别拖动到各个关键点上:

  回到状态机界面,双击进入Crouch Walk节点。

  把刚才创建的“角色名” + BS + CrouchWalk的BlandSpace文件拖入到界面中,并连接给Final Animation Pose。在拖入Direction和Speed两个变量,连接到相对应的位置。

  回到状态机界面,双击进入Run Jump节点。

  把事先制作好的命名为"角色名”+ _Jump_From_Jog动画拖入到界面中,勾选Loop Animation, 并连接给Final Animation Pose节点。

  然后我们开始设置状态切换。

  返回到状态机界面,把Locomotion改名为Jog,返回到上一级:AnimGraph,把State Machine改名为Locomotion。(之前的另一个演示DEMO的Locomotion是在状态机里面的,但是动画不全。然后又分析另外这个DEMO,是把整个状态机叫运动状态。暂时不要纠结这个。。。)

  进入My Blueprint菜单,新建两个变量:Enable Jump, Jumping。把Editable都关掉。

  再回到状态机。

  双击进入Idle to Jump节点的触发器进入子界面,并根据下图连接好节点。

  (速度小于10的时候,并且Enable Jump为true时,触发跳跃动作。)

  返回状态机界面,进入Jump to Idle触发器,并根据下图连接好节点。

  (正常应该是使用红框内的节点,但是找了很长时间没有找到创建的方法。然后我创建了下面的绿色的节点,类型同样是"Time Remaining(Ratio),效果是一样的。)

  返回状态机界面,进入Idle to Crouch触发器,并根据下图连接好节点。

  很容易理解。

  返回状态机界面,进入Crouch to Idle触发器,并根据下图连接好节点。

   返回状态机界面,进入Crouch to Crouch Walk触发器,并根据下图连接好节点。

  返回状态机界面,进入Crouch Walk to Crouch 触发器,并根据下图连接好节点。

  返回状态机界面,进入Jog to Crouch Walk 触发器,并根据下图连接好节点。

  返回状态机界面,进入Crouch Walk to Jog 触发器,并根据下图连接好节点。

  返回状态机界面,进入Jog to Run Jump触发器,并根据下图连接好节点。

  返回状态机界面,进入Run Jump to Jog 触发器,并根据下图连接好节点。

  现在我们已经把在上一章节做好的状态机进行了一定程度上的复杂扩展,你可以根据本套教程,自己的需要扩展出无限复杂精度的状态机模型。

  下面我们开始扩展环境。

  在My Blueprint菜单中新建一个名字为:Can Jump的Function,然后在右侧新建一个Inputs叫做Should Jump的Boolean。在Outputs中新建一个叫做bJumping的Boolean。

  双击进入My Blueprint菜单内的EventGraph。

  我们先制作跳跃环境,在界面中创建以下节点并连接。

  然后配置下蹲环境:

  配置完成后,回到Content Browser  进入Character的蓝图,接着上次的设置继续配置输入,如图:

  在My Blueprint菜单中,新建两个Boolean变量:

  Jump Button Down, Crouch Button Down。

  然后设置并连接节点:

  强调一下,我们直接正确配置完Character后也是不能正常控制的。

  需要在编辑器界面,点击顶部菜单栏的Edit ---> Project Settings弹出窗口。

  找到左侧菜单栏中的Input选项,并且进行相应的配置,这里对应的是蓝图中的输入节点:

  配置玩键位就可以正常控制角色了。

  后续更新更复杂的动画模板,以进行通用。

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引