第二十一章:Animation、Simulation
Animation/Simulation
计算机动画介绍:
- 历史
- 基本制作方法:关键帧
- 物理模拟方法
- 运动学
- rigging(绑定动画)
动画最初的定义“让东西动起来”:
- 一种交流的工具,展示动起来的东西
- 美学
对于建模或者几何的拓展
- 把 3D 模型延伸到时间的纬度
动画怎么制作
- 把很多图按顺序,按一定速度去播放(人眼有视觉暂留的效果)
虚拟现实为了让人们带头戴设备不晕,对帧率要求非常高(2 只眼睛必须达到 90fps)
玩具总动员(里程碑式的,整个电影都是用 CG 生成的,用光栅化的效果生成阴影)
关键帧
关键帧能定义动画的总的走向
物理模拟
牛顿第二定律:F=ma,只要知道一些初始条件,比如物体的初始位置,受到的力,可以动态算出物体的位置。
物体仿真
布料的模拟(模拟的不对会发生穿模的现象,比如衣服穿透了人的身体)
流体:
分为两步:1.模拟水是怎么运动的,拿到水的形状、位置。2.把结果拿去渲染
质点弹簧系统模拟绳子的运动
模拟头发的运动
用点符号表示求导
简单的弹簧
理想的弹簧:a 受到的弹簧把 a 拉向 b 的力 fa->b = ks(b-a),b 受到的力与 a 相反力的大小和 a、b 间的距离成正比(胡克定律),ks 是弹性系数
被拉伸的弹簧
a 受到的力等于弹簧质点间的距离绝对值减去弹簧原本长度,再乘以 a 到 b 的方向的单位向量。问题是:弹窗不会停下来。
质点在运动过程中的能量损失,可以用摩擦系数来计算。表现起来就像是质点运动的时候有一个拉力,使得质点的速度慢下来。
但也存在一个问题,这样做摩擦系数他会同时作用于两个质点,让所有的运动都慢下来(比如弹簧从高处落下来降到地上速度也会降低),但我们想要的是质点之间的关系。
我们把弹簧的摩擦系数与质点之间的速度差做乘积,并在物体运动方向做投影,此时阻力仅在质点之间作用,不会影响整体。
弹簧结构
模拟一块布的时候,会遇到一些问题:
1.这个结构无法承受对角线方向的剪力
2.这个结构无法抵抗平面外的弯曲(比如把一张纸对折时,基本对折处的节点不会受到周围节点对抗的力,但是对于布而言,显然折叠时,折叠处的节点会受到周围节点的拉力)
这个时候可以往剪力作用的方向的垂直方向加一个约束,此时可以对抗一个方向上的剪力,但还是无法对抗平面外的弯曲。
再往另一个方向加一个约束,此时可以对抗两个方向的剪力,但还是无法对抗平面外弯曲
在节点间跳连,来对抗平面外的弯曲,同时这个连接应该是一种较弱的起辅助作用的连接
除了质点弹窗系统外,还可以用有限元的方法进行布的运动的模拟,运动从一个位置传递到另一个位置。
粒子系统
有一些运动可以用大量粒子来模拟,比如说雾、沙子,在游戏中有广泛的应用。
粒子系统需要计算每个粒子受到的力,优点是易于理解和实现,可以用少量粒子来体现速度,更多的粒子来体现复杂度。缺点是有一些场景需要大量的粒子,比如说模拟流体,同时一个粒子会受到四周其他粒子的力的作用,这些计算需要用到加速结构。
粒子系统动画制作的步骤: 对于每一帧的运动: 1.创造一些粒子
2.计算每个粒子受到的作用力
3.更新粒子的位置和速度
4.移除死掉的粒子
5.渲染
粒子系统的受力:
1.引力和斥力
2.摩擦力
3.碰撞
粒子系统就是对一个群里中的个体的运动进行计算
模拟鸟群,把每只鸟作为一个粒子,鸟的运动遵循一些基本规则:
1.每个鸟会受到周围鸟的吸引
2.每个个体之间有一段距离(斥力)
正向运动学
骨骼的表示: 1.拓扑结构(找到每个骨骼相连的骨骼)
2.关节处的几何关系
3.树状结构:
关节的连接类型
1.一维的铰连接
2.二维的球关节
2d 模拟一个两段的手臂:先算出第一个关节的旋转角,再算出第二个关节的旋转角
正向运动学的优缺点: 优点:
运动的控制很方便,实现方式也很直接
逆向运动学
逆向运动学的困难点:
Rigging
就像牵线木偶一样,捕捉所有特征的变化,但制作成本很大,同时需要艺术和技术上的训练:
Blend Shapes
运动捕捉
运用最多的还是光学的
运动捕捉的优缺点: 优点:可以快速捕捉大量真实数据,效果的真实性很高
缺点:成本很大,捕捉的运动效果无法满足艺术家的需求(动画可以需要更夸张的运动)
当模拟的动画过于接近真实人类时,会有恐怖谷效应
下一节课: 怎么通过力、物理理论模拟真实的运动










































