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

发表于2016-02-29
评论6 1.27w浏览

UE4动画系统制作流程

角色使用3D软件制作完成后,导出格式为带有骨骼的FBX文件,不导出动作。

动作文件需要单独导出,导出时只导出骨骼和动画文件,不导出模型。

 

目录结构为:

“角色名”文件夹,放入制作的蓝图等文件 >>>

Animations文件夹,放入所有动画文件>>>

AimOffsets文件夹,放入所有角色瞄准姿态>>>

Meshes文件夹,放入模型文件

Surface_“角色名”>>>

MaterialLayers文件夹放入,Material Function文件。

Materials文件夹放入,材质球文件。

Textures文件夹放入,贴图文件。

 

 

根据标准设置完文件夹后在“角色名”文件夹创建一个类型为AimOffset文件,命名为:(“角色名”+ Aim)。这个文件将为我们提供角色的上半身瞄准姿态的切换。

首先设置Anim Asset Details菜单下的Additive Settings选项卡中Preview Base Pose的参数为Idle。

然后设置Parameters菜单下的X Axis Label  Yaw (意思是左右旋转),X Axis Range为-180、180。设置Y Axis Label为Pitch (意思是上下旋转),Y Axis Range为-90、90。

然后分别拖入不同方向的关键帧到(如图)相对应的位置。

AimOffset中应具有总共15种方向用于动作混合,都为单帧动画。

 

它们分别为:

A+“角色名”_CC    (正前方状态)

A+“角色名”_RC    (右转状态)

A+“角色名”_LC    (左转状态)

A+“角色名”_RBC  (右后转状态)

A+“角色名”_LBC  (左后转状态)

A+“角色名”_CU   (正上放状态)

A+“角色名”_RU   (右上方状态)

A+“角色名”_LU   (左上方状态)

A+“角色名”_RBU  (右后上方状态)

A+“角色名”_LBU  (左后上状态)

A+“角色名”_CD   (正下方状态)

A+“角色名”_RD   (右下方状态)

A+“角色名”_LD   (左下方状态)

A+“角色名”_RBD  (右后下状态)

A+“角色名”_LBD  (左后下状态)

 

 

设置完成后关闭AimOffset文件。

然后在“角色名”文件夹下创建一个类型为Blend Space格式的文件,命名为:(“角色名”+ Locomotion)。我们将通过这个文件来切换静止,走路和跑步状态。

打开文件后,设置Parameters菜单下的X Axis Label  Direction(方向),X Axis Range为-180、180。设置Y Axis Label为Speed(速度),Y Axis Range为0、600。

然后分别拖入不同方向的关键帧到(如图)相对应的位置。

AimOffset中应具有总共9种方向用于动作混合。

 

他们分别为:

A+“角色名”_Idle      (静止)

A+“角色名”_WalkFwd      (向前走)

A+“角色名”_WalkRight     (向右走)

A+“角色名”_WalkLeft       (向左走)

A+“角色名”_WalkBwd      (向后走)

A+“角色名”_RunFwd       (向前跑)

A+“角色名”_RunRight      (向右跑)

A+“角色名”_RunLeft       (向左跑)

A+“角色名”_RunBwd       (向后跑)

 

 

下面需要在“角色名”文件夹下创建一个类型为Animation Blueprint格式的文件。命名为:“角色名”+ BP

我们将在这里面整合角色模型和动作文件,并且配置角色的状态机调用参数。

 

首先我们要配置Anim Graph (如图):

 

 

这里面我们将会用到4个变量:

在Variables中新建4个float变量:

 

 

首先创建一个动画状态机:(状态机将切换角色行动状态)

 

 

双击进去后为:

 

 

在这里面我们通过判断浮点数变量的方式来切换走跑等状态。

我们首先建立两个状态,分别为:Idle, Locomotion。

双击Idle状态,进入子界面菜单。

点击右键,新建一个Play Idle节点,并连接到Final Animation Pose。

