再上一文章中,我们为主角添加了人物模型,赋予了他的移动和跳跃能力。由于没有动画的支持只能呈T字形移动,这当然是不太好的,所以这一节我将会为他添加上移动和跳跃的动画效果
下载动画
可以继续去到Mixamo官网下载动画
Mixamo:https://www.mixamo.com
搜索并下载idle,待机动画
当有了一个模型后就不需要在下载模型了,在skin下选择without skin,如果带模型下载的话,文件会比较大,一个动画就几十到几百k不等,但带上模型会有几十Mb的大小,并且下载的模型是重复的
导入虚幻引擎后,创建一个动画蓝图,和混合空间1d
创建动画蓝图目的是为了,将主角的动作整合在一起,比如待机,行走,奔跑,跳跃,游泳等等
而混合空间是两个相近动作的流畅切换,比如主角从静止的待机状态到速度较慢的行走状态再到速度较快的跑步状态等等
由于我做的是待机行走和奔跑的混合所以–
进入混合空间后,名称我改为speed,最大轴值我改为600,因为如果我没记错的话在虚幻引擎中速度的最大值就是600cm/s
将主角状态的动画拖到工作台上,上方的模型就会在不同的速度下有不同的动作
保存退出这个工作窗口
创建状态机
进入动画蓝图后创建状态机
进入状态机,添加状态
先添加了两个状态,分别为待机和移动(行走和奔跑),跳跃后面再做
进入walk后将刚刚做好的混合动作拖进来,会发现有一个参数Speed,这就是我们前面设置的
将其提升为参数后,需要在后面为他提供参数值才会播放动画,而参数由主角移动数据提供
事件图表
进入事件图表
把主角的速度提取出来赋值给speed,值得一提的是 中间获取速度的节点是返回的向量,而我们以浮点数speed作为速度的参数
增加了一个布尔值,用于判断是否正在移动,后面状态机状态切换时会用到
其中这两个节点的意思就是获取主角的向前加速度是否不等于零和速度是否大于三,两个取其一如果满足就是正在移动中。
这个是切换到移动状态
这个是切换到待机状态
现在待机和移动的两个状态就完成了,来看看成果吧
下面该完成跳跃的动作了
跳跃动作
跳跃动作比移动和待机稍微复杂一点,因为它涉及到了三个状态,分别是:起跳,空中掉落,落地。
依然在mixamo官网下载动作
导入虚幻后,在状态机中和上文一样创建状态并将相应的动作拖入其中,如:
连接各个状态后,需要写入转换规则才可以从一种状态转换为另一种状态
这里是从起跳到空中的规则,起跳后为了动画衔接流畅所以使用了“获取相关剩余动画时间”的节点,在startjump还有一小段时间结束时就可以转换了,下面的布尔值是上文获取的是否在空中的状态,两者都在“true”的情况下就会转换到空中掉落状态。
这里和上面的情况差不多,判断是否落地,转换到落地的状态,“获取相关剩余动画时间”比上文的要短一些,这里是根据具体的动画时常来自己判断
这里是空中掉落到落地的转换规则,情况上文一致。
完成后就是这样的,其中一些较为简单的规则就不截图了。
跳跃动作完成……
人物动作基本完成了,接下来根据需要可能会添加一些拾取的动作
接下来就是地图的搭建了……