遊戲內動畫的實現方式一般有這幾種:
- 骨骼動畫
- 頂點動畫
- 材質動畫
- CPU蒙皮動畫
骨骼動畫
骨骼動畫是一種基於骨骼系統的動畫技術,它通過對骨骼進行變換來控制模型的姿態和動作。
在骨骼動畫中,模型通常被分解成多個部分,每個部分都與一個或多個骨骼相連,通過對骨骼進行旋轉、平移、縮放等變換,可以控制模型的姿態和動作。
骨骼動畫的優點是可以實現複雜的動態效果,如人物的行走、奔跑、跳躍等。
遊戲內的樹的飄動,也通過骨骼動畫來實現,一顆樹的骨骼如下:
材質中的蒙皮數量共7個
頂點動畫
頂點動畫是一種基於頂點的動畫技術,它通過對模型的頂點進行變換來實現動態效果。在頂點動畫中,每個頂點都可以被單獨控制,通過對頂點進行平移、旋轉、縮放等變換,可以實現模型的動態效果。頂點動畫的優點是可以實現非常細緻的動態效果,如水面的波動、草叢的搖曳等。
缺點:
頂點動畫需要爲每一幀動畫存儲一組新的頂點運動信息,而骨骼動畫只存儲骨骼的旋轉和平移信息以及頂點附着在骨骼上的信息,這樣可以節省巨大的存儲空間
頂點動畫太消耗內存了,包體也很大
材質動畫
shader來實現,但是美術對這項技術偏弱,所以偏向於使用骨骼動畫來實現
【技術美術隨手記01】-shader頂點動畫相關 - 嗶哩嗶哩 (bilibili.com)
GPU蒙皮動畫
把計算量放在GPU側,對於大量相同模型的情況下性能提升非常明顯。
也是有一些限制才能最大化地合批,使用unity製作的手遊中,已經有大量項目使用上了此技術。