View full documentation at https://github.com/sharpen3d/openvat
Encode vertex animated textures (VATs) from your animated mesh for use in game engines and VFX. Bake any type of vertex animation: animated modifiers, animated geometry nodes, simulations, armature, shape keys, and more.
Exports an optimized VAT, a mesh with VAT-compatible additional UV set, JSON remapping data (to inform engine shaders), and optionally exports relative vertex normals in a secondary (VNRM) texture.
Install the satellite Unity package via Unity's Package manager for openVAT auto-import and setup tools for unity. Add via git with this URL - https://github.com/sharpen3d/openvat-unity.git
-See README in documentation for more details on Engine Usage.
Running the tool automatically sets up the newly-created VAT on an included geometry node method to decode the VAT and provides an example implementation and instant preview to check the quality of the generated information.
Encoding directly from dependency graph vertex information, this vertex encoding method is fast, accurate, and extremely powerful. Geometry node animations and simulations can be captured and exported accurately to game engines. Relative color space in RGB is remapped to MIN-MAX per-channel to represent the best-possible use of spectral information in RGB.
VATs are typically used for CPU optimization in game engines. With careful implementation in engine shaders, effects such as clothing simulations, complex character/creature animation, interactive/animated environmental effects and more can be driven by VAT on GPU.
This extension requests the following permission:
Import/export VAT data from/to disk (in a location you specify)
The vertex animation output using this add-on worked perfectly in Unity! I hope that this add-on will grow into a standard VAT tool between Blender and Unity.
By the way, how can I make this FBX appear as a Particle in a ParticleSystem and animate it? In ShaderGraph, it seems like I could just input the Particle's Lifetime to one of the ports of the openVAT_standard node.
I have not tried this but yes, your theory about particle system should be correct- use your deforming mesh as a mesh particle, then use lifetime (which is 0-1) multiplied by your number of frames, and input to the ‘frame’ input in openVAT_standard. This could be a good case I can add to demos
Thanks for this. More people should know about it. Great alternative to point-cache/alembic for game engines, especially for VR where Unity doesn't support alembic for performance reasons. Currently I'm trying to find a way to produce a result which would encode a simulation with subdivision surface post-simulation.