> For the complete documentation index, see [llms.txt](https://docs.convai.com/api-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.convai.com/api-docs/plugins-and-integrations/convai-unity-sdk/embodiment/body-animation.md).

# Body animation

Find guides for giving a Convai character idles, talk motion, walking, and gestures with the code-driven Body Animation module.

Body Animation is the Convai embodiment module that plays a character's idle, talk, locomotion, action, and pointing motion. One component, `ConvaiBodyAnimationController`, builds and runs a layered `PlayableGraph` directly against a Humanoid `Animator` — there is no Animator Controller asset to author. Content comes from a `ConvaiBodyAnimationSet` you assign, and behavior is tuned in a `ConvaiBodyAnimationConfig`.

***

### What body animation gives a character

| Behavior             | What it looks like                                                                                           |
| -------------------- | ------------------------------------------------------------------------------------------------------------ |
| Idle                 | The character shifts between authored idle variants instead of holding one static pose.                      |
| Talk motion          | Upper-body gesture clips play while the character speaks, scaled by live speech energy.                      |
| Locomotion           | NavMesh-synced walking and jogging, with directional starts, stops, and turns when the set authors them.     |
| Actions and gestures | Named clips such as `wave` or `dance`, triggered by Convai actions or by your own code through `PlayAction`. |
| Pointing             | The character raises an arm toward a world position or a moving target and holds it.                         |

Add `ConvaiBodyAnimationController` to a character through **Convai > Embodiment > Body Animation**. The SDK ships a default animation set, so a new character moves without you sourcing any clips first.

***

### No Animator Controller asset

Every other Unity animation workflow you may already know — states, transitions, parameters wired in the Animator window — does not apply here. The controller builds its `PlayableGraph` entirely in code from the `ConvaiBodyAnimationSet` and `ConvaiBodyAnimationConfig` you assign, and rebuilds it when either changes. [How body animation works](/api-docs/plugins-and-integrations/convai-unity-sdk/embodiment/body-animation/how-body-animation-works.md) covers the layer stack this graph runs.

***

### Where to start

{% content-ref url="/pages/maeZ3PL41ne89ucE7uOm" %}
[Body animation quick start](/api-docs/plugins-and-integrations/convai-unity-sdk/embodiment/body-animation/quick-start.md)
{% endcontent-ref %}

***

### Explore body animation

<table data-view="cards"><thead><tr><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>How body animation works</strong><br>The layered graph that plays idle, talk, action, and pointing motion, and how dialogue state drives it.</td><td><a href="/api-docs/plugins-and-integrations/convai-unity-sdk/embodiment/body-animation/how-body-animation-works.md">How body animation works</a></td></tr><tr><td><strong>Body animation quick start</strong><br>Add the component with the shipped animation set and see idle and talk motion in Play mode.</td><td><a href="/api-docs/plugins-and-integrations/convai-unity-sdk/embodiment/body-animation/quick-start.md">Body animation quick start</a></td></tr><tr><td><strong>Build an animation set</strong><br>Assemble your own ConvaiBodyAnimationSet from a folder of clips or field by field.</td><td><a href="/api-docs/plugins-and-integrations/convai-unity-sdk/embodiment/body-animation/build-an-animation-set.md">Build an animation set</a></td></tr><tr><td><strong>Configure locomotion</strong><br>Add ConvaiNavMeshLocomotion, or wire a custom locomotion source, and tune walk and jog speeds.</td><td><a href="/api-docs/plugins-and-integrations/convai-unity-sdk/embodiment/body-animation/configure-locomotion.md">Configure locomotion</a></td></tr><tr><td><strong>Play actions and gestures</strong><br>Trigger named actions, anchored actions, and pointing from your own code.</td><td><a href="/api-docs/plugins-and-integrations/convai-unity-sdk/embodiment/body-animation/play-actions-and-gestures.md">Play actions and gestures</a></td></tr><tr><td><strong>Body animation config reference</strong><br>Every ConvaiBodyAnimationConfig field, grouped by section, with defaults.</td><td><a href="/api-docs/plugins-and-integrations/convai-unity-sdk/embodiment/body-animation/config-reference.md">Body animation config reference</a></td></tr><tr><td><strong>Body animation scripting reference</strong><br>The ConvaiBodyAnimationController public API: methods, handles, and events.</td><td><a href="/api-docs/plugins-and-integrations/convai-unity-sdk/embodiment/body-animation/scripting-reference.md">Body animation scripting reference</a></td></tr><tr><td><strong>Body animation usage examples</strong><br>A guided walk, a gesture on cue, and pointing at a scene object.</td><td><a href="/api-docs/plugins-and-integrations/convai-unity-sdk/embodiment/body-animation/usage-examples.md">Body animation usage examples</a></td></tr><tr><td><strong>Troubleshoot body animation</strong><br>No motion, T-pose, locomotion desync, and how to read the trace log.</td><td><a href="/api-docs/plugins-and-integrations/convai-unity-sdk/embodiment/body-animation/troubleshooting.md">Troubleshoot body animation</a></td></tr></tbody></table>


---

# 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://docs.convai.com/api-docs/plugins-and-integrations/convai-unity-sdk/embodiment/body-animation.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.
