# TECH ART OUTSOURCE - Vertex Animation ![](Documentation~/Images/ProjectCastle_01.gif) 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. ## Features - 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 ### Model Baker Artist friendly GUI for converting models. ![](Documentation~/Images/VA_ModelBaker_01.png) ### DOTS Animation System Sample code to play an animation. ```C# 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(); } ``` ### Shaders Lit example shader (build in shader graph). Full shader graph support. ![](Documentation~/Images/VA_Shaders_01.png) ## Install [Installing from a Git URL](https://docs.unity3d.com/Manual/upm-ui-giturl.html) [Documentation](Documentation~/VertexAnimation.md) ## Getting Started - 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. ## Extra Info This project is developed by the TAO (Tech Art Outsource) group at BUAS (Breda University of Applied Sciences). ![](Documentation~/Images/BUASLogo.png) There are plenty of improvements to be made, e.g.: - (Optional) per bone vertex animation (instead of per-vertex), this can reduce the texture size needed to store the animations. - Add option to export rotation map separately instead of compressing into the alpha channel, this will make it slower but higher quality. - The LOD generation is very basic and slow, the ability to swap out algorithms would be cool. - Split different modules into separate packages (LOD generation, animation baker + shaders, and the animation system)? - Multi-material and/or sub-meshes support. ## Used By - [Vedelem: The Golden Horde](https://store.steampowered.com/app/1517150/Vedelem_The_Golden_Horde/) - Your project? ## LICENSE Overall package is licensed under [MIT](/LICENSE.md), unless otherwise noted in the [3rd party licenses](/THIRD%20PARTY%20NOTICES.md) file and/or source code.