Unity和UE4的Material Editor中都有類似VertexOffset的功能, 可以在VertexShader中驅動頂點, 做一些程序控制的頂點動畫
用頂點動畫的原因: 骨架是共享的, 骨骼動畫是共享的等, 同時節省了骨骼數和動畫師的工作量
使用cos三角函數+Time是基本的技巧, 配合頂點色控制每個部分的權重
材質參數暴露出來能夠使用程序邏輯進行動態控制
頂點色的RGBA通道可以都用上, 進行不同的權重控制, 配合隨時間變化的三角函數值, 可以做出蠕動的效果
其實水面的做法跟這個很類似
自從用了Unreal的MaterialEditor, 都懶得直接寫Shader了
另外一個應用就是做頭髮的動畫
同樣的, 頂點紅色通道可以控制移動動的權重
藍色通道能夠控制移動的時間
模型的運動也可以通過頂點色進行控制
甚至是面部的結節形狀也可以通過頂點色進行微調
我覺得口型動畫也可以這麼做
必要時需要外部控制的材質參數進行配合
比如這個擺動的動畫
只用頂點色是不夠的
配合關鍵幀參數進行控制
其實除了擺動之外, 還可以實現旋轉的效果
一些自轉完全可以使用材質來實現, 免去了程序邏輯驅動或骨骼動畫
舉個例子
最後是用到的工具