OpenVAT is a Blender add-on that encodes Vertex Animation Textures (VATs) directly from animated geometry. Designed for real-time engine export (Unity, Unreal, Godot), it supports:
Curious to know more about VATS in general and this add-on was created? Check out my overview video: https://www.youtube.com/watch?v=eTBuDbZxwFg
For more information and engine integrations, check out the OpenVAT playlist - with videos from me and other creators utilizing the tool: https://youtube.com/playlist?list=PLxoaj1mvYohtaPyN0qmhTVHZJqLh8VTlt&si=sqy2aLo2mXc8-20J
Get the git: https://github.com/sharpen3d/openvat OpenVAT targets technical artists, shader developers, and studios aiming to bridge Blender simulations, procedural animation, or geometry nodes with performant in-engine playback.
Active Object
or Collection (combined)
OpenVAT Standard
or Custom
Start Frame
, Current Frame
, or Selected Object
Given target MyObject
, results are stored like:
/MyExportDir/
└── MyObject_vat/
├── MyObject.png ← position+optional normal data
├── MyObject-vnrm.png ← (if separate normals)
├── MyObject-remap_info.json← min/max metadata
└── MyObject.fbx/.glb/... ← encoded proxy mesh
Immediately after VAT creation, a new object will be added to the scene as a copy of the proxy object with all modifiers stripped and the decoder modifier added. This will be added in the exact location as the active_object and is unselected by default. Hide or move the original and scrub the timeline or play the scene to see the vertex-encoded animation play.
-Z Forward, Y Up
** Using tangent-space normal maps on VAT-animated meshes can be tricky. In most cases, it is recommended to use an object-space baked normal map for surface detail, and comine this with the animated VAT normal for proper surface lighting during deformation. This requires alteration to the default provided shaders.
Engine integrations are meant as example cases and templates, and may require modification for production use cases - feel free to reach out with integration questions and recommendations.
*forward rendering only, I am working on a custom vertex factory for a modern approach to handling VATs in Unreal, along with specific VAT creation options to better utilize VAT in Niagara systems. Currently OpenVAT works in Unreal 5 without forward rendering enabled, however this can lead to undesired lighting issues on the VAT when using lit materials.
Watch the walkthrough: https://www.youtube.com/watch?v=T1KVvUIduGI
-Download the zip from Engine_Tools/Unreal5 extract, then drop into the Content of your Unreal project (in system file explorer, not directly into engine UI)
-When you import your own vertex animation texture, make sure it's compression is set to RGB16
-Split your mesh on any hard edges before baking (ensure soft/hard edges are marked, and use automatic edge-splitting for best results), this allows soft and hard edges during vertex sampling.
-This was built in UE5, and is NOT UE4 compatible at the moment. The process is viable for UE4, but setup differs. Please reach out if UE4 integration is needed.
-Check the Github OpenVAT-Engine_Tools folder for Godot starter content. This is not integrated with a specific importer, but just requires manual entry of min/max values (similar to Unreal).
** EffectHouse
- As an integration test, I have created a TikTok EffectHouse compatible shader example, which can also be found in OpenVAT-Engine_Tools
Release Date: 2025-04-29
Minimum Blender Version: 4.2.0
EXR Export Option Export as RGB(half) EXR in addition to the existing PNG option
RGB (no alpha) Default Export Previously, VATs exported with blank Alpha channel, now all exports strip the Alpha channel for better (RGB) formatting.
Custom Frame Range Encoding
Export VATs with precise control over the frame range to encode.
Deformation Basis Options
Choose deformation basis from Start Frame, Current Frame, or a Custom Proxy object.
GLTF Export Support Export model by default as GLTF or GLB (for Godot) or choose to not automatically export a model - handle this yourself after creating the VAT.
Attribute Stripping Often after creating a VAT, there is no use for vertex data like vertex groups and colors - an option has been added to strip this data from the mesh result, as to not carry unnecessary data.
Transform Space Control
Select whether to bake object space or world space deformation into the VAT.
Target 'Collection Combined' Mode
Export a combined mesh from all objects in a collection into a single VAT.
Normal-Safe Edge Splitting (Optional)
Automatically splits sharp edges for safe per-vertex normal capture without modifying the original mesh.
This extension requests the following permission:
Import/export VAT data from/to disk (in a location you specify)
Thank you for the kind words, already planning some stability and flexibility updates for the next update - feel free to reach out if you see any lacking features!
IDK anything about what kinda work goes on behind the scenes of this, but it works and works well and without it my blender-unity pipeline for VAT would be impossible. I thank you for this. I must add tho, often I have to sort of "cheat" it to get it to make the damn texture. For no reason it refuses to do it with neither of the normals options checked, then another time it does it first try, then another time it doesnt work with the cleanup option checked, and yet another it does etc. I would REALLY like to be able to see what the hell its actually "thinking" and what exactly it does and how to stop it. For example it keeps outputting "vat.001" when the folder is emptied etc ect. Its very useful and mildly to medium frustrating. Please try and perfect it if you can.
Hotfix for overwrite handling (.001 folder creation on repeated encoding) available in 1.0.3a (preview update patch on GitHub)
Thank you for the review, next version should have a little more stability. It may help to purge all orphaned data before running the encoding process- your comment about ‘.001’ is kinda hinting this to me. Here’s a video explaining more of what is going on in the background - Baking Complex Vertex Animation For Games (OpenVAT for Blender Overview) https://youtu.be/eTBuDbZxwFg
Awesome addon, although I hoped it would work for Unreal, but I couldn't get it to work
Check out the current process for OpenVAT to UE5 here:
Blender to Unreal VAT Pipeline – Real-Time Mesh Animation with OpenVAT https://youtu.be/T1KVvUIduGI
sharpen3d has done an incredible job especially with this new version. It's intuitive to use, makes efficient use of texture space while keeping to power of 2 texture sizes, and is actively developed.
if you need easy vertex animation textures, look no further