UE5动画系统:Motion Matching—3A游戏动画的秘密武器!
字符无限科技
2024年07月18日 14:44

在游戏开发团队里,有这么一群鲜为人知的人,他们叫动画工程师,他们的主要工作是让游戏里的角色能够在游戏世界里正常的动起来。

为了能让角色动起来符合策划的需求,他们搞出来了个状态机来解决角色运动过程中动画选择的问题。

那么状态机一般是如何工作的呢?

首先我们先简单的定义好角色会存在的状态A和另外一个状态B,这两个状态之间是可以相互切换。

但是策划要求这个切换过程能够有动画表现,所以我们会制作一个这样的状态机出来。

传统3D游戏动画通常使用状态机,来控制骨骼动画与状态的匹配,通过动画融合来实现动作的切换过渡

状态机的原理简单而且明确,但是制作起来费事费力,并且难于解决不同动作切换的融合问题,容易融合出怪异的动作,例如滑步,脚步穿插等问题。

新一代的动画技术Motion Matching针对状态机及动作融合的缺陷,拥有使用简单、灵活的特点,并且能实现丰富的动作效果。

日前,腾讯天美引入原育碧资深动画程序专家Simon Clavet,加入天美蒙特利尔工作室,将担任首席动画程序,参与3A开放世界项目

Simon Clavet被称为“Motion Matching技术之父”,在育碧有16年的3A开发经验。此次引入动画程序专家,是腾讯天美在此前对动画技术管线建设的基础上,进一步推进对动画技术的投入,引入关键人才。

2016年3月的游戏开发者大会(GDC)上,向所有人展示了育碧的一项黑科技,下一代人物动画技术:动作匹配(Motion Matching)

Motion Matching技术基于运动捕捉获得的动作数据库,用程序自动搜索最合适的下一帧,由此生成完整的动画。

相比于以往主流采用的状态机动画,具有动画真实度更高、更节约人力和时间成本、能实现更高产能等特点

传统的动画制作,比如目前大部分的游戏中,我们看到的每一套完整动作,都是由预先准备好的数个动画片段组合而成。

人类的真实动作制作方式也主要来自真人动作捕捉,游戏动作捕捉不像电影记录整套动作,而是记录一个个动作片段,例如走、跑、蹲、跳、挥剑。再在游戏引擎中,由状态机或者行为树去控制动画播放,混合等逻辑。

这种传统的动作制作与控制方式,有一些弊端,比如想要动作流畅自然,必须要在两个动作之间准备过渡帧动画。过渡帧起到串联动画的作用,玩家输入操作A、B,程序就会依次播放A、A-B过渡帧、B。

这只是最简单的解释,有时要根据上一个动作状态的不同选用不同的过渡帧,一个动作可能会分出四个过渡帧。

每一个动作帧衔接的动作又会分出N个过渡帧,这样的状态管理会随着角色的动作状态越多而数量迅速爆炸,进则难以管理和调试。

另外就是如果想要动作流畅,必须放完一段动画后才能放下一段动画。

玩家给的操作指令要排队依次执行,谁也不能插队,如果直接取消动作,会带来操作优势但导致人物动作不流畅,会出现跳跃式动作。

而MotionMatching技术相比于以往主流采用的状态机动画,具有动画真实度更高、更节约人力和时间成本、能实现更高产能等特点

Motion Matching技术于2016年面世,最早应用在育碧《荣耀战魂》中,这些年来已经在不少海外大厂3A大作中采用。

这个技术它能在保证流畅性的前提下允许玩家从一个动画直接跳到另一个动画,动作匹配让玩家任何时候按下按键都会有动作反馈。

即玩家能随时改变角色动作,中止当前动画播放,同时完美过渡到下一段动画。

这项技术最大的优点就是成本低,不需要再靠人工一点点制作状态机,也不必再录入单独的动画。

攻击、格挡、闪避等动作之间衔接的异常流畅,人物动作过渡顺滑算法的响应速度也很快

一般应用在Locomotion上面,在游戏《The last of us 2》中也部分应用到了此技术让动作过渡更平滑。

但由于该技术目前没有被育碧等公司开源,核心算法等技术仍掌握在少数大厂手中,所以前期建立技术管线需要较高的投入。

这也意味着,对于正在推进多个3A项目,剑指全球化的腾讯来说,引进专家是推进项目落地和建立内部生产管线最有效率的方式之一。

另外,Motion Matching还存在内存占用大技术难点,因此当前基本只应用在主机端。

腾讯引入原育碧动画程序专家,强化3A主机技术能力

在从外部引入动画技术专家之前,腾讯2021年就对Motion Matching技术进行了投入,已经具备一定基础。

Motion Matching是一种角色动画技术,首先通过动作捕捉建立角色动作的“数据库”,然后程序会遍历数据库中的每一帧,“暴力计算”出最合适的下一帧并播放,从而形成完整的动画。

Motion Matching技术具有无需动画师手动调整、动画表现更真实、细节更丰富、动作过渡更自然等特性。

在此前的动画制作中,主流采用状态机动画。把角色的动作拆解成“走”、“跑”、“跳”等基本的“状态”,这些状态两两之间有彼此过渡的动画。

所有的基本状态及其过渡一起组成复杂的网状结构,通过状态间的切换和过渡来形成完整动画。

状态机动画存在复杂度高的问题,一旦要增加状态或需求,动画系统的复杂度会迅速上升。并且状态机需要开发人员编写和维护,所需的人力和时间成本都很高。

