大家好,我刚刚在Unity资源商店发布了 VATMachine :)
对于不熟悉顶点动画纹理的朋友,VAT是一种将动画网格的最终顶点位置烘焙到纹理中的技术,而不是在运行时使用骨骼来变形网格。
通常,动画角色拥有由骨骼组成的骨架,这些骨骼每帧都需要更新并用于蒙皮网格。
而使用VAT时,动画会预先烘焙好。在运行时,GPU只需从纹理中读取烘焙好的顶点位置,并在着色器中重建动画。
当屏幕上有大量动画对象时,这项技术非常有用,尤其是人群、敌人、生物、背景角色或共享同一套动画的道具。
我在Unity中使用VAT时发现的主要问题是:基本概念虽然简单,但要围绕它构建一个真正可用的角色动画工作流却并不容易。
你需要处理烘焙、纹理布局、着色器、播放、多动画、过渡、参数、LOD、多个网格部件,以及许多通常由骨骼动画自动完成的事情。
这基本上就是我制作 VATMachine 的原因。
它处理了从动画烘焙到生成可直接使用的VAT预制件的完整工作流。
你可以烘焙多个动画、选择半精度或浮点精度、烘焙动画法线和切线、使用多个网格部件、LOD以及GPU实例化。
我还希望VAT角色的行为更像普通的Unity Animator角色,因此VATMachine拥有自己的 动画器图形,包含:
• 动画状态
• 过渡和淡入淡出
• 布尔、浮点和触发器参数
• 过渡条件
• 1D混合树
• 动画事件
我发现很多VAT实现中缺少的一个功能是对通常依赖骨骼的事物的支持。
例如,如果运行时不再存在骨架,你如何将武器附加到角色的手上?
VATMachine为此提供了动画插槽。你可以烘焙所选骨骼的运动,然后在运行时将武器、特效或其他对象附加到这些插槽上。
过渡是另一个我真正想妥善解决的问题。许多基础VAT系统可以播放烘焙好的片段,但如果直接从一段片段切换到另一段,效果会很糟糕,因此VATMachine可以在动画之间淡入淡出,也可以使用混合树。
目标基本上是在保持VAT性能优势的同时,恢复你对Unity Animator所期望的大部分工作流。
显然,VAT并非旨在取代所有场景中的骨骼动画。如果你的角色严重依赖运行时IK、程序化骨骼、重定向或完整布娃娃系统,那么普通骨架仍然更合适。
但对于使用预制动画的大量角色群体,VAT可能非常有用,而且这两个系统可以轻松地在同一个项目中协同使用。
我很想听听大家对这个工作流或VAT本身的看法。
评论 (0)