rdInst Tutorial 11.2 – Creating VATs
Last Updated: 4th March 2026
Tutorial created using rdInst version 1.53
The rdECS system supports Vertex Animated Texture (VAT) StaticMeshes – these meshes use WPO to simulate the bone movement of Skeletal Meshes in a fast and low-memory way.
There are a couple of Plugins/Assets available to help make this as simple as possible:
- AnimToTexture (Built into UE5.1 and above, just enable it) This has the Materials and Functions used to animate the StaticMesh with Material based WPO.
- AnimToTextureHelpers (On Github copy to your Content Folder) This is a Utility Widget that makes setting up the VAT data a lot easier.
If you’re wanting to use the modified Bone material (ML_BoneAnimationBlended) you’ll need that and it’s functions in your project too, and make sure when creating the VATs that it’s using that one.
This tutorial is going to create a VAT Static Mesh from both Manny and Quinn, with some Idle and Chase Animations.
Step 1. Copy the Manny and Quinn Skeletal Meshes and materials ready for VATting
Create a folder to work in and copy the Skeletal Meshes you’re wanting to create VATs from into it. Copy the “EUW_VAT_Utils_544” Editor Utility from the AnimToTextureHelpers into there too.
Now we want to change the reduction settings to keep the number of polygons low, UE5.7 is slightly different than previous versions:
UE 5.6 and below: Open the SKMs in UE and set the Reduction Amount in the SKM Details panel for LOD0 to around 5% (0.05 in the editor) – this reduces the amount of calculations needed in the material for the WPO and normals.

UE 5.7: Open the SKMs – If you see the “Number of LODs” and “Reduction Settings” , simply do it as you would have in 5.6 or below – otherwise add a LOD settings DataAsset with the “Generate Asset” button in the details panel:

Browse to the new DataAsset and open it up – from there you can set the number of LODs and their Reduction settings

Copy the Material Instances that the meshes are using along with the M_Mannequin master material into your folder, suffix them all with “_vat”. Re-parent the Instances to the _vat master material. We will use these materials soon. Add this code to the M_rdMannequin material

Step 2. Set up the details and animations using the Utility Widget and Bake
The next step is to create the StaticMesh and animation textures using the AnimToTextureHelpers Utility Widget.
Right-Click on the “EUW_VAT_UTILS_544” asset and “Run Editor Utility Widget”

Set the “SKM” value in the “Assets” section to the SkeletalMesh, then click the “Create Static Mesh from Selected” option – this will create the SM we’ll use for the VAT at the reduced number of vertices.
Open up the new StaticMesh and change the Materials over to the VAT based ones, created in Step 1.
Now Add the animations you’re wanting to the “Motions->Animations” section of VAT tools (this corresponds to the “Anim Sequences” section in the VAT DataAsset). Add them in the order of Idle Animation/s first, then Chase Animation/s.
Now Click the “Create Textures” button, this will create some blank textures ready to be rendered with the animation bone data. Then add the animations you want in the VAT in the “Motions” section and click the “Create DataAsset” – this DataAsset will contain all the information you need for the VAT and its animation.
You will need to change the SampleRate in your new DataAsset – it defaults to 60, but it should be 30, so open it up and make that change

Then Click “Set Data Params”, then click “BAKE DATA” – after it’s finished, your VAT Tools window should look like this:

After Baking, open all the Material Instances the VAT uses – in the “Layer Parameters” tab along the right hand side of the window you’ll see a “Background” entry – often, the “Layer Asset” it sets is the wrong one – you’ll need to set it to “ML_BoneAnimation” for the default, non-blending VAT animator, or “ML_rdBoneAnimation” for the blending version – then you will need to click “BAKE DATA” again to get the tool to fill in the layer information again (shouldn’t overwrite the Layer Asset value).

Once you’ve done that, if you open “SM_SKM_Manny”, you should see it animating in the StaticMesh Editor window.

Step 3. Copy the Animation Frame numbers from the VAT DA.
The last thing you need to do is set up the Animation Frame Ranges in the Entity Description Asset.
The animation frame counts are stored in the VAT DataAsset (DA_SKM_Manny or DA_SKM_Quinn) after you bake the Animation Textures – you use those values to enter into your rdECS Entity Descriptors.


In the Entity Descriptor assets – Add 2 “Anim Descriptions” – each of these is for the different Anim Types, in this case – there are Idle and Chase Animations.
In each of those sets – set their AnimSetName to the appropriate name, then Add a Frame Description and set the Start and Stop frames to those listed in the VAT DataAsset.
You can have multiple animations in each set – when you do, each entity chooses a random one from the set – this helps to remove repetition in the NPCs movement/animation. In this example though, we only use one.
Think of the texture as containing a raw set of all frames of all animations, so your first anim will start at frame 0 and go to frame x, the next anim will start at x+1 and go to y etc.

Step 4. Repeat for all Entity VATs you want.
That’s it – now just repeat for all your Entity VATs.