Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础上

  • 1 动画的历史
  • 2 游戏引擎动画的历史
  • 3 challenge in game Animation
    • 1 交互
    • 2 实时
    • 3 真实
  • 4 动画技术的基础
    • 1 2D动画
    • 2 3D动画
      • 1 DoF
      • 2 顶点动画:把每个帧的顶点的位置记下来。
    • 3 蒙皮的实现(重要)
      • 1 如何创建一个mesh
      • 2 不同的空间
      • 3 骨骼的创建
      • 4 Math of 3D rotation
        • 1 2D rotation
        • 2 3D rotation
            • 1 欧拉角:
            • 2 四元数
      • 5 Joint Pose - Orientation
      • 6 Joint Pose - Positon;
      • 7 Joint Pose - Scale
      • 8 Joint Pose - Affine Matrix
      • 9 Joint Pose -Local Space to Model space
      • 10 Joint Pose Interpolation - local space Vs Model space
      • 11 Joint Skinning Matirix
    • 4 动画pipeline
    • 5 动画压缩
      • 1 较少自由度存储
      • 2 关键帧
        • CatMull 曲线
      • 3 浮点数
      • 4 压缩带来的问题
    • 5 动画DDC
  • 5 视频

1 动画的历史

影像在我们的视网膜上残留1/24s。
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第1张图片
西洋镜
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第2张图片
游戏动画的基础都是来源于电影行业。不断逼近于离线 渲染的效果。
zafari是第一部游戏引擎做的动画。

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第3张图片
动画的基础:一帧帧图片做出来的。后面又用捕捉系统来做。
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第4张图片

2 游戏引擎动画的历史

Doom其实是2D做的。是游戏动画的鼻祖。
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第5张图片
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第6张图片

3 challenge in game Animation

1 交互

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第7张图片

2 实时

算不过来
动画数据大
其中动画压缩解决这个问题的。
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第8张图片

3 真实

表情是很难的。
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第9张图片

4 动画技术的基础

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第10张图片

1 2D动画

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第11张图片

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第12张图片

动画序列帧。
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第13张图片
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第14张图片
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第15张图片
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第16张图片
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第17张图片

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第18张图片

2 3D动画

1 DoF

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第19张图片

6DOF: xyz的平移,xyz的旋转
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第20张图片
角色的每个关节做个树状的结构。

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第21张图片

2 顶点动画:把每个帧的顶点的位置记下来。

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第22张图片

顶点动画:
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第23张图片
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第24张图片

刚体骨骼在动的时候,皮也在跟着动。是因为每个顶点是多个骨骼在动。
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第25张图片
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第26张图片

衣料模拟是动画中最难的。
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第27张图片

创造动画:
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第28张图片

3 蒙皮的实现(重要)

1 如何创建一个mesh

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第29张图片

2 不同的空间

world space:
Model space:我自己的坐标系
Local space: 局部坐标系,每一根骨骼的坐标系都不一样,动画系统中的某个坐标系是由其他骨骼的坐标系累算出来的。只有通过local space从根节点累算出他的模型坐标系,才能够算他的世界坐标系,然后才能够进行渲染。

模型坐标系和世界坐标系的关系

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第30张图片

3 骨骼的创建

统一了一个骨骼结构
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第31张图片

存储的是关机的数据

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第32张图片
加了一些很奇怪的骨骼。很多道具都加到了起骨骼上。
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第33张图片

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第34张图片

Root Joint:很重要。表达他的位置。
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第35张图片

Bind point:绑定动画。
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第36张图片

T-pose:
现在用A-pose
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第37张图片
骨骼pose

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第38张图片

4 Math of 3D rotation

1 2D rotation

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第39张图片

2 3D rotation

依次绕着每个轴旋转。

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第40张图片

1 欧拉角:

对物体进行编辑,或者摆放的时候会经常用,但是做动画的时候无法使用欧拉角。
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第41张图片
欧拉角的问题:好处就是符合人的知觉
(1)严格的顺序依赖:顺序不一样,他算出来的结果不一样。
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第42张图片
(2)万向节:万向锁

沿时间轴上偏的方向和它的速度一起积分,可以算出它的轨迹。
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第43张图片
(3)很难插值
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第44张图片
(4)旋转的叠加很难
(5)很难沿着一个固定的轴旋转。
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第45张图片

2 四元数

在三维空间内是work的。
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第46张图片
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第47张图片
四元数的定义如下:
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第48张图片
欧拉角转成四元数的公式如下:

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第49张图片
四元数和矩阵的计算很类似;

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第50张图片

四元数转成旋转矩阵:
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第51张图片

反向旋转公式,旋转叠加,一个向量旋转到另外一个向量的四元数公式如下:
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第52张图片
给定轴的旋转公式如下:
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第53张图片

5 Joint Pose - Orientation

旋转的表达是动画最核心的
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第54张图片

6 Joint Pose - Positon;

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第55张图片

7 Joint Pose - Scale

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第56张图片

8 Joint Pose - Affine Matrix

这个矩阵是非洲重要的。
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第57张图片

9 Joint Pose -Local Space to Model space

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第58张图片

10 Joint Pose Interpolation - local space Vs Model space

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第59张图片

11 Joint Skinning Matirix

动画矩阵。

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第60张图片

有个恒等式:关节点动了,皮肤上的任何点与joint的相对关系没有变化。
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第61张图片

这个公式非常的重要。

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第62张图片
提前把矩阵的逆求好,存储好了。
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第63张图片
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第64张图片

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第65张图片

顶点插值必须在model space:(下面)不要在local space中做。

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第66张图片

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第67张图片

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第68张图片

位移和缩放插值
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第69张图片

旋转插值是很难的,必须用四元数来做。

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第70张图片

最短路径的插值。
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第71张图片
这个的问题是:速度不均匀,先开始快,然后慢,最后又快,动画看着不自然。
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第72张图片

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第73张图片

如果两个夹角很小,就用NLERP,如果两个夹角很大,就用SLERP.

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第74张图片

4 动画pipeline

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第75张图片

5 动画压缩

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第76张图片
数据量很大,

缩放和位移是不变的,大部分是rotation在变化。
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第77张图片

1 较少自由度存储

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第78张图片

2 关键帧

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第79张图片
永远保证你的error小于你的阈值
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第80张图片

CatMull 曲线

非常光滑,一点一点的逼近。
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第81张图片
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第82张图片

3 浮点数

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第83张图片
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第84张图片

一个四元数 6个bite。压缩了60%。
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第85张图片

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第86张图片

4 压缩带来的问题

会让这个压缩错误一直传递到错误很大。
不同 的骨骼对error敏感度是不一样的。
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第87张图片

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第88张图片

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第89张图片
视觉error
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第90张图片
压缩的好坏,是一个重要的研究领域

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第91张图片
误差补偿。

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第92张图片
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第93张图片

数据一定会压缩,但是会有一些视觉error

5 动画DDC

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第94张图片
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第95张图片
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第96张图片

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第97张图片

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第98张图片
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第99张图片
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第100张图片
Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第101张图片

Games104现代游戏引擎入门-lecture8 游戏引擎的动画技术基础_第102张图片

5 视频

https://www.bilibili.com/video/BV1jr4y1t7WR/?spm_id_from=333.788&vd_source=5c9c50b5a07b211beafdf65d7cc7f8c8

你可能感兴趣的:(游戏引擎,动画,游戏引擎,3d)