阅读量:5
Lecture21 Animation
一、关键帧Keyframe动画
- 动画师创建关键帧,其余员工(人或者电脑)创建中间帧
- 关键帧动画本质上就是一个插值技术,把每一帧比作一参数向量,对其进行插值求得中间帧
- 需要更加平滑可控的样条线来进行插值
二、物理模拟
- Physically Based Animation 是通过数值模拟来生成物体运动的动画技术,利用物理学原理来模拟真实世界的物理现象(重力、摩擦、碰撞和弹性等)
- 模拟布料、流体等
质点弹簧系统
1.方法
- 初始建模:
- 每个顶点表示一个质点
- 每条边表示一个弹簧(静止长度为边长)
- 弹性系数、阻尼系统
- 动态模拟:
- 确定好一个步长时间 Δ t Δt Δt
- 每过一个步长时间,所有弹簧的弹力传播并更新一次
- 实例:
2.理想化弹簧
F = k s Δ x F = k_{s}Δx F=ksΔx —— 胡克定律
- 弹簧的力总是将两个连接点拉向彼此
- 力的大小与两个连接点之间的位移成正比(越压缩拉伸,力越大)
3.非零长度弹簧
有自然长度l, F = k s b − a ∣ ∣ b − a ∣ ∣ ( ∣ ∣ b − a ∣ ∣ − l ) F = k_{s} \frac{b-a}{||b-a||} (||b-a||-l) F=ks∣∣b−a∣∣b−a(∣∣b−a∣∣−l)
- 问题:无限振荡 —— 弹簧会在两个连接点之间无限振荡,永远不会停止。这是因为弹簧的力总是试图将连接点拉回到自然长度,但由于惯性的作用,连接点会继续运动,导致弹簧不断振荡
4.弹簧阻尼系统
- 人为附加的虚拟力,与速度方向相反,避免运动爆炸
5.质点弹簧系统优化
- 原来的系统的局限性
- 切变时会受到影响
- 发生弯曲时会变的不是一个平面
- 优化
- 增加虚拟弹簧(红)(相隔的质点添加一个),稳定形状
- 增加角弹簧(蓝),保持两个相邻面之间的固有角度
粒子系统
- 粒子与粒子之间不只有碰撞,还有引力
粒子动画的每一帧
- 动态生成
- 计算内部力、外部力
- 通过力来计算粒子的位置和速度
- 去除死亡粒子
- 渲染粒子
粒子系统的力
吸引力和斥力
- 万有引力
阻尼力:摩擦力、空气阻力等
碰撞力
群体动画
- 鸟群
- 其他鸟想融入集体
- 任何一个鸟不会离其他的鸟太近
- 个体有自己的运动属性
三、运动学
1.前向运动学
- 用于根据关节角度计算物体上各个点的位置。它通常用于模拟由关节连接的骨骼结构
- 动画师会为每个关节设置一系列的角度值,这些角度值随时间变化,从而控制角色的运动
- 关键概念:
- 拓扑结构Topology:指明骨骼中哪些部分是连接在一起的
- 几何关系:关节的几何参数,类型方向等
- 树状结构:每个节点代表一个关节,诶个树枝代表骨骼
- 关节类型:
- Pin Joint:允许在单个方向上旋转,肘关节
- Ball Joint:允许在两个方向上旋转,肩关节
- Prismatic Joint(棱柱关节):允许单一方向移动,膝关节
- 好处
- 直接控制方便
- 计算相对简单
- 缺点
- 可能不符合物理规律
- 耗时耗力
2.逆向运动学 Inverse Kinematic
- 用于根据末端执行器的位置计算物体上各个关节的角度。它与正向运动学相反,FK 是根据关节角度计算末端执行器的位置
- 问题:解有时候不唯一,有时候无解
优化——数值法
- 指的是使用计算机算法进行迭代计算的方法,例如梯度下降法或牛顿法
- 步骤
- 选择初始配置: 选择一个合理的初始关节角度,例如关节角度为零
- 定义误差度量: 定义一个衡量末端执行器位置和目标位置之间差异的指标,例如两者之间的距离平方
- 计算梯度: 计算误差度量对关节角度的偏导数,即梯度
- 应用梯度下降法: 沿着梯度下降的方向更新关节角度,使误差度量逐渐减小,最终达到最小值
3.绑定 Rigging
- 用于创建高层次的控制器,使动画师能够更快速、更直观地修改角色的姿势、变形和表情等
4.动作捕捉
- 它通过记录真实世界中的表演(例如人执行动作)来获取动画序列。然后,从收集到的数据中提取姿势随时间的变化,并将其应用于动画角色
恐怖谷效应 Uncanny valley
- 是指随着人工智能或机器人外观越来越接近人类,人们对它们的情感反应会经历一个先上升后下降的过程。当外观接近人类但还不够逼真时,人们会感到不适和恐惧,就像掉入了一个“恐怖谷”