引言
计算机动画和虚拟现实技术在现代数字娱乐和仿真中扮演着越来越重要的角色。实现自然流畅、符合用户意图的角色控制是这些技术成功的关键。近年来,随着深度学习技术的快速发展,基于数据驱动的角色控制方法备受关注。本文介绍了一种新颖的基于相位函数神经网络的角色控制方法,该方法具有以下创新点:
-
实时性:该方法可以实时生成高质量的角色动作,适用于需要实时响应的场景,如电子游戏和虚拟现实系统。
-
灵活性:该方法可以根据用户输入和环境几何形状动态调整角色动作,使角色能够适应不同的环境。
-
高质量:该方法可以学习大量的运动数据,生成逼真的角色动作,具有较高的动作质量。
-
高效性:一旦训练完成,该方法只需要很少的计算资源和内存即可运行,适合实时应用。
相关工作综述
数据驱动的运动合成方法:
-
线性基方法:如主成分分析(PCA),常用于降低运动数据的维度,也可用于从少量输入预测全身运动。然而,全局PCA在低维潜在空间中表示广泛运动存在局限性,因此局部PCA被用于处理任意类型的运动。
-
核方法:如径向基函数(RBF)和高斯过程(GP),考虑了数据的非线性,常用于混合不同类型的运动。然而,核方法存储和求逆协方差矩阵的高内存成本限制了其可扩展性。
-
神经网络方法:如条件受限玻尔兹曼机(cRBM)和循环神经网络(RNN),由于其可扩展性和实时效率,在运动合成中取得了成功。然而,这些方法存在漂移问题,需要与最近邻搜索结合使用以避免错误累积。
与环境交互的方法:
-
基于优化的方法:通过评估不同情况下的成本/价值函数,预测给定角色状态和环境几何关系的角色动作。然而,这些方法在计算成本方面可能存在指数增长问题,并且需要最近邻搜索以使运动符合运动流形。
-
几何分析方法:分析环境几何,适应新几何的角色姿态或运动。然而,这些方法仅处理静态姿态,不考虑高度动态交互。
映射用户参数到潜在变量的方法:
- 视角和光照条件映射:使用变分自动编码器或乘法网络将图像的视角和光照条件映射到潜在变量,使用户能够控制它们。
方法概述
数据预处理阶段:
-
运动捕捉:使用运动捕捉技术获取多种步态和方向的长时间运动序列。
-
控制参数提取:自动或手动标记每个帧的相位,以及步态语义标签、身体轨迹和地形高度信息。
-
地形拟合:使用虚拟环境的高度图数据库,为运动数据匹配不同地形,使角色适应各种环境。
网络训练阶段:
-
网络结构:采用三层神经网络结构,包含输入层、输出层和两个隐藏层。
-
相位函数:使用周期性相位函数计算网络权重,使权重随相位变化。
-
训练:使用反向传播训练网络,以实现从控制参数到角色姿态的回归。
运行时阶段:
-
输入参数收集:从用户输入和环境获取输入参数,包括相位、轨迹、地形等。
-
计算运动:利用输入参数计算角色姿态和运动。
-
后处理:利用脚部接触标签进行脚部滑动修正等后处理。
数据预处理
运动捕捉:
-
数据采集:在运动捕捉工作室中采集多种步态和方向的运动序列,包括过障碍物、上斜坡、跳跃等动作。
-
模型使用:使用带有31个旋转关节的全身模型进行运动捕捉,并添加根变换以表示地面。
控制参数提取:
-
相位标记:自动检测脚跟和脚趾的接触时间,并手动修正错误,然后根据脚部接触计算相位。
-
步态标签:手动标记每个帧的步态类型,如站立、走路、慢跑、跳跃等。
-
轨迹和地形高度:提取身体中心的轨迹,并计算轨迹下的地形高度信息。
地形拟合:
-
高度图数据库:使用虚拟环境提取的高度图数据库,为运动数据匹配不同地形。
-
匹配过程:首先使用暴力搜索找到最佳匹配的地形,然后使用径向基函数(RBF)进行微调,确保脚部接触地面。
-
数据增强:通过镜像复制运动数据,以增加数据量。
相位函数神经网络
相位函数神经网络(PFNN)是提出方法的核心部分,其权重随相位变化而变化,用于从控制参数回归角色姿态。
网络结构:
-
输入输出:输入包括相位、用户控制参数、角色状态和环境参数,输出包括角色姿态、相位变化等。
-
三层网络:采用一个输入层、一个输出层和两个隐藏层,每个层使用512个隐藏单元。
-
激活函数:使用指数线性单元(ELU)作为激活函数。
相位函数:
-
定义:相位函数用于根据相位值计算网络权重,采用四点三次Catmull-Rom样条。
-
权重变化:权重随相位循环变化,每个相位对应一组网络权重。
-
平滑插值:权重在相位空间内平滑插值,保证运动流畅。
训练:
-
损失函数:采用均方误差损失,并加入权重正则化项。
-
反向传播:使用反向传播训练网络权重和相位函数参数。
-
训练策略:使用Adam优化器,批大小为32,训练20个epoch。
相位功能神经网络的可视化图。黄色所示的是循环相位函数——函数用于得到控制任务的回归网络的权值。
PFNN通过相位函数使网络权重随相位变化,避免了不同相位数据的混合,并能够学习大量训练数据生成逼真的角色运动。该方法适用于实时角色控制,并且具有较小的计算和内存需求。
实验结果与分析
实验结果:
-
平面环境:展示角色在平面环境中执行各种转弯、速度变化和方向变化时的运动效果。
-
复杂地形:展示角色在复杂地形上执行步进、攀爬和跳跃等动作时的运动效果。
-
低天花板环境:展示角色在低天花板环境中执行蹲下动作的运动效果。
-
跳跃动作:展示角色执行跳跃动作以避开障碍物的运动效果。
-
避障:展示角色在环境中遇到墙壁和不可通行区域时自动减速和避障的运动效果。
-
平衡动作:展示角色在特定环境中执行平衡动作的运动效果。
结果分析:
-
高质量运动:生成的角色运动自然流畅,动作质量高,优于其他方法。
-
环境适应性:角色能够根据环境变化动态调整动作,适应不同环境。
-
高效性:运行时计算速度快,内存占用小,优于其他方法。
总结与展望
主要贡献与创新点:
-
相位函数神经网络:提出了PFNN结构,使网络权重随相位变化,避免混合不同相位的运动数据,生成逼真的角色运动。
-
数据预处理:构建了包含大量角色与环境交互信息的训练数据集,为网络提供了丰富的学习样本。
-
高效实时性:训练完成的PFNN在运行时仅需少量计算资源和内存,适用于实时角色控制。
-
高质量运动:生成的角色运动自然流畅,动作质量高,优于其他方法。