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)
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
Download this zip, (also in Engine_Tools/Unreal5) extract, then drop into the Content of your Unreal project (in system file explorer, not directly into engine UI) Tutorials and best-practices coming soon, getting all of this recorded. But in the meantime, drop these into a project and try it out!
A couple small things to get started before in-depth documentation exists:
Your project MUST have forward rendering enabled 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 (I will be integrating tools to help with this process), this allows soft and hard edges during vertex sampling. This was built in UE5, and is NOT UE4 compatible at the moment.
More efficiency is to come - this works as a baseline, but many improvements can be made via custom vertex factory handling (more similar to Houdini/EmberGen). In the next couple days I will be dropping quick videos on the process at https://www.youtube.com/@LukeStilson
Very interesting addition. Thank you for your work! In one of the comments, the question was asked "Is it possible to make it support EEVEE or Cycles? I want to try it for crowd animation." You answered that this is done by default, but in my case no settings in the shader happened. Can you give more detailed information?
Sorry for the confusion, in Blender itself, the vat preview is automatically generated- but at this time it runs from geometry nodes, not shader. When you create a new vat, a second object appears in scene myObject_vat. This IS reading the vat texture, just utilizing geometry nodes for vertex displacement in the same way a few engine would utilize a vertex shader (check out this automatically created geometry node group on the result '_vat' object for detailed notes and info)
My understanding is that since my last update of this tool, EEVEE now supports vertex displacement- so stay tuned and this will likely be an option in an update.
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.