Animation - UE5中的动画系统基础

对UE5中Animation的一些学习笔记,整理归档,UE5.1.0版本;文中所有案例都来自官方的ContentExample中的Animation Basics关卡;

首先,当在DCC软件中导出绑定骨骼的模型时,导入UE5的时候会自动生成其骨骼(Skeleton)以及带骨骼模型(Skeletal Mesh);导出的骨骼假如带有动画序列帧的话,还会生成其动画(Animation Sequence);在UE中以上都以Assets的形式存在;

Skeleton Assets本质是骨骼名字的层级列表,并不包括蒙皮(Skinning)和Transform数据,其主要功能就是把动画数据映射到骨骼模型上去;其还存储了可用于Skeletal Mesh的anim curves、sync markers和notifies等元数据;不同的Skeletal Mesh可共用同一个Skeleton,只要它们的骨骼层级是兼容的;

Skeletal Mesh包含了蒙皮的模型,以及与其关联的数据,比如material和physics asset等;

Animation assets包含了骨骼的相关Transform数据,可以在相同骨骼的任何Skeletal Mesh上使用;

以下是一些基础的特性和概念

关于Root Motion的概念,是指在动画中,是否烘焙位移到了根骨骼(root bone)上,如果是则其为有Root motion,有Root motion的动画会在角色位移动画的时候,根骨骼也会随角色而动;

角色BP的Movement component会利用根骨骼的移动来移动角色的胶囊体等,这样就在如角色后退的动画中,如果碰到障碍物等,能方便的进行正确的物理计算:

。。。。。。。。

可以使用Additive Animations叠加不同的动画,形成复杂的混合动画,比如在奔跑动画中混入受击动画,这一逻辑在Animation BP中完成:

。。。。。。。。

注意Sequence Player不同的颜色代表其引用的Animation Sequence属性不同,额外叠加到基础动画上的Additive动画,需要在其Animation Sequence属性中,设置相关参数(如Base Pose等,UE根据Base Pose计算出差异部分,再叠加到基础动画上,才有正确的效果):

。。。。。。。。

还可以使用Blendspaces来混合动画,其作用是基于输入值,在混合空间轴中获取轴上对应值的线性融合的动画;最典型的就是根据传入的速度值来混合停、走、跑等不同动画:

。。。。。。。。

完整文章发表在知乎:

Animation - UE5中的动画系统基础 - 知乎


你可能感兴趣的:(虚幻引擎,ue5,虚幻引擎,Unreal,Engine,ue4)