> For the complete documentation index, see [llms.txt](https://docs.procedural-anatomy.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.procedural-anatomy.com/setup/applying-animation.md).

# Applying Animation

## Overview

We've made strides to implement a system that transfers many types of animation to various sizes of characters.\
\
This is a work in progress since we will value your feedback on this system.

### Node Structure

This part of the toolset is designed to fit into Houdini's existing workflow with KineFX.  It enables users to take multiple characters and multiple animations, transfer the animation to each character with it prepared for simulation and save out files for each character and animation variation.

### TOPs Nodes (List Mode)

The Character and Animation tabs within the *anatomy\_anim\_import* node contain index parameters.  These enable you to choose your current character or animation to view through the toolset.  The default value are local variables **@char\_index** and **@anim\_index** respectively, which are used with TOPs and tell Houdini which character and animation to currently operate on.

You could delete the local variables if you want to control these values yourself but it is not the intended workflow.

### Timeline, Preroll and Your Animation Clip

Procedural Anatomy doesn’t expect a certain frame range but it is setup to use frames as the default way to count for simulations.&#x20;

The alternative, time ($T) should be acceptable but is untested at the moment.  In the future we would like to support both but frames will stay Procedural Anatomy’s preferred frame format for the foreseeable future.

### T-Pose / Rest Frames

These frames fall ahead of the start of your animation and define when the character will be at a rest state or t-pose state depending on the animation. &#x20;

For muscle simulation you always need to start from the rest state and for animation matching, this is also known as *Preroll*.  You can use as many or as few frames as you want, 30 frames at 24fps solves quickly to the first animation frame.  The reason we blend so much is to allow the muscles to loosen and then flex into position before the first few frames of animation.

Typically we start our animations re-mapped to the starting frame to frame 1001.  This is because we can then step backwards 30 frames (to frame 971 as our T-Pose/Rest frame) and not have negative numbers as if we started at frame 1 (to frame -29).  This is important because our system is not designed to support negative frame numbers.

Example:

* T-Pose Frame - 0971
* Animation Start Frame - 1001
* Animation End Frame - 1391 (the duration of the animation + the start frame)

{% hint style="info" %}

### Frame Ranges and Number Padding

We recommend using frame numbers with at least 4 digit number padding.  This means your animation should either have leading zeros or start after frame 1000.
{% endhint %}

### How T-Pose And Rest Pose Work&#x20;

T-Pose and Rest Pose are used at the same time but work in two different ways. &#x20;

* T-Pose is used in matching animation as a rest position or for retargeting animation. &#x20;
* Rest pose in procedural Anatomy is the pose from the Anatomy Output. &#x20;
* We smoothly interpolate from the Rest Pose at the T-Pose Frame (In retrospect this could have been named better) to the matched animation at the Animation Start Frame.

### Scaling Transforms

You want to make sure your transforms in Houdini are not scaled down. We've noticed the FBX tools in Houdini when transferring between Maya/Houdini tend to come in with the skeleton scaled to the correct scale but the transforms come in scaled from CM units to Meter units so they are all multiplied by (0.01).


---

# 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.procedural-anatomy.com/setup/applying-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.
