Motion Capture

The History of Mocap

  • 快速摄影

  • 转描

  • 现代动捕设备系统:

    1. 外骨骼
    2. 基于惯性
    3. 基于光学

Mechanical Mocap

  • 外骨骼:

image.png

  • 外骨骼的问题:影响人类运动

Inertial Mocap

  • 惯性测量单元(IMU):Accelerometers (3dof) + axis gyroscope (3dof),可以通过积分得到位置和速度

  • 问题:误差较大,精度高的传感器价格较高

  • 还需要加入其他传感器:重力加速度传感器,电磁传感器

image.png

Optical MocapOptical Mocap

  • 光学动捕:依靠光学设备采集标志点的位置

  • 一般使用红外相机,精度高(毫米级)

image.png

  • 计算点的位置:三角测量

image.png

  • 问题:人的动作非常多非常复杂,可能造成遮挡,因而需要更多的相机进行测量

  • 光学动捕只能得到标记点,之后还需labeling,进行补点

  • 无需补点marker的方法:

    1. Markerless Mocap with Multiple Cameras
    2. Markerless Mocap with Depth Cameras
    3. Motion Estimation with Monocular Videos
    4. Motion Estimation with Sparse Sensor
    5. A Typical Motion Capture Session

Motion Synthesis

Motion Data

  • 数据:一系列的pose,{𝑝𝑡},𝑡=1,…,N。𝑝𝑡=(𝒕0,𝑅0, 𝑅1,𝑅2,…)

image.png

  • 数据流程:

image.png

Motion Retargeting

  • 重定位运动以驱动角色有:

    1. 不同数量的骨骼
    2. 不同骨骼名称
    3. 不同的参考姿势
    4. 不同的骨骼结构
  • 将动作驱动不同的角色可能导致穿模问题,动作幅度和速度难以完成的问题…

  • A possible retargeting pipeline:

    1. 匹配骨骼的名称
    2. 缩放变换
    3. 复制重定向关键固定参考pose
    4. 用IK进行后处理:
      1. Foot-skating
      2. Self penetration

Motion Editing

  • 可以改变动作的某一帧,通过插值曲线完成整个动作序列的修改

image.png

  • 也可以用几何的方式进行修改编辑

Motion Transition

  • 动作的迁移:例如想要从走路变成跑步

image.png

  • 播放到某一帧的时候从上面的动作变为下面的动作,问题:动作突变,不连续

  • 解决方法:进行插值,逐渐过渡

image.png

  • 问题:希望走路和跑步的方向一致,还需要做一个动作的变换

“Facing Frame”

  • 随着角色移动的局部坐标系,且旋转不会使角色的方向发生倾斜:平移+y轴的旋转,其中一个轴指向角色的“朝向”

image.png

  • Possible definitions of R:
    1. R是将全局框架的 z 轴与航向对齐的 y 旋转
    2. R是将全局帧的 x 轴与肩部和臀部之间矢量的平均方向对齐的 y 旋转
    3. 将根关节旋转分解为 R0=RyRxz

Rotation Decomposition

  • 旋转在某个方向上做分解:e.g. facing frame

image.png

  • 首先用R旋转y向量,R’是旋转后的y用最小的旋转转回到原来y的旋转,可以通过叉乘来计算

image.png

  • 计算两帧的facing frame,然后应用变换做一个对齐

image.png

  • 通过facing frame的对齐插值,可以使得前后的动作连续

Path Fitting

image.png

Motion Composition

  • 根据实时的信息的计算生成运动:
    1. 玩家控制
    2. 同一环境中的对象交互
    3. 其他角色的动作

Motion Graphs

  • 本质上是状态机,每个状态节点保存一些动作(动捕数据),根据搜索的结果完成动作
    1. 节点表示运动剪辑
    2. 边表示潜在的过渡
    3. 必要时触发过渡:User input或 Clip end
    4. 检查下一个动作剪辑的即时连接

image.png

  • 动作的结束和下一个动作的开始尽量接近,否则会导致动作不连续

  • motion graphs整体流程:

image.png

  • 问题:动作结束之后才能考虑下一个动作,维护状态机非常复杂

  • 改进:在每一帧都考虑做切换

Motion Fields

image.png

  • 动作构成了空间上的一个场(motion field),在场中有很多和该动作相似的状态(让角色看起来比较自然),这些动作构成集合

image.png

  • 在动作的集合中做一个k近邻搜索,假设动作平滑,因而可对动作做加权平均,根据状态调整权重

image.png

  • 问题:该用什么权重混合最近邻

  • 改进:Motion Matching

Motion Matching

  • 只找一个最近邻,做切换使其平滑的切换到下一个动作

image.png

  • 问题:需要一个距离函数/度量来定义最近邻

image.png

  • 问题:需要一个方式来进行动作切换混合过度从而得到平滑的动作:仅每隔几帧执行一次搜索

image.png