You guys I know I wont be able to upload a video or meet all red things here, but I provided some pictures. It worked what I wanted to work on, thank you for the oppertunity!

Inspiration

The unity stream showed some vat texture but it was such a poor bad tool.

What it does

TLDR: To animate thousands of objects, or extrem complex animations.

If you want to animate thousands of objects or have some non bone animation like imagine an extreme twist of an object like you want to squeeze hand towel type of animation there are limitation because skinned mesh renderer doesnt allow to be processed on the gpu and is bound to bone animtion.

What is does it that you can put in your animation (with bones or also non like geometry nodes as alembic) and you can set a lot of settings. Its a workstation to "bake" those animations into a texture, saving the delta from the last frame (depens of the setings) in a very compact way, also saving object normals (not tangent). It has many features to make it artist friendly like strip movement. For the cpu it looks like you upload a lot of static meshes that reference texture, so something that doesnt move (no skinned mesh renderer) which is extremly performant because you can have simd and also batch them aggresivly. The animation is then played back via the texture with interpolation, every obejct has its own timers and an utiltiy ai is controlling what they are doing (you can make an animation controller for that)

Okay since its animated in pose on the gpu, its not really moving but you want it to move a bit. Thats where the root motion builder comes in. You can feed it with animations you did. Again bone, or the "csv" for 3d called alembic or presets and it bakes it into 6 optimized lut curves. You can combine presets and other and in later version I want a database for rootmotion so its interchangeable. Another thing you can do is bool-flag some of the curves to activate them, saved in a lower nibble of the whole animation burst struct.

How we built it

I wil built it inside of unity, maybe port it out later. Just little by little, learning about vat baking, about the tradeoffs and making the ultimate tool for it.

Challenges we ran into

Yeah some bakes didnt work at first because of the coordinate system and also you have to integrate into a shader. Thng is that I have many versionsin the shader: Gameobject no Vat, Gameobject Vat, Entitiy no Vat, Entitiy Vat, Entitiy vat fallback Gameobject.

Accomplishments that we're proud of

It works :) its useful, its cool

What we learned

Pretty much how the whole vat texture works and tricks in shader

What's next for VatBaker

If I want to continue that I would port it out of unity, and go all in on it as a Special effect animation middleware that works on all game engines. Would free a lot of animator

Built With

Share this project:

Updates