Unity和UE4的Material Editor中都有类似VertexOffset的功能, 可以在VertexShader中驱动顶点, 做一些程序控制的顶点动画
用顶点动画的原因: 骨架是共享的, 骨骼动画是共享的等, 同时节省了骨骼数和动画师的工作量
使用cos三角函数+Time是基本的技巧, 配合顶点色控制每个部分的权重
材质参数暴露出来能够使用程序逻辑进行动态控制
顶点色的RGBA通道可以都用上, 进行不同的权重控制, 配合随时间变化的三角函数值, 可以做出蠕动的效果
其实水面的做法跟这个很类似
自从用了Unreal的MaterialEditor, 都懒得直接写Shader了
另外一个应用就是做头发的动画
同样的, 顶点红色通道可以控制移动动的权重
蓝色通道能够控制移动的时间
模型的运动也可以通过顶点色进行控制
甚至是面部的结节形状也可以通过顶点色进行微调
我觉得口型动画也可以这么做
必要时需要外部控制的材质参数进行配合
比如这个摆动的动画
只用顶点色是不够的
配合关键帧参数进行控制
其实除了摆动之外, 还可以实现旋转的效果
一些自转完全可以使用材质来实现, 免去了程序逻辑驱动或骨骼动画
举个例子
最后是用到的工具
时间: 2024-11-13 07:57:30