这等于默认播放Idle动作。

 

 

Settings中的Sequence选择为Idle。

 

 

返回到State Machine菜单,双击Locomotion节点,进入子界面菜单。

在Asset Browser菜单栏中找到我们再外面创建的Locomotion Blend Space,并拖入到子界面菜单中。

 

 

在MyBlueprint菜单栏中找到我们之前创建的Direction和Speed两个变量,拖动到子界面菜单中。

 

 

然后按照以下方式进行连接。这样就会通过我们再BluePrint创建好的变量,同步到之前创建好的Locomotion的Blendspace Player中。

 

 

返回到State Machine菜单,连接Entry到Idle上,连接Idle到Locomotion上,连接Locomotion到Idle上。连接完成后,会出现两个圆形的带左右箭头的图标,这两个图标为判断开关。

 

 

双击Idle到Locomotion之间的判断开关。

在My Bluprint菜单栏中,把我们创建好的Speed变量拖动进去。然后点击右键创建判断是否相等的Action。把Speed节点,连接到这个Action上。

 

 

再点击右键创建Not的Action。把他们整体上串连起来。

这代表着,当Speed != 0时,触发Locomotion控制器。

 

 

返回到State Machine菜单,双击Locomotion到Idle的判断开关。

在My Bluprint菜单栏中,把我们创建好的Speed变量拖动进去。然后点击右键创建判断是否相等的Action。把所有节点整体连接。当speed == 0时切换为Idle。

 

 

以上,我们的基础状态机就制作完成了。同理比如下蹲,加速等动作也在这里面进行制作。点击Compile , Save一下,关闭菜单。

下面我们返回到Anim Graph菜单。在My Blueprint中找到Yaw和Pitch变量,拖入到菜单。

 

 

在Asset Browser中找到之前创建的AimOffset文件拖动进来。根据下面图的结构连接节点。整体的意思就是State Machine为Base Pose 输入到AimOffset中,再把Blueprint中新建的Yaw和Pitch变量输入到AimOffset中进行控制,然后最终输出为运行时的Pose。

 

 

我们已经通过以上方法,制作好了AnimGraph。下面将进行EventGraph的制作。

在My Blueprint中找到EventGraph双击进入。

 

 

里面默认有一个节点:

 

 

点击右键输入cast to character ("caet to character"是自带的固定的命名,代表获取本角色创建的character类型的Blueprint。 cast to 的意思就是获取本蓝图或别的蓝图中的变量进行set设置,获取别的蓝图中的话就把cast to后面的关键字换成别的蓝图就好了),然后创建。

 

 

Object参数是必须有的,它将用于获取角色的速率。我们点击右键输入try get pawn owner(获取自己的动画实例?)创建这个节点,并进行连接。

 

 

下一步要我们要搭建3个模块。一个模块获取控制速度,一个模块控制瞄准姿态,一个模块控制动作姿态。

 

速度控制部分,如图:

 

 

瞄准姿态控制部分:

 

 

动作姿态控制部分:

 

 

关于节点的详细参数和流程描述后续再细化更新。

根据以上的调节,我们的角色蓝图就创建完毕了,你可以把自己想要的功能(比如跳跃,下蹲,翻滚)添加套用进去。

关闭这个动画蓝图,回到主菜单。找到我们之前创建的Character类型的蓝图,双击进入。

 

 

在Components窗口里点击3rdPersonPawn(self) ,在Details菜单里按照下图设置:

 

 

 

然后点击进入Event Graph 窗口创建以下节点。这些节点用于调用设备的输入控制。

 

 

设置完后点击Compile  Save关闭菜单。把这个Character蓝图拖动到游戏里。

把Details下面Pawn中的Auto Possess Player改成Player 0 , 然后运行一下就可以操作这个角色了。

 

 《虚幻4游戏引擎动画系统制作流程》一共分为上下两篇,

       如果您学习完“上篇”的朋友请点击下面的链接观看下篇:

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

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