使用AI在游戏中逼真的角色动画



爱丁堡大学的开发人员介绍了一种用于在游戏中创建逼真的角色移动的新算法。 在运动捕捉轨迹上进行训练后,神经网络试图复制真实人物的动作,但同时使它们适应视频游戏的角色。

一个神经网络能够一次管理游戏中的多个动作。 打开门,移动物品,使用家具。 同时,她动态地改变了腿和手臂的位置,以便角色可以现实地握住不同尺寸的抽屉,坐在不同尺寸的椅子上,还可以爬入不同高度的通道中。

通常,在使用AI进行游戏的角色控制下,它意味着基于某种模仿物理定律的物理引擎,完全控制肢体的力量。 这是机器学习的领域,称为强化学习。 不幸的是,以这种方式,还不能实现现实的运动。

另一方面,您可以尝试训练神经网络来模拟使用Motion Capture捕获的真实人物的动作。 这样,大约一年前,在3D角色的逼真的动画方面取得了重大进展。





关于此主题的科研工作已经连续进行了数次,但是最完整的描述可以在DeepMimic神经网络上的“转向虚拟特技演员 ”( https://www.youtube.com/watch?v=vppFvq2quQ0 )中找到。

主要思想是模拟训练过程中的人体动作,以使其不像以前那样从“运动捕捉”轨迹的最开始处开始,而是从整个路径上的随机点开始。 现有的强化学习算法会探索起点的邻域,因此大多数情况下它们并未到达轨迹的终点。 但是,如果每个情节都沿着整个轨迹开始,那么神经网络学习重复整个轨迹的机会就会增加。



后来,这个想法在完全不同的领域被采纳。 例如,通过教人们在游戏中玩神经网络,并且不是从头开始而是从随机点开始情节(在这种情况下,具体来说是从结尾开始,然后逐渐发展到开始),OpenAI教了神经网络玩蒙特祖玛的复仇 。 以前没有采用通常的强化学习算法。

没有这个技巧,尝试训练神经网络复制复杂运动的尝试以失败告终,因为神经网络发现了一条较短的路径。 尽管没有给整个轨迹这么大的奖励,但是仍然有某种奖励。 例如,神经网络没有进行翻筋斗,而是只是轻微地弹跳并在其后背上弹跳。



但是通过这种方法,神经网络可以毫无问题地研究几乎任何复杂性的轨迹。



DeepMimic的主要问题阻止了将其直接应用于视频游戏,因为它无法训练神经网络一次执行几种不同的动画。 必须为每个动画训练一个单独的神经网络。 作者试图以不同的方式组合它们,但是不能组合超过3-4个动画。

在新作品中,这个问题也没有完全解决,但是在不同动画之间的平滑过渡方面已经取得了很大进展。

应该注意的是,这个问题影响了所有当前存在的类似动画神经网络。 例如, 该神经网络也经过模仿“运动捕捉”的训练,能够如实地控制物理引擎上大量人形角色的肌肉(326!)。 适应不同重量的举重和各种关节损伤。 但是同时,对于每个动画,都需要一个单独的经过训练的神经网络。

应该理解的是,这种神经网络的目的不仅仅是重复人类动画。 并在物理引擎上重复该步骤。 同时,强化学习算法使该训练可靠且抗干扰。 然后,这种神经网络可以被转移到几何形状或质量与人不同的物理机器人上,但是它仍然会继续逼真的重复人的运动(从头开始,如已经提到的那样,尚未达到这种效果)。 或者,如在上面的工作中,您实际上可以探索腿部受伤的人将如何运动以开发更舒适的假体。

即使在第一个DeepMimic中,也有这种适应的开始。 可以移动红球,并且角色每次都将球扔向他。 瞄准并测量投掷力以准确击中目标。 尽管他仅在Motion Capture轨道上接受了培训,但这并没有提供这样的机会。



因此,这可以被认为是成熟的AI训练,而模仿人类动作只是让您加快学习速度并使动作在视觉上更具吸引力,这对我们来说是熟悉的(尽管从神经网络的角度来看,它们可能不是同时最佳的)。

新工作朝着这个方向进一步发展。


没有物理引擎,它是用于视频游戏的纯动画系统。 但是重点是在多个动画之间进行逼真的切换。 并与游戏物品互动:移动物品,使用家具,开门。



神经网络的体系结构由两部分组成。 一个(门控网络)基于状态的当前状态和当前目标,选择要使用的动画,另一个(门控预测网络)预测动画的下一帧。



所有这些都使用模拟强化学习在一组运动捕捉轨道上进行了训练。

但是这项工作的主要成就是不同的。 在开发人员如何教神经网络处理不同大小的对象并挤入不同宽度或高度的通道方面。 这样,手臂和腿的位置看起来很逼真,并且与角色在游戏中进行交互的对象的大小相对应。

秘诀很简单:扩充!

首先,他们从“运动捕捉”轨迹中确定了手与椅子扶手的接触点。 然后,他们用更宽的椅子代替了椅子的模型,并重新计算了运动捕捉的轨迹,以便手在相同的位置但在更宽的椅子上触碰到扶手。 然后,他们强迫神经网络模拟运动捕捉生成的新轨迹。 与箱子的尺寸,过道的高度等类似。



通过与玩家互动的各种3d环境模型重复多次,神经网络已经学会了现实地处理不同大小的对象。



为了与游戏本身中的环境进行交互,还必须对周围的对象进行体素化,以使其在神经网络的输入端充当传感器。



结果是游戏角色的动画效果非常好。 动作之间的平滑过渡以及与各种大小的物体进行实际交互的能力。

我强烈建议您观看视频(如果尚未有人观看)。 它详细描述了他们是如何实现的。

这种方法可以用于动画,包括四足动物,获得动物和怪物运动的无与伦比的质量和真实感:


参考文献


录影带
带有源的项目页面
包含工作详细说明的PDF文件: SIGGRAPH_Asia_2019 / Paper.pdf

Source: https://habr.com/ru/post/zh-CN474252/


All Articles