昨天+早上的时间做了从DeepLearning到Motion Matching的转换测试。
基本思路是录制机器学习训练好的演算运动动画作为Motion Matching的输入数据。
但是在一些没有录制的衔接上有跳动
发现的几个问题:
- 数据的准备需要遵从一定的规范遍历各个运动朝向。我用了简单的录制,所以在一些没有运动到的区域会有衔接问题。
- 数据准备成为了进一步的问题,视频动作学习技术和Style Transfer 技术,有现成的方案肯定是最好的,但还需要进一步的预研才能作为正式方式使用。
一些技术Tips点:
- Motion Matching在使用连续的动作捕捉数据的时候有更好的表现。
- Motion Matching比神经网络的回归模型有着更高的性能, 举PFNN和MANN为例,一个2足角色需要占用1.4~3.3ms的时间。而运行在Job System上运算的Motion Matching只需要0.03ms就可以评估5000个pose。
- PFNN通过神经网络从原始数据进行推演得到能够适应针对输入应对的数据。
关于Dance Card
- (ubi的叫法,就是指示演员如何表演捕捉的动作)
- 动作录制的时候需要考量到Motion Matching的需要录制各个角度的运动动画,以及从各个角度转向的动画。
技术设计重点:
- 类似游戏AI系统框架设计的思路,区分Online和Offline两种引用。
- 使用机器学习Offline运算获得运行时的精炼数据。使用Motion Matching做Online查询获得更高的运行性能。
需要进一步验证是:
- 是否直接用Raw Data能得到相似的结果?使用神经网络作为offline数据提取器是否合适。
- 神经网络是否填补了有效的数据来应对更多的情况?
- 使用Job System和GPU来进行神经网络的回归是否能够获得更好的性能?
- 使用可以针对小样本数据训练更快的神经网络?有没有精简化的类似MobieNet的运行方式?
- 如果有更好的性能是否可以直接跳过Motion Matching这一步,通过神经网络来进行实时的Matching?
- Motion Matching可以有更好的Mixing来获得更好的Cross Fade效果。菠萝准备写一个参考战争机器 4 的过渡方案替换掉 Motion Matching 默认用的 Unity 的 Fade 方案。
衍生技术信息:
- 神经网络的大小决定了运行时的性能。PFNN论文里给的性能参数是10m->1.8ms, 125mb->0.8ms,实际消耗。
- 在For Honor中实际只有对战玩家角色用了 Motion Matching,杂兵没有用,就算只有 0.03ms 的消耗,加上杂七杂八的东西,一个角色在 Motion
Matching上最终估计会消耗 1~2ms 左右。用 Motion Matching 还是有一定消耗的,基于神经网络的模型应该会更吃。