角色动画与运动仿真 05 Data-driven Character Animation
Motion Capture
The History of Mocap
快速摄影
转描
现代动捕设备系统:
- 外骨骼
- 基于惯性
- 基于光学
Mechanical Mocap
- 外骨骼:
- 外骨骼的问题:影响人类运动
Inertial Mocap
惯性测量单元(IMU):Accelerometers (3dof) + axis gyroscope (3dof),可以通过积分得到位置和速度
问题:误差较大,精度高的传感器价格较高
还需要加入其他传感器:重力加速度传感器,电磁传感器
Optical MocapOptical Mocap
光学动捕:依靠光学设备采集标志点的位置
一般使用红外相机,精度高(毫米级)
- 计算点的位置:三角测量
问题:人的动作非常多非常复杂,可能造成遮挡,因而需要更多的相机进行测量
光学动捕只能得到标记点,之后还需labeling,进行补点
无需补点marker的方法:
- Markerless Mocap with Multiple Cameras
- Markerless Mocap with Depth Cameras
- Motion Estimation with Monocular Videos
- Motion Estimation with Sparse Sensor
- A Typical Motion Capture Session
Motion Synthesis
Motion Data
- 数据:一系列的pose,{𝑝𝑡},𝑡=1,…,N。𝑝𝑡=(𝒕0,𝑅0, 𝑅1,𝑅2,…)
- 数据流程:
Motion Retargeting
重定位运动以驱动角色有:
- 不同数量的骨骼
- 不同骨骼名称
- 不同的参考姿势
- 不同的骨骼结构
将动作驱动不同的角色可能导致穿模问题,动作幅度和速度难以完成的问题…
A possible retargeting pipeline:
- 匹配骨骼的名称
- 缩放变换
- 复制重定向关键固定参考pose
- 用IK进行后处理:
- Foot-skating
- Self penetration
Motion Editing
- 可以改变动作的某一帧,通过插值曲线完成整个动作序列的修改
- 也可以用几何的方式进行修改编辑
Motion Transition
- 动作的迁移:例如想要从走路变成跑步
播放到某一帧的时候从上面的动作变为下面的动作,问题:动作突变,不连续
解决方法:进行插值,逐渐过渡
- 问题:希望走路和跑步的方向一致,还需要做一个动作的变换
“Facing Frame”
- 随着角色移动的局部坐标系,且旋转不会使角色的方向发生倾斜:平移+y轴的旋转,其中一个轴指向角色的“朝向”
- Possible definitions of R:
- R是将全局框架的 z 轴与航向对齐的 y 旋转
- R是将全局帧的 x 轴与肩部和臀部之间矢量的平均方向对齐的 y 旋转
- 将根关节旋转分解为 R0=RyRxz
Rotation Decomposition
- 旋转在某个方向上做分解:e.g. facing frame
- 首先用R旋转y向量,R’是旋转后的y用最小的旋转转回到原来y的旋转,可以通过叉乘来计算
- 计算两帧的facing frame,然后应用变换做一个对齐
- 通过facing frame的对齐插值,可以使得前后的动作连续
Path Fitting
Motion Composition
- 根据实时的信息的计算生成运动:
- 玩家控制
- 同一环境中的对象交互
- 其他角色的动作
Motion Graphs
- 本质上是状态机,每个状态节点保存一些动作(动捕数据),根据搜索的结果完成动作
- 节点表示运动剪辑
- 边表示潜在的过渡
- 必要时触发过渡:User input或 Clip end
- 检查下一个动作剪辑的即时连接
动作的结束和下一个动作的开始尽量接近,否则会导致动作不连续
motion graphs整体流程:
问题:动作结束之后才能考虑下一个动作,维护状态机非常复杂
改进:在每一帧都考虑做切换
Motion Fields
- 动作构成了空间上的一个场(motion field),在场中有很多和该动作相似的状态(让角色看起来比较自然),这些动作构成集合
- 在动作的集合中做一个k近邻搜索,假设动作平滑,因而可对动作做加权平均,根据状态调整权重
问题:该用什么权重混合最近邻
改进:Motion Matching
Motion Matching
- 只找一个最近邻,做切换使其平滑的切换到下一个动作
- 问题:需要一个距离函数/度量来定义最近邻
- 问题:需要一个方式来进行动作切换混合过度从而得到平滑的动作:仅每隔几帧执行一次搜索