第二十一章:Animation、Simulation
Animation/Simulation
计算机动画介绍:
- 历史
- 基本制作方法:关键帧
- 物理模拟方法
- 运动学
- rigging(绑定动画)
动画最初的定义“让东西动起来”:
- 一种交流的工具,展示动起来的东西
- 美学
对于建模或者几何的拓展
- 把 3D 模型延伸到时间的纬度
动画怎么制作
- 把很多图按顺序,按一定速度去播放(人眼有视觉暂留的效果)
虚拟现实为了让人们带头戴设备不晕,对帧率要求非常高(2 只眼睛必须达到 90fps)
动画的发展
电影技术的历史
最早电影技术用于科学研究(比如生物学研究)
第一部手绘 Feature-Length 动画
第一部数字动画
早期计算机动画
电脑生成的恐龙
玩具总动员(里程碑式的,整个电影都是用 CG 生成的,用光栅化的效果生成阴影)
关键帧
关键帧能定义动画的总的走向
10 年前(食破天惊)
近年(冰雪奇缘 2)
关键帧插值
线性插值不够连续,所以去要用到一些样条去做到更光滑的插值
物理模拟
牛顿第二定律: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.每个个体之间有一段距离(斥力)
3.所有鸟基本都朝着一个方向运动
模拟分子运动
正向运动学
骨骼的表示:
1.拓扑结构(找到每个骨骼相连的骨骼)
2.关节处的几何关系
3.树状结构:
关节的连接类型
1.一维的铰连接
2.二维的球关节
3.平移关节
2d 模拟一个两段的手臂:先算出第一个关节的旋转角,再算出第二个关节的旋转角
动画可以表示为时间和角度的函数
正向运动学的优缺点:
优点:
运动的控制很方便,实现方式也很直接
缺点:物体表示和艺术家们想要的动画效果不一致,花费太多时间
逆向运动学
从运动的顶点推测中间的位置
逆向运动学下的模拟的手臂运动的求解
逆向运动学的困难点:
可能有多个解或者没有解
因此会用到一些优化算法(比如梯度优化算法)
逆向运动学的模拟 demo
Rigging
就像牵线木偶一样,捕捉所有特征的变化,但制作成本很大,同时需要艺术和技术上的训练:
Blend Shapes
对两个面做插值,计算从一个面到另一个面变化的中间态。
运动捕捉
记录真实世界的运动,在大量数据中提取某一个动作。
运用最多的还是光学的
运动捕捉的优缺点:
优点:可以快速捕捉大量真实数据,效果的真实性很高
缺点:成本很大,捕捉的运动效果无法满足艺术家的需求(动画可以需要更夸张的运动)
运动捕捉设备:光学的、电磁波的、机械的
运用最多的还是光学的
面部的动画模拟
当模拟的动画过于接近真实人类时,会有恐怖谷效应
面部表情捕捉
电影的生产线
下一节课:
怎么通过力、物理理论模拟真实的运动