UE 动画系统源码解析
动画系统源码解析
一 UE动画系统框架梳理
1.1整体介绍及框架图
上篇文章讲了很多动画系统的功能,可以看到很多功能不管中间在做什么,最终的目的都是让游戏中的模型动起来,模型动起来在UE中的核心其实就是模型的骨骼位置旋转缩放,可以统称为Transform,在每一帧中处于不同的位置,然后在游戏世界中,随着每一帧,根据每一帧骨骼的Transform信息重新绘制模型,当前其中包括布料和蒙皮,骨骼只是最核心的数据
UE的Skeleton(骨架),上节提到过,内容包含骨骼位置和旋转角度,为树状结构,父骨骼将会影响子骨骼,其实UE的动画资源,存储的就是每一帧Skeleton(骨架)的最新骨骼位置和旋转角度,但是RunTime的时候,不可能只有一个动画在播放,UE中有动画Graph来决定到底是哪些动画资源和输入最终决定这一帧最终的骨骼位置,比如下方的动画Graph,可以看到使用了不止一个动画节点,这些动画节点有的输入和游戏中的操作有关,有的和节点上的设置有关
那么其实动画系统源码框架里最重要的需求就是,UE中如何让动画Graph中的所有节点合作起来,能在每一帧算出最新的骨骼位置,并且最终渲染到屏幕上,其中有很多类通力协作,本文的第一小节将会从框架角度梳理UE如何做到上述需求,然后