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)
- 简单的弹簧
理想化的弹簧:没有长度,作用力会导致位移。
胡克定律:
- 非0长度的弹簧
问题:永远震动下去。
定义概念:
引入能量损失
- 表现得像运动中的粘性阻力
- 在速度方向上减慢运动
- kd为阻尼系数
问题:所有运动都会停止(不能表现弹簧内部的损耗)。
弹簧的内部阻尼(Internal Damping for Spring)
只阻尼内部,由弹簧驱动的运动。
Viscous drag 仅限于弹簧长度的变化,不会减慢弹簧系统的整体运动(例如,整体平移或旋转)
Note: 这只是一种特殊的阻尼(damping)。
- 来自弹簧的结构
弹簧结构的连接可以决定一个图形的行为,比如改进下面的连接来模拟布料。
原来的不足之处:
- 切变会影响形状。
- 会使原来的形状不在一个平面上。
改进之后:
- 在对角线连接弹簧会抵抗切变。
- 在两个对角线都连切线避免了各向异性。
- 红色的弹簧会避免 out-of-plane bending(两条对角线竖直方向会弯折)。
其他模型:有限元方法FEM(Finite Element Method)
(代替弹簧系统的一种模拟布料的办法)
常用来做汽车碰撞,主要思想是力与力之间存在传导,效果如下。
3.2.3 粒子系统(Particle System)
- 粒子系统就是将动态的系统建模为大量粒子的集合
- 每个粒子的运动都是由一组物理(或非物理)力定义的。
- 粒子系统是在图形和游戏上很流行的技术。
- 具备可扩展性:粒子越少,速度越快,粒子越多,速度越慢。
挑战
- 可能需要许多粒子(例如流体)
- 可能需要加速结构(例如寻找最近的粒子进行如引力的相互作用)
步骤
- 创建新的粒子(如果需要的话)。
- 计算每个粒子的力。
- 更新每个粒子的位置和速度。
- 移除死掉的粒子。
- 渲染粒子。
粒子系统的作用力
- 引力和斥力(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 是创建动画序列的数据驱动方法。
下面是三种动捕设备(光学、磁力和机械)。
优点:
- 非常贴近真实
- 可以快速的过去大量的真实数据。
缺点:
- 准备工作复杂且高花费。
- 捕捉到的动画可能不满足艺术家的需要,需要选择。