Motion Matching技术的逻辑则更简单,从而能够在提升角色动画产能的同时节约人力和时间成本,因此自面世以来,就受到业界关注。

Motion Matching技术对游戏工业化流程和效率的提升

3A游戏在动画方面有着对动画真实度细节丰富度要求高、玩家对操作控制感有高要求、以及投入大、生产周期长等痛点。

Motion Matching技术自面世以来多被3A大作采用,正是因为能一定程度解决上述痛点。

1.动捕生成的动作数据库,供更多细节,以及实现更真实的还原。

Simon Clavet在2016年GDC大会上首次展示Motion Matching在《荣耀战魂》中的应用时就提到,Motion Matching可以提供更高质量的动画

因为数据库中的动作是由动捕演员表演得来,动画师可以与动捕演员沟通动作的速度、呈现效果等细节。

比如Simon Clavet在展示中就播放了一段动捕演员表演角色疲惫、踉跄行走的动作,基于这些动捕数据,游戏角色能够很好地实时表现细节丰富、真实度高的疲惫状态。

此外,针对传统方式难以真实还原的动物,基于动捕的Motion Matching也能更好地解决问题。

2.快速切换和过渡动作,实现更高的响应性。

状态机动画系统在一个动作切换下一个动作时,必须要播放完前一个动作的整个动画才能切换播放下一个动作,因此在响应性上存在问题。

但Motion Matching在运行过程中会在不同的动画片段中来回切换,从而影响动画的完整度和连续性。

所以在Motion Matching的算法中增加了一些策略,例如允许增加动画跳转时的cost,或者跳转时屏蔽附近的等等,来避免不合理的动画跳转让整个动画更流畅。

因此能够实现更流畅的切换和过渡,从而使玩家感到响应性更好。

另一方面,由于动作表现的真实性和响应性是互相排斥的,动作要表现的细节越多,要播放的帧就越多,从而响应性就会随之下降。

3.减少动画师工作量,节省人力和时间成本。

《黑神话:悟空》的角色数量非常庞大,而且对动作游戏而言,角色也需要非常细致的动作品质。

这导致团队在品质和数量这两个维度上都面临非常多的技术挑战。所以在制作过程中也采用了Motion Matching技术

游戏科学的客户端技术负责人招文勇分享,《黑神话:悟空》有丰富的角色种类,同时又有着对动作产能的高要求,“意味着我们要搞出一个足够简单的管线,可以让外包来帮我们做这个事情”

在尝试过其他技术后,最终选择了Motion Matching技术。招文勇表示,选择Motion Matching的原因:

一是工作流非常简洁,不需要动画师去理解动作如何分拆;

二是可以把部分动画外包出去,极大地提高产能;

三是动画质量精良,而且还支持各种locomotion的需求,包括各种转向折返,还有加减速等等。

然而,Motion Matching技术也并非完美,本身还存在一些有待解决的问题

我们一直在说Motion Matching是动画驱动移动,它自身也是有一些问题的。

单从技术层面而言;

第一个是他的动作很写实,动作写实这个事情本身就是跟操作的灵敏度有矛盾。所以用了Motion Matching之后,本身就要权衡这个东西。

第二个是它的各种性能问题,比方说它的内存占用是非常高的,动画数据量非常大,应对策略就是可以删除没有实际用到的帧。

第三个是它的运算量非常大的,因为前面说过他理论上就是去算每一帧到底哪个更合适。

所以这个问题首先可以用多线程来解决,第二个是由于它的搜索其实是一个多维搜索,所以可以用KD去变成一个树状的搜索,这样可以极大地减少它的搜索量。

另外,由于动作是靠预先的动捕收集而来,因此无法对动作进行组合,需要新的复杂动作只能重新进行动捕。

从应用层面而言;

Motion Matching在前期进行动作捕捉、建立管线等需要较高的资源投入

但另一方面,育碧等大厂并没有对Motion Matching技术进行开源;现阶段Unity和虚幻引擎虽然都提供了相关组件,但功能也并不完善

基于此种现状,现阶段有需求也有条件应用Motion Matching技术的主要还是想要开发3A游戏的大厂。

Motion Matching技术进展

自2016年面世以来,Motion Matching技术一直在不断发展,其中比较明确也广受关注的方向是与机器学习的结合

机器学习是人工智能下的一个子领域,主要指通过数据或以往经验来训练、优化计算机算法。

在更具体研究方向上,“Motion Matching之父”Simon Clavet致力于研究的是结合强化学习的Motion Matching。

他在2020年的GDC大会上展示了“Ragdoll Motion Matching”,AI小人在随机生成的模拟环境中行走,在行动中不断获得反馈并学习,从而能够实现顺利行走、应对各种复杂地形的效果。

这种强化学习方案尝试将物理系统引入动画系统中,同时也能够解决Motion Matching的内存占用问题。

除Simon Clavet之外,业界其他研究者主要在深度学习分支上有较多研究成果,其中不少专家都在今年被大厂招揽。

可见,目前Motion Matching技术在机器学习方向上的发展无论更侧重哪个分支,主要是为了解决内存占用这个最大痛点,其次是改善动画的具体表现效果

由于内存占用过大,现阶段的Motion Matching技术基本只在主机端使用,但随着机器学习等方向的技术发展,未来Motion Matching或许有望应用在更多领域。