ARPG----C++学习记录05 Section9 动画蓝图,腿部ik

这节课比较难懂,我也不是很理解

动画蓝图

新建一个动画蓝图。首先新建一个人物蓝图的变量用来获取人物的属性,使用第一行蓝图来初始化,当人物为Echo时获取它的movement组件,存为变量。然后动画的每一帧都从movement组件里拿出xy的速度用作后边运动状态的转变

ARPG----C++学习记录05 Section9 动画蓝图,腿部ik_第1张图片

新建状态,添加动画,设置进入状态条件。当人物的速度大于0进入跑步动画,反之待机动画

ARPG----C++学习记录05 Section9 动画蓝图,腿部ik_第2张图片

ARPG----C++学习记录05 Section9 动画蓝图,腿部ik_第3张图片

The Animation Instance

新建一个c++类

ARPG----C++学习记录05 Section9 动画蓝图,腿部ik_第4张图片

编写代码

进入动画蓝图,将父类改为我们刚刚写完的代码C++类,就可以访问我们再代码里定义的变量

ARPG----C++学习记录05 Section9 动画蓝图,腿部ik_第5张图片

打开这个选项我们可以看到从父类继承了那些东西

ARPG----C++学习记录05 Section9 动画蓝图,腿部ik_第6张图片

最后在人物的蓝图里Mesh里吧动画模式改为动画蓝图

ARPG----C++学习记录05 Section9 动画蓝图,腿部ik_第7张图片

Jumping

添加一个动作映射,空格

ARPG----C++学习记录05 Section9 动画蓝图,腿部ik_第8张图片

添加按键绑定,本来就存在Jump函数在Character类里

新建IsFalling变量,为跳跃动画做准备

将走路的动作存储起来(cache Poses),方便我们在MainState中调用

ARPG----C++学习记录05 Section9 动画蓝图,腿部ik_第9张图片

在OnGround中直接Usecachepose调用之前写好的走路和待机状态,使用isFalling的值来进入退出跳起;在最后回到走路时,先设置一个自动更据动画来播放(基于状态顺序播放器的自动规则),在添加一个依据动画时间和速度来进入走路状态

ARPG----C++学习记录05 Section9 动画蓝图,腿部ik_第10张图片

ARPG----C++学习记录05 Section9 动画蓝图,腿部ik_第11张图片

Inverse Kinematics逆运动学

当人物的腿处于边缘时,应该一只腿在地上,一只腿在台阶上,这需要逆运动学去计算需要将身体往下移多少,并且让腿部骨骼发生变化

ARPG----C++学习记录05 Section9 动画蓝图,腿部ik_第12张图片

新建一个动画里的controlRig

进入骨骼树创建虚骨骼

ARPG----C++学习记录05 Section9 动画蓝图,腿部ik_第13张图片

回到control,新建函数,新建变量

ARPG----C++学习记录05 Section9 动画蓝图,腿部ik_第14张图片

新建函数

ARPG----C++学习记录05 Section9 动画蓝图,腿部ik_第15张图片

1、球体追踪,获取每只脚更下边地面的距离

ARPG----C++学习记录05 Section9 动画蓝图,腿部ik_第16张图片

2、平滑的得到偏移量

ARPG----C++学习记录05 Section9 动画蓝图,腿部ik_第17张图片

3、使用最大的偏移量去让人物的盆骨进行下移

ARPG----C++学习记录05 Section9 动画蓝图,腿部ik_第18张图片

4、将偏移量添加到虚拟的ik

ARPG----C++学习记录05 Section9 动画蓝图,腿部ik_第19张图片

5、使用全身的ik将变换附加到左右脚

ARPG----C++学习记录05 Section9 动画蓝图,腿部ik_第20张图片

回到动画蓝图,将control rig插入,并让速度为0时调用这个偏移的动画

ARPG----C++学习记录05 Section9 动画蓝图,腿部ik_第21张图片

你可能感兴趣的:(UE5,c++,学习,开发语言,UE5)