0%

【Games 101】Lec 21:动画

Lecture 21:Animation

1 概述

“Bring things to life”

  • 交流的工具
  • 美学引导技术

建模的扩展

  • 把3d模型延申到时间的维度

输出:按顺序播放的图片序列,提供一种运动感。

  • 电影:24 fps
  • Video(通常):30 fps
  • Virtual reality:90 fps

2 Historical Points in Animation

这个看一下PPT就行…

3 动画技术

3.1 关键帧动画(Keyframe Animation)

  • 动画师 创建关键帧
  • 人或计算机 创建中间的帧

关键帧动画一般使用插值方法来进行补帧,把每一帧当作参数值的向量,下面是线性插值。

用样条进行优化:

3.2 物理仿真(Physical Simulation)

3.2.1 概述

F = ma

使用数值模拟生成物体的运动

例子:

  • 布料模拟( Cloth Simulation)
  • 流体( Fluids )
  • 质点弹簧系统( Mass Spring System)
  • 头发( Hair )
  • 质点弹簧网格(Mass Spring Mesh)

3.2.2 质点弹簧系统(Mass Spring System)

  1. 简单的弹簧

理想化的弹簧:没有长度,作用力会导致位移。

胡克定律:

  1. 非0长度的弹簧

问题:永远震动下去。

定义概念:

引入能量损失

  • 表现得像运动中的粘性阻力
  • 在速度方向上减慢运动
  • kd为阻尼系数

问题:所有运动都会停止(不能表现弹簧内部的损耗)。

弹簧的内部阻尼(Internal Damping for Spring)

只阻尼内部,由弹簧驱动的运动。

Viscous drag 仅限于弹簧长度的变化,不会减慢弹簧系统的整体运动(例如,整体平移或旋转)

Note: 这只是一种特殊的阻尼(damping)。

  1. 来自弹簧的结构

弹簧结构的连接可以决定一个图形的行为,比如改进下面的连接来模拟布料。

原来的不足之处:

  • 切变会影响形状。
  • 会使原来的形状不在一个平面上。

改进之后:

  • 在对角线连接弹簧会抵抗切变。
  • 在两个对角线都连切线避免了各向异性。
  • 红色的弹簧会避免 out-of-plane bending(两条对角线竖直方向会弯折)。

其他模型:有限元方法FEM(Finite Element Method)

(代替弹簧系统的一种模拟布料的办法)

常用来做汽车碰撞,主要思想是力与力之间存在传导,效果如下。

3.2.3 粒子系统(Particle System)

  • 粒子系统就是将动态的系统建模为大量粒子的集合
  • 每个粒子的运动都是由一组物理(或非物理)力定义的。
  • 粒子系统是在图形和游戏上很流行的技术。
  • 具备可扩展性:粒子越少,速度越快,粒子越多,速度越慢。

挑战

  • 可能需要许多粒子(例如流体)
  • 可能需要加速结构(例如寻找最近的粒子进行如引力的相互作用)

步骤

  1. 创建新的粒子(如果需要的话)。
  2. 计算每个粒子的力。
  3. 更新每个粒子的位置和速度。
  4. 移除死掉的粒子。
  5. 渲染粒子。

粒子系统的作用力

  • 引力和斥力(repulsion) 如:万有引力、磁力、弹力(Springs)、弹簧、推进力(propulsion)。(eg:万有引力)
  • 阻力(Damping forces):摩擦(Friction),空气阻力(air drag),粘度 (viscosity)…
  • 碰撞(Collisions):墙壁、容器、固定的物体…。与动态物体、人物身体部位等…。

模拟动物集群(Simulated Flocking as an ODE)

需要考虑一个例子的各种作用力

4 运动学 Kinematics

4.1 正向运动学(Forward Kinematics)

Articulated skeleton

  • Topology 是一种拓扑结构(描述什么与什么连接)
  • 关节(joints)间的几何关系。
  • 树形结构

Joint types(关节类型)

  • Pin(1D rotation):在平面内旋转
  • Ball(2D rotation):可以旋转到不同的平面
  • Prismatic joint(translation):可以拉长

例子:2D中简单的两端骨骼。

Animator 提供角度,计算机决定 end-effector 的位置p。

Animation 是用角度参数与时间的函数来描述的。

优点:

  • 直接控制方便
  • 便于实施

缺点:

  • 动画可能难以用物理的方式来制作(不直观,艺术家不喜欢)
  • 消耗动画师的时间

4.2 逆向运动学(Inverse Kinematics)

概述:

根据尖端获得关节的角度位置。

Animator 提供 end-effector 的位置,计算机决定满足限制的 joint 角度。

计算方法:

问题:

  • 解不唯一
  • 解可能不存在

N-link lK 问题优化方法

  • 选择一个初始构型。
  • 定义一个 error metric(如:目标与当前位置之间距离的平方)。
  • 计算误差梯度作为构形的函数
  • 应用梯度下降(或牛顿法,或其他优化程序)

4.3 应用

4.3.1 Rigging 绑定

Rigging 是一套高级角色控制,允许更快速和直观地修改姿势、变形、表情等。

  • 就像提线木偶的线一样。
  • 捕捉所有有意义的角色变化。
  • 因角色而异。
  • 制作昂贵
  • 具有人工误差并需要艺术和技术的训练。

4.3.2 混合形状(Blend Shapes)

直接在曲面之间进行插值。

最简单的方案:取顶点位置的线性组合,样条用于控制随着时间的推移权重的选择。

4.3.3 动作捕捉(Motion Capture)

Motion Capture 是创建动画序列的数据驱动方法。

下面是三种动捕设备(光学、磁力和机械)。

优点:

  • 非常贴近真实
  • 可以快速的过去大量的真实数据。

缺点:

  • 准备工作复杂且高花费。
  • 捕捉到的动画可能不满足艺术家的需要,需要选择。

5 动画/电影生产的 Pipeline

参考

图形学笔记(十九)动画 —— 动画的历史、关键帧插值、物理仿真、质点弹簧系统、粒子系统、(反向IK)动力学、Rigging 绑定、Blend Shapes、动作捕捉_骨骼 逆运动学 动作捕捉 刚体模拟 流体模拟-CSDN博客

欢迎关注我的其它发布渠道