|《航海王热血航线》ai赋能游戏对战( 四 )


文章图片

文章图片

同时为了提升捕捉效率和效果 , 我们又做了以下优化:
计算效率
模型使用TensorRT加速推理
CPU与GPU之间并行
GPU内并行(CudaStream)
升级硬件rtx2070s->rtx3090
效果优化
因为是Markerless的 , 纯靠AI模型推理 , 得到的点还是会有误差 , 会产生抖动 , 所以进行了3D空间点平滑处理
减少滑步 , 实时判断脚部是否接触地面 , 然后用IK , 把脚固定到地面上
动捕数据的自动清洗
动捕能极大的提升动画生产效率 , 增加动作的逼真度 , 然而 , 动捕最大的弊端之一便是动捕数据清理所带来的巨大工作量 , 目前大部分的动捕厂商对这一步的处理还都限于使用其专业软件依赖人工进行数据修复和清洗 , 在整个流程中成本占比也最高 。即便在精度较高的光捕技术上 , 也依然存在依赖人力修复数据的问题 。
我们在建设无双工作室动捕实验室的过程中 , 通过探索 , 针对光学动捕数据 , 做自动的数据清洗 , 和姿态解算 。
基于业界的理论研究《RobustSolvingofOpticalMotionCaptureDatabyDenoising》、《AMASS:ArchiveofMotionCaptureasSurfaceShapes》、《MoCap-Solver:ANeuralSolverforOpticalMotionCaptureData》等论文的工作 。
处理流程如下
|《航海王热血航线》ai赋能游戏对战
文章图片

文章图片

训练过程如下
|《航海王热血航线》ai赋能游戏对战
文章图片

文章图片

LearnedMotionMatching
从目前来看 , 能够很好的利用动捕数据 , 使动画表现更加自然真实 , 还是需要MotionMatching , 然后在此基础上应用AI技术 , 在保证原有MotionMatching效果的前提下 , 解决MotionMatching的内存占用过大问题 。
我们总体分为两步走:
构建一个基础的MotionMatching系统
基于此 , 实现LearnedMotionMatching
主要参考育碧的《LearnedMotionMatching》
|《航海王热血航线》ai赋能游戏对战
文章图片

文章图片

核心思路就是通过训练三个神经网络 , 来取代MotionMatching中的动画数据库和feature数据库 。达到降低内存使用的目的 。
Decompressor部分
首先训练一个类似AutoEncoder网络 , 主要用于动画压缩 , 将原始动画序列转化为抽象特征z的序列 , 运行时只使用Decompressor部分
|《航海王热血航线》ai赋能游戏对战
文章图片

文章图片

Stepper部分
主要目的是为了避免存储上面的抽象特征z序列 , 现在只需要为每段动画存储一个初始的x和z , 就可以用stepper网络输出下一帧的x和z , 然后通过上面的Decompressor来还原动画 。

推荐阅读