Motion Matching

直接翻译过来叫动作匹配,是本世代开始慢慢流行起来的具有革命性的计算机动画系统。

  • 传统动画系统

在了解什么是Motion Matching之前,需要先普及一下当前游戏界的主流动画系统的运作方式,大概可以分成3步:

1:动作捕捉

AAA游戏需要大量的真实性动画数据,因此大部分AAA动画的源数据都起始于动作捕捉。一般像动视这种大的发行/开发商都拥有自己的动作捕捉工作室,没有的话也会租用长期合作的工作室,雇佣演员来进行大量的动作捕捉。

2:手动调整

在拥有了动作捕捉数据后,动画师会在此基础上进行二次创作,包括清理数据,调整效果,手动添加关键数据等等,这样以保证最后的动画数据达到理想的效果。

3:动画逻辑

在拥有了效果满意的动画数据后,动画师/设计师/gameplay程序需要把这些动画数据通过逻辑整合起来,比较通用的做法是使用某种图结构的状态机,在此之上动画的播放还被许多blending参数控制。

对于简单的游戏这种基于图结构的状态机是完全没有问题的,但一旦游戏复杂度提升,缺点就显而易见了:图会变得非常复杂。一个主要人物的状态图可以有成千上万个节点和状态转变,这就导致了非常难学习,非常难查错,非常难修改,往往是拆了东墙补西墙。

  • Motion Matching

Motion Matching的实现和上面提到的传统动画系统有本质区别,在概念上大概也可以分成3步:

1:建立动画数据库

Motion Matching把所有的动画数据看成是一个无结构,无差别的大数据库,数据来源也同样是大量的动作捕捉和手动编辑,和传统动画系统的1,2类似。

2:指定输入

Motion Matching不再需要手动编辑枯燥,复杂,极易出错,极难管理的状态图,而是在游戏中一定时间内指定一系列动画输入目标,比如:

  • 希望达到的人物位置和速度
  • 希望达到的人物前进轨迹
  • 希望达到的关节位置和速度
  • 等等

3:搜索数据库

在指定输入目标之后,Motion Matching会在原生动画数据库中通过某种搜索算法来找到和输入目标最匹配的动画结果。

看到这里大家应该有很熟悉的感觉了,是不是很像在互联网上用搜索引擎搜索数据?Motion Matching本质上是一个搜索匹配引擎,在数据量充足的情况下,作为动画系统的可扩展性(scalability)非常高,同时又简化了制作,让动画师可以更专注于打磨动画质量。

  • 总结

在这里只是稍作介绍,并没有深入讨论技术细节,Motion Matching目前还在探索和发展中,我所知道的AAA游戏使用此技术的有:

  • 荣誉战魂
  • 最后生还者2

因为其局限性,Motion Matching现在还无法完全取代传统动画系统,大部分使用此技术的AAA引擎目前均采用传统动画系统和Motion Matching混合的技术方案,Motion Matching主要被应用在locomotion上。

育碧的R&D部门在Motion Matching方面进行了多年的研究,成果也多次在GDC(游戏开发者大会)上被分享,相信随着算法的进化,新AI技术的深入应用和动作捕捉的进一步成熟,Motion Matching有潜力在不远的未来成为AAA游戏的主流动画系统。

  • 参考链接

Character Control with Neural Networks and Machine Learning

GDC 2016 – Motion Matching, The Future of Games Animation… Today

来源:知乎 www.zhihu.com

作者:知乎用户(登录查看详情)

【知乎日报】千万用户的选择,做朋友圈里的新鲜事分享大牛。
点击下载

此问题还有 18 个回答,查看全部。