> For the complete documentation index, see [llms.txt](https://finite-machine-studio.gitbook.io/vatmachine-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://finite-machine-studio.gitbook.io/vatmachine-documentation/vat-baker.md).

# VAT Baker

{% hint style="info" %}
The VAT baking workflow is the same in URP and HDRP. Material generation and the resulting playback shader depend on the installed VATMachine edition.
{% endhint %}

Open it from:

`Tools > VAT Machine > VAT Baker`

<div align="left"><figure><img src="/files/zxHAIPKbOv7eCEFA95Qz" alt="" width="375"><figcaption><p>Tools > VAT Machine > VAT Baker</p></figcaption></figure></div>

The baker samples your animation clips in the editor, stores the vertex motion in texture arrays, and generates the assets needed for GPU playback.

<figure><img src="/files/DQbiXcby7eLXRMJ51NC5" alt=""><figcaption><p>VAT Baker Wizard</p></figcaption></figure>

### Basic Baking Workflow&#xD;

1. Open the VAT Baker.
2. Assign your animated source GameObject.
3. Add the animation clips you want to bake.
4. Choose the bake settings.
5. Optionally add LOD objects.
6. Optionally add socket targets.
7. Select the output folder.
8. Click Bake VAT Animations.
9. Use the generated VATAnimationData assets in a VAT Animator Graph.

### Source Object

The source object is the animated GameObject that VATMachine samples.

<div align="left"><figure><img src="/files/VAjX7mJG3Is3k3bfGs44" alt="" width="375"><figcaption><p>Source Object</p></figcaption></figure></div>

Source/LOD 0 must contain:

* An Animator with Animator Controller
* A SkinnedMeshRenderer
* Materials

Additional LOD objects do not need their own Animator Controller, but they must contain valid renderers.

### Bake Settings

<div align="left"><figure><img src="/files/67J6ikaO2RSGgKGtAS4u" alt="" width="375"><figcaption><p>Bake Settings</p></figcaption></figure></div>

#### Sample Rate

Sample Rate controls how many frames are baked per second.

Higher sample rates give smoother and more accurate animation, but increase texture size and memory usage.

Lower sample rates reduce memory usage, but very fast motion may look less accurate.

Recommended starting values:

* 10 to 15 for distant crowds
* 30 for general characters
* 45 or higher only for fast close-up animation

#### Texture Precision

Texture Precision controls how accurately vertex data is stored.

Half is recommended for most cases. It gives good quality with lower memory usage.

Float gives higher precision, but uses more memory. Use it only if Half causes visible artifacts.

#### Target Profile

Target Profile tells VATMachine what kind of hardware you are baking for.

VAT animations are stored in texture arrays. Large characters, long clips, high sample rates, and multiple LODs can create very large VAT textures. Desktop GPUs can usually handle much larger textures and more texture array slices than mobile devices or low-end hardware.

Because of this, the baker needs to know the limits of your target platform before it creates the textures.

For example:

* A high-end desktop GPU may support very large texture arrays.
* A mobile device may not support the same texture size or number of array slices.
* A lower-end device may fail to load or render VAT textures that were baked for a stronger platform.

The Target Profile helps prevent you from baking animation textures that are too large for the devices you want to support.

Available options include:

* Current Editor GPU
* Desktop High
* Desktop Conservative
* Custom

Use Desktop High for normal desktop testing.

Use Desktop Conservative for safer desktop builds or lower-end PCs.

Use Custom when you know the limits of your target platform and want to set them manually.

If you are targeting mobile or low-end hardware, do not blindly use the largest profile. Choose stricter limits, reduce vertex count, lower sample rate, reduce LODs, or split long animations if the bake becomes too large.

#### Bake Normals and Tangents&#xD;

When enabled, VATMachine also bakes animated normal and tangent data.

This improves lighting quality, especially for close-up characters.

When disabled, only vertex positions are baked. This is cheaper and can be useful for distant crowd characters.

#### Normal and Tangent Storage

When Bake Normals and Tangents is enabled, VATMachine provides two storage options.

**Unified Packed Quaternion:**

This stores the animated basis in a packed format. It is the recommended option for most users because it gives animated normal and tangent playback with less texture memory.

**Separate Normals + Tangent Textures:**

This stores normals and tangents in separate textures. It uses more memory, but keeps the data separated.

**NOTE:**&#x20;Do not mix Packed Quaternion and Separate Normal/Tangent bakes for animations that need to blend together

#### Generate Materials

When enabled, VATMachine creates VAT playback material copies for the generated prefab.

These materials use the VAT Machine URP or HDRP playback shader depending upon the package you imported.

The baker attempts to copy common material properties such as:

* Base map
* Base color
* Metallic
* Smoothness
* Normal map
* Occlusion
* Emission

Generate Materials should usually be enabled for your first bake.

#### Remove Bones

When enabled, VATMachine removes bones from the generated VAT prefab.

This is useful because VAT playback does not need bones for mesh deformation.

If you need attachments, use VAT sockets instead of keeping the full bone hierarchy.

#### Output Folder

The Output Folder is where the generated files will be saved.

The folder must be inside the Unity Assets folder.

Default output folder:

`Assets/VATMachine/Baked`

### Animation Clips

<div align="left"><figure><img src="/files/2pfhvJ1Kwjw5sqLHqgT9" alt="" width="350"><figcaption><p>Animation Clips</p></figcaption></figure></div>

The Animation Clips list contains the clips that will be baked.

You can add clips manually or load clips from the assigned Animator Controller.

VATMachine can bake multiple clips in one bake operation.

Each clip becomes a separate VATAnimationData asset.

For best results, bake animations for the same character using the same source object and same bake setup. This ensures the clips can blend and transition correctly later.

### Target Compatibility

<div align="left"><figure><img src="/files/O4uQOqhX33RxqMArnaDs" alt="" width="366"><figcaption><p>Target Compatibility</p></figcaption></figure></div>

Before baking, VATMachine shows an estimate of the generated texture layout and memory usage.

The estimate includes:

* Combined vertex count
* Largest texture array size
* Texture slice count
* Estimated GPU memory
* Normal/tangent storage mode

Use this section to judge whether your bake settings are too expensive.

If memory usage is too high, reduce:

* Vertex count
* Sample rate
* Texture precision
* Normal/tangent baking
* Number of LODs
* Number or length of clips

### Baking LODs

<div align="left"><figure><img src="/files/uwMSVHrSC61lPjpj77ro" alt="" width="375"><figcaption><p>Levels of Detail</p></figcaption></figure></div>

VATMachine can bake multiple LOD versions of a character.

This is useful for optimized characters, crowds, and distant NPCs.

To bake LODs:

1. Enable Bake Unity LODs.
2. Assign the LOD 0 GameObject.
3. Add additional LOD GameObjects.
4. Make sure every LOD has the correct renderers.
5. Bake normally.

VATMachine packs the data for all LODs into the generated VATAnimationData assets.

The generated VAT prefab can include an LODGroup and LOD target mappings.

**NOTE:** Additional LODs do not require Animator Controller.

### Multi-Part Characters

VATMachine supports characters made from multiple renderers.

For example, a character may have separate renderers for:

* Body
* Arms
* Legs
* Hair
* Armor
* Equipment

Each renderer is baked as a separate part.

At runtime, one VATAnimator drives all parts together so they stay synchronized.

This is important because many real Unity characters are not built as one single mesh.

### Baking Sockets

Refer to [Socket System](/vatmachine-documentation/socket-system.md)

### Starting the Bake

<div align="left"><figure><img src="/files/O4uQOqhX33RxqMArnaDs" alt="" width="366"><figcaption><p>Click on Bake VAT Animations button</p></figcaption></figure></div>

When everything is ready, click **Bake VAT Animations**

After a successful bake, check the output folder.

You should see assets such as:

* ClipName\_VATAnimationData
* ClipName\_PositionVAT
* ClipName\_BasisVAT
* Materials\_VAT folder
* Generated VAT prefab

The exact files depend on your bake settings.

### Common Baker Issues

#### Bake button is disabled

Check that:

* A source object is assigned
* At least one animation clip is assigned
* The output folder is inside Assets

#### No animation clips appear

Make sure LOD 0 has an Animator with an Animator Controller assigned.

#### Generated materials are pink

Make sure you imported the package that matches your render pipeline (URP or HDRP).

#### Mesh does not animate after baking

Check that:

* The generated prefab has a VATAnimator
* A VAT Animator Graph is assigned
* The graph has a valid default state
* The renderer uses a VAT playback material

#### Blend or transition does not work

Make sure the animations were baked from the same source mesh and LOD setup.

#### Socket does not work

Make sure the socket was baked and the runtime socket name matches exactly.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://finite-machine-studio.gitbook.io/vatmachine-documentation/vat-baker.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
