VAT (Vertex Animation Texture) is a way to store animation by encoding vertex delta per frame as pixel value in a texture. This is the Mono version of @maxartz15 Vertex Animation repo. It has only one dependency: URP 8.31
A vertex animation baking tool, shaders, and animation system for Unity DOTS/ECS.
Render tens of thousands of models at the same time each with its own animation state.
- Vertex animation model baker
- Multiple animations (stored in one Texture2DArray)
- LOD generation
- Prefab generation
- Animation book generation
- DOTS animation system
- Simple API
- Animation library and books
- Shaders
- Lit vertex animation shader
- Interpolation
- Normal encoding and decoding
- Shader graph support
- Animation blending
Artist friendly GUI for converting models.
Sample code to play an animation.
protected override void OnUpdate()
{
float deltaTime = UnityEngine.Time.deltaTime;
Entities.ForEach((Entity entity, ref VA_AnimatorComponent ac) =>
{
// Get the animation lib data.
ref VA_AnimationLibraryData animationsRef = ref ac.animationLibrary.Value;
// Set the animation index on the AnimatorComponent to play this animation.
ac.animationIndex = VA_AnimationLibraryUtils.GetAnimation(ref animationsRef, animationName);
// 'Play' the actual animation.
ac.animationTime += deltaTime * animationsRef.animations[ac.animationIndex].frameTime;
}).ScheduleParallel();
}
Lit example shader (build in shader graph).
Full shader graph support.
- Example 1: Mainly used for testing.
- Example 2: Contains an animation system that shows how you could setup animated characters and a spawning system to test performance.
- Example 3: MonoBehaviour example for if you are not using DOTS.
Overall package is licensed under MIT, unless otherwise noted in the 3rd party licenses file and/or source code.