最近在做动画系统的一些重构工作, 顺便就看了下成熟的引擎的动画部分. 之前做过一个动作游戏的预研, 所以对这部分感触比较大, 因为相比业界一流的厂商, 动画技术可以说是国内游戏开发最落后的的一部分了
在我看来, 动画系统分成这么几个级别吧:
- 可以把DCC中制作的动作导入播放, 有Play/Stop/Pause之类的接口. 开源或者自研的引擎多停留在这一阶段
- 在多个动画之间可以定义混合转换方式, 可以很好地处理不动动作之间的衔接过渡. 如GameBryo, Vision等
- 有动画状态机和BlendTree, 可以使用参数控制播放不同的动作, 如Unity, Unreal, Havok, Morpheme等
- 把动画与物理系统结合, 实现环境交互, IK, 碰撞反应, Ragdoll等. 通常实现了3的也会把4顺便做了
- 把动画与行为系统结合, 做出真实的人物行为表现. 这部分就上升到AI层次了, 这方面NaturalMotion业界领先
苦逼的我们还在2挣扎. 引入动画中间件可以快速上升到4, 5的话目前游戏应用比较少
下面是一些最近阅读文档遇到的一些技术名词, 来源于Unity, Vision, Havok:
- Animation Clip(同Animation Sequence)
-
- 动画数据单位, 如一个"Idle" Clip, 一个"Run" Clip, 一个"Walk" Clip等
- Body Mask(同Skeleton Partitioning)