GDC2016: Animating With Math

Unity和UE4的Material Editor中都有类似VertexOffset的功能, 可以在VertexShader中驱动顶点, 做一些程序控制的顶点动画

用顶点动画的原因: 骨架是共享的, 骨骼动画是共享的等, 同时节省了骨骼数和动画师的工作量

使用cos三角函数+Time是基本的技巧, 配合顶点色控制每个部分的权重
GDC2016: Animating With Math_第1张图片
材质参数暴露出来能够使用程序逻辑进行动态控制

顶点色的RGBA通道可以都用上, 进行不同的权重控制, 配合随时间变化的三角函数值, 可以做出蠕动的效果
GDC2016: Animating With Math_第2张图片
其实水面的做法跟这个很类似
GDC2016: Animating With Math_第3张图片
自从用了Unreal的MaterialEditor, 都懒得直接写Shader了
GDC2016: Animating With Math_第4张图片

另外一个应用就是做头发的动画
GDC2016: Animating With Math_第5张图片
同样的, 顶点红色通道可以控制移动动的权重
GDC2016: Animating With Math_第6张图片
蓝色通道能够控制移动的时间
GDC2016: Animating With Math_第7张图片

模型的运动也可以通过顶点色进行控制

甚至是面部的结节形状也可以通过顶点色进行微调

我觉得口型动画也可以这么做
GDC2016: Animating With Math_第8张图片

必要时需要外部控制的材质参数进行配合

GDC2016: Animating With Math_第9张图片
比如这个摆动的动画

GDC2016: Animating With Math_第10张图片
只用顶点色是不够的

配合关键帧参数进行控制
GDC2016: Animating With Math_第11张图片

其实除了摆动之外, 还可以实现旋转的效果
GDC2016: Animating With Math_第12张图片
一些自转完全可以使用材质来实现, 免去了程序逻辑驱动或骨骼动画

举个例子
GDC2016: Animating With Math_第13张图片

最后是用到的工具
GDC2016: Animating With Math_第14张图片

你可能感兴趣的:(animation,GDC)