- 0
- 0
- 0
分享
- AI自动纠正动作姿势!基于物理动画制作工具Cascadeur又放大招!
-
2023-04-17
Cassadeur这个动画软件我们推送过好几回了。它是一款基于物理的动画制作工具,而且最大的亮点就是“不依靠动捕,就能实现复杂的动画效果”!
再给大家回忆一下Cascadeur,最初是为Nekki自己的手游(例如《暗影格斗》《矢量跑酷》等)开发的工具,主要是想更方便快速地对角色和生物进行动画处理。与传统的动画工具不同,它鼓励用户专注于物理特性,例如角色的轨迹,角动量和支点等等。
一旦确定了关键动作,这个软件便会产生一个看起来合理的动作,将它们连接起来。甚至通过机器学习训练的系统也可以部分自动化关键姿势的过程,系统可以跟踪角色身体中关键的关节:脖子,臀部,手腕和脚踝。
手动重新放置一个关节时,软件会调整其他关节的位置以匹配。除了其基于物理和机器学习的系统外,Cascadeur还包括一系列更常规的绑定和动画工具,然后以Collada和FBX格式导出到其它DCC软件。
不过最近,Nekki憋一个大招,团队基于Cascadeur开发一款新的智能工具名为Autoposing!其中融合了AI技术,来让游戏开发中的角色姿势变得更加容易和丝滑~目前该工具还处于迭代测试版,咱们抢先来看一波~
最初想法及目标
咱们都知道Cascadeur是由Nekki公司开发,但是它的主要创始人是谁呢?
2006年获得应用硕士学位
与团队一起所开发的《暗影格斗》在国际上大获成功!
成为当时最受欢迎的移动格斗游戏,下载量超5亿
后续,他又全身心的投入到Cascadeur的编程,成为高级制作人,他最大的目标就是让Cascadeur成为“角色动画的ChatGPT”,能够让初学者也能在专业水平上创建写实的动画。
为了尽快达到该目标,Eugene与团队的两位AI专家Aina Chirkova和Max Tarasov合作,一起研发如何让游戏开发中的角色摆姿势更容易和更快,并以最短的时间达到这一结果。
为了达到更好的效果,技术团队借助了一个相当深入和智能的神经网络,花了一年的时间重新设计,将它分解成一堆更小和更简单的神经网络和启发式算法,添加了不同的可能性和设置,而这一切只是为了确保动画人员能够获得最大的操作控制和可预测性,这也是AutoPosing工具一个非常好的起点。
第一次迭代
团队的目标是开发一种工具,让动画师能够快速设置草稿姿势,然后在此基础上进行完善,这样可以在制作每个动作时都可以快几倍。
最初的想法也是比较简单,仅将6个点(颈部、骨盆、手腕和脚踝)的位置输入神经网络,在保持这些点位置的情况下得到最自然的姿势。
为了实验,团队从游戏《Shadow Fight3》中提取了1300个动画,然后又制作了一组比较特殊罕见的姿势,团队把镜像所有内容的数据集加倍,最终得到了2600个动画,其中共有220000个姿势,其中80%用于训练,20%用于测试。
教学理念也很简单,从每个姿势中取出6个点并将它们输入到神经网络中,标明其余点的位置,然后团队将这些点的位置与初始姿势中的点进行比较并估计偏差,神经网络会通过使用反向传播算法进行学习。
最终得到的结果也非常有意思:
然后团队通过引入几个内部神经网络使系统变得更加复杂,此系统允许用户可以控制6个点,还可以控制绑定的每个点,这样动画师就可以利用任意数量的点来改善姿势,如果需要的话还可以全部使用。
根据上面的流程操作,效果看似不错,但实际上,这一版本的AutoPosing还是有一个很大的Bug,移动6个主要点时,头部会由于某些内部逻辑而转动,连同脚和手腕,脊柱也会弯曲,虽然姿势本身看着还行,但过程会相对于复杂。
目前所掌握的技术
团队经历了多次迭代,做了很多实验,最终花了一年多的时间,得到了一个最方便实际工作使用的结果。
也是后来团队才明白,他们要得到的并不是一个非常复杂的神经网络,而是一个由12个更简单的神经网络组成的复杂系统,每个神经网络都有自己的“工作”或者是控制身体的特定区域,当然其中一些也会参考特定的情况。而且团队实现的一些系统行为根本没有使用神经网络,而是用启发式算法来代替它们。
咱们接下来就看看角色参数都是由哪些神经网络和算法来解析的。
角色的总体方向
大方向由一个完全连接的神经网络解决,这个网络由200和100个神经元的2个隐藏层组成,使用4个点(手腕和脚踝)解析整个角色的方向。
事实上,在其余神经网络的学习过程中,所有使用的姿势都会以相同的方式定向,骨盆和颈部沿Y轴放置,胸部沿X轴放置。这样,身体其余部分的可能位置空间就会缩小,并且不依赖于角色的方向。因此,为了使AutoPosing更高效的工作,团队首先必须从Wrists和Ankles获得角色的大体方向,以便网络的其余部分能够相对于此工作。
手腕的位置
具有4个隐藏层(150、200、150、100)的全连接神经网络。
这里要注意,手腕的位置取决于脚踝的位置,脚踝的位置始终由用户设置,并且取决于角色方向控制器。假设如果用户将Ankles放置在靠近地面的位置,为了获得运动,会直接使用运动数据集中的姿势,那么当右脚向前移动时,右臂就会向后移动。
骨盆和颈部的位置
2个完全连接的神经网络(骨盆和颈部),每个都有4个隐藏层(200、250、200、150)。
骨盆和颈部的位置取决于脚踝、手腕和角色方向控制器的位置。同时,骨盆和颈部的位置是由向量定义的。
骨盆的方向
具有3个隐藏层(128、30、10)的全连接神经网络。
骨盆的方向取决于脚踝、颈部和骨盆方向控制器的位置。此外,用户可以使用方向控制器旋转骨盆,并通过移动臀部方向控制器绕轴旋转。
脊柱弯曲参数
具有3个隐藏层(128、30、10)的全连接神经网络。
脚踝、骨盆和颈部的位置,以及角色方向控制器,都被输入到神经网络中。脊柱的弯曲主要取决于胸部的方向、骨盆的朝向以及骨盆与颈部距离所留的自由度。团队的要求就是必须在GeoGebra中进行可视化,来可视化脊柱弯曲的所有可能方式。
这个神经网络解决的主要问题是就脊柱应该向哪个方向弯曲,比如腿主要决定脊柱应该向前弯曲还是向后弯曲。此外还有一个重点是,默认情况下脊柱会避开S曲线,但用户还是可以通过调整骨盆和胸部来自由弯曲脊柱。
四肢各点位置
由5个完全连接的神经网络(手、肘、肩膀、脚和膝盖)控制,每个神经网络有2个隐藏层(64、32)。
这些神经网络决定了手和脚的方向以及肘部、肩膀和膝盖的位置。
不过这里有个要注意的问题,手臂点的神经网络分别为左臂和右臂工作,这样可以避免手臂之间的相互影响。不过,因为腿部怎么都会通过骨盆相互影响,所以腿部点的神经网络为协同工作。
手和脚的方向由主要的6个点(脚踝、手腕、骨盆和颈部)决定。肩膀的位置取决于手的方向,肘部的位置又取决于肩膀的位置。
在这一部分,团队做出了一个关于手和脚的重要决定。如果手和脚的方向不是由用户设置的,团队会从T型姿势中获取,否则从用户的角度来看,行为是不可预测的。一旦解决了四肢所有点的位置,手和脚的局部角度将会重置T姿势值。通常情况下,T姿势的手继承前臂的方向,脚会与胫骨垂直。
如果设置了手的方向,与数据集相比的话,足以非常精确地确定手肘和肩膀的位置。这在VR中特别实用,比如确定好玩家手的方向和位置,紧接着只需要确定肘部和肩膀以及化身的位置即可。此外,脚的方向还可以确定膝盖的位置和骨盆的方向,所以整体都是联动的,操作起来也极其方便。
脚和手与地面平齐
这是一个完全启发式算法,毕竟该系统也没使用任何神经网络。
当有一个特定的高度时,在这个高度中,脚的方向开始融入T型姿势的方向。如果假设在T字姿势中,角色的脚平放在地面上,胫骨与地面的角度会有一些限制。
如果脚向前移动很远并且胫骨超过一定角度,那么脚就不会再与地面对齐。如果脚向后移动很远,它就会平落在地面上,横向移动也是如此。此外,脚尖还可能会与地面发生碰撞,但是脚趾在接触地面时会自然发生弯曲。
手的工作方式与脚类似,只是它们的方向最终取决于角色方向控制器。
头部方向
具有2个隐藏层 (64、32) 的全连接神经网络
把脖子的位置,人物的方向,Spine的参数,头的方向输入到神经网络中。只要用户未设置头部的方向,它就会保持其相对于T形姿势的胸部方向。但是如果用户调整头部方向控制器,头就会朝向指定的方向。同时,神经网络随着颈部的旋转调整其倾斜度。头部是唯一在身体最上的位置并倾向于直立位置的身体部位。
控制所有的点
用户可以移动装备的每个点,即肘部、肩部、膝盖、骨盆和胸部。然后不采用神经网络解析的位置,而是使用用户位置,这样就可以完全控制姿势。
这里要注意一点,如果用户未设置手和脚的方向,那么就会分别由肘部和膝盖的位置决定,因为毕竟手继承了前臂的方向,而脚则垂直于胫骨。
结论
团队经过一年的时间反复测试和迭代,终于得到AutoPosing,能够保证在提高效率的同时,任何用户都可以自由更改任何内容并保留对结果的完全控制。
end
-
阅读原文
* 文章为作者独立观点,不代表数艺网立场转载须知
- 本文内容由数艺网收录采集自微信公众号CG世界 ,并经数艺网进行了排版优化。转载此文章请在文章开头和结尾标注“作者”、“来源:数艺网” 并附上本页链接: 如您不希望被数艺网所收录,感觉到侵犯到了您的权益,请及时告知数艺网,我们表示诚挚的歉意,并及时处理或删除。