maxartz15 / VertexAnimation

Vertex animation baking tool, shaders and animation system for Unity DOTS/ECS.
MIT License
423 stars 85 forks source link
animation dots ecs gpu-instancing hdrp hybrid-renderer lod shaders unity urp vat vertex-animation

TECH ART OUTSOURCE - Vertex Animation

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

Model Baker

Artist friendly GUI for converting models.

DOTS Animation System

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();
}

Shaders

Lit example shader (build in shader graph).
Full shader graph support.

Install

Installing from a Git URL

Documentation

Getting Started

Extra Info

This project is developed by the TAO (Tech Art Outsource) group at BUAS (Breda University of Applied Sciences).

There are plenty of improvements to be made, e.g.:

Used By

LICENSE

Overall package is licensed under MIT, unless otherwise noted in the 3rd party licenses file and/or source code.