技术美术| 虚幻4游戏引擎动画系统制作流程(上篇)
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游戏引擎动画系统制作流程》一共分为上下两篇,
如果您学习完“上篇”的朋友请点击下面的链接观看下篇: