游戏内动画的实现方式一般有这几种:
- 骨骼动画
- 顶点动画
- 材质动画
- CPU蒙皮动画
骨骼动画
骨骼动画是一种基于骨骼系统的动画技术,它通过对骨骼进行变换来控制模型的姿态和动作。
在骨骼动画中,模型通常被分解成多个部分,每个部分都与一个或多个骨骼相连,通过对骨骼进行旋转、平移、缩放等变换,可以控制模型的姿态和动作。
骨骼动画的优点是可以实现复杂的动态效果,如人物的行走、奔跑、跳跃等。
游戏内的树的飘动,也通过骨骼动画来实现,一颗树的骨骼如下:
材质中的蒙皮数量共7个
顶点动画
顶点动画是一种基于顶点的动画技术,它通过对模型的顶点进行变换来实现动态效果。在顶点动画中,每个顶点都可以被单独控制,通过对顶点进行平移、旋转、缩放等变换,可以实现模型的动态效果。顶点动画的优点是可以实现非常细致的动态效果,如水面的波动、草丛的摇曳等。
缺点:
顶点动画需要为每一帧动画存储一组新的顶点运动信息,而骨骼动画只存储骨骼的旋转和平移信息以及顶点附着在骨骼上的信息,这样可以节省巨大的存储空间
顶点动画太消耗内存了,包体也很大
材质动画
shader来实现,但是美术对这项技术偏弱,所以偏向于使用骨骼动画来实现
【技术美术随手记01】-shader顶点动画相关 - 哔哩哔哩 (bilibili.com)
GPU蒙皮动画
把计算量放在GPU侧,对于大量相同模型的情况下性能提升非常明显。
也是有一些限制才能最大化地合批,使用unity制作的手游中,已经有大量项目使用上了此技术。