Your Cart

0 Assets

Your cart is empty

Free tool · Runs in your browser

UEFN VAT Baker

Turn an animated skeletal mesh into a static mesh and three small bone animation textures. A material then plays the animations on the static mesh, which costs far less than a skeletal mesh when you need many of them. Your files are not uploaded anywhere.

Preview

FBX or GLB with bones and animations

Facing and size

Turn 0°

Around the up axis (Y in UEFN, Z in Unreal Engine)

Tilt 0°

Around the side axis (X in UEFN, Y in Unreal Engine)

Roll 0°

Around the forward axis (Z in UEFN, X in Unreal Engine)

%

The rotation and scale are baked into the mesh and the textures. Turn the model until it looks along the blue arrow, and it faces forward in UEFN with no rotation on the prop. Place on grid, in the corner of the preview, moves the pivot to the lowest point of the mesh.

Sample rate

No animation

Read from the animation: every keyed frame becomes one row of the textures. Set SampleRate in your material to the same number.

Textures

Three 16-bit PNG files at their exact size: the position and rotation textures are one pixel per bone wide and one row per frame tall, plus one row for the reference pose. Set them to HDR in UEFN.

Mesh file

Open a mesh to download. Files stay on your computer.

Set it up in UEFN automatically

A small tool with its own window does the import, the settings and the material instances for every download. Get it once, run it in UEFN and pick the .json file from the zip. The material functions are what your VAT material is built from. The steps are further down this page.

How to use it

From an animated character to a static mesh that moves, in four steps.

  1. 1

    Open a skeletal mesh

    Drop an .fbx or .glb file that holds a mesh with bones. Animations in the same file are listed right away. If your animations are in separate files, drop them into the same panel, together with the mesh or afterwards. They do not need a mesh inside: they are bound to the open mesh by bone name.

  2. 2

    Check the preview

    Pick an animation and scrub the timeline. The preview plays the baked textures, so what you see is what the material will show. Turn the model until it looks along the blue arrow, and set the scale if the size in centimetres is off.

  3. 3

    Choose and download

    Tick the animations you want, name them and put them in order. They all go into the same three textures, one after another, at the frame rate the animation was keyed at. The mesh keeps its material slots. Pick FBX or GLB for the mesh, then download the zip.

  4. 4

    Set it up in UEFN

    Unzip the download. In UEFN, run the setup tool from this page, pick the .json file from the download and click Set up in UEFN. It imports the mesh and the textures, applies the settings and creates the material instances with all values filled in. Or do it by hand with the table below. To switch animation, set the start and end frame of the one you want.

Automatic setup in UEFN

A small tool with its own window does the import and all the settings for you. It is one Python file that works for every download from the baker. It runs inside UEFN on your own files, connects to nothing, and looks for the parameter names of Unreal Engine's bone animation material.

gelos_vat_setup.py · Python, plain text, you can read it before running it

VATFunctions.zip · 15 material functions for your VAT material, .uasset files for your project's Content folder

  1. 1

    Turn on Python once

    In UEFN, open the Project Settings and turn on Python Editor Scripting. This is needed once per project.

  2. 2

    Run the tool

    Choose Tools, then Execute Python Script, and pick gelos_vat_setup.py. A small window opens and stays on top of UEFN. You can keep the file anywhere on your computer.

  3. 3

    Pick the .json file

    Click Browse next to Values and pick the .json file from the unzipped download. The mesh and the three textures next to it are filled in, and you can change any of them.

  4. 4

    Choose the material and the folder, and go

    Select your VAT material in the Content Browser and click Use selected. To import somewhere else than the VAT folder of your project, open that folder in the Content Browser and click Use open folder. Then click Set up in UEFN. The list in the window shows what was done and anything left for you. Running it again updates the same assets.

Settings by hand

This is what the setup tool does, in case you prefer to do it yourself. Set the values marked in blue on the imported textures and mesh. The numbers for the material instance come with the download and are shown under the Download button.

Texture, mesh and material settings for bone animation textures
SettingValue
On each of the three textures
Compression SettingsKeeps all 16 bits and reads the pixels as numbers, not colours.HDR (RGBA16F, no sRGB)
Texture GroupUI
Mip Gen SettingsNoMipmaps
FilterEach pixel is one bone or one vertex. Blending neighbours breaks the animation.Nearest
Never StreamOn
On the static mesh
Use Full Precision UVsRequired. UV channel 1 points each vertex at one pixel of the weights texture, and the default half precision can land on the pixel next to it.On
Generate Lightmap UVsOr set its destination to a channel other than 1, so it does not overwrite the UVs that point into the weights texture.Off
Positive and Negative Bounds ExtensionStops the mesh from disappearing when the animation moves outside the box of the static pose.From the values
In the material instance
MinBBox, SizeBBoxFrom the values
NumBonesFrom the values
BoneWeightsRowsPerFrameFrom the values
SampleRateFrom the values
UseUV1True
StartFrame, EndFramePer animation
  • What the three textures hold

    The position and rotation textures have one pixel per bone and one row per frame. The weights texture has, for each vertex, the bones it follows and how strongly. UV channel 1 of the mesh points each vertex at its pixel. Every pixel is written as it is: nothing is resized, filtered or blended, and the PNG files are lossless.

  • Why bones instead of vertices

    A vertex animation texture needs one pixel per vertex per frame and quickly passes the 2048 limit. With bones, the textures are exactly one pixel per bone wide and one row per frame tall: a 30-bone character with five seconds of animation at 24 frames per second fits in 30 × 121.

  • What does not carry over

    Bone textures store position and rotation only. Morph targets, cloth and bones that are scaled during an animation are not baked, and a vertex follows at most four bones. The tool warns when a file scales its bones.

  • The material

    The textures use the layout of Unreal Engine's AnimToTexture plugin in Bone mode. UEFN does not include that plugin's material functions, so the material needs its own copy of the bone animation function built from standard nodes. That copy is the material functions download on this page: unzip it into a folder inside your project's Content folder and use MF_BoneAnimation in your material.

The mesh, the textures and the values are built on your device. Gelos Games is not affiliated with Epic Games.