# Animation Requirements

## Animation File Format <a href="#animation" id="animation"></a>

[VRMA format](https://vrm.dev/en/vrma/) is required by Hallway for character animations.

Animations can be created using external tools such as [Mixamo](https://www.mixamo.com/) to generate FBX files with the desired motion, which can then be [imported into Blender](https://extensions.blender.org/approval-queue/mixamo-rig-for-blender/) or Unity for modification and [exported as VRMA](https://extensions.blender.org/add-ons/vrm/).

> #### Recommended Downloads:
>
> 1. [Mixamo Rig for Blender](https://github.com/tdw46/mixamo_blender4-main/releases/tag/Release)
> 2. [VRM format — Blender Extensions](https://extensions.blender.org/add-ons/vrm/)

For more information on the VRMA format, refer to the [VRM documentation](https://vrm.dev/en/vrma/).

### There are two categories of animations:

{% stepper %}
{% step %}

#### Long Form Body Loops

* These should be at least 5 seconds in duration so there is not an obvious loop point and you can add variety to movement.
* [Example 1](https://hallway.ai/kigu), [Example 2](https://hallway.ai/chip)

**Recommended Animations:**

1. Talking
2. Thinking
3. Listening
   {% endstep %}

{% step %}

#### Short Form Body One-Shot Animations

* These can be any length, but we recommend using these to play gestures (like waves, thumbs up, etc)
* [Here are some good examples](https://drive.google.com/file/d/1LlIFO6H1DVDMlJ14VCSpsESMihp8NsSr/view?usp=drive_web) of what is possible with body one shots!

**Recommended Animations:**

1. Wave hello
2. Thumbs up
3. Dance
4. Stretch
5. Occupation or role related gesture (ex: doctor with a stethoscope)
6. Any iconic poses
   {% endstep %}
   {% endstepper %}

## How to apply VRMA to your Avatar?

1. First, for testing how your VRMA will look live, please contact a Hallway team member for access to our testing site. It allows you to upload and test VRM and VRMA as you iterate.\
   ![image.png](https://mail.google.com/mail/u/0?ui=2\&ik=da9af1eb06\&attid=0.1\&permmsgid=msg-a:r4035942197372325088\&th=19a55bc0541c5322\&view=fimg\&fur=ip\&permmsgid=msg-a:r4035942197372325088\&sz=s0-l75-ft\&attbid=ANGjdJ8Etb1Ou_12sE4iuZQ3RNfNFm_YWUx5oq2z09iwbRnR3mEVDepXgWy2fxg-lATrq9LLYGVYRv4e74OAcaOzprg37R-IHw_YC_3pkACmj4My3p2kh2FE7a-0yJw\&disp=emb\&realattid=ii_mhmg2euv0\&zw)
   1. Alternatively, you can use a free or paid VRM app to test with. We highly recommend [VRM Posing Desktop](https://store.steampowered.com/app/1895630/VRM_Posing_Desktop/) (which can load and test both VRM and VRMA)
2. VRMA only supports humanoid bone rotations (not locations and scales!!) so you'll need to design your animations with this in mind.
   1. The only exception is the hips bone, which does have location keys exported.
3. Once you have confirmed your VRMA plays back as expected in a testing app, share all VRMA files you're happy with and we'll add them to your character!

## FAQ <a href="#faq" id="faq"></a>

{% stepper %}
{% step %}

#### How to match “Inverted” option in VRM Constraint compatible way?

Enable “Axes” under “Viewport Display” in the Armature Properties Panel.

| ![](/files/6fbca734d6c02027306f7afa431c9e5bf4ccf57a) | ![](/files/bbfad6adea7915c176b66d4542ae4a040b3c4719) |
| ---------------------------------------------------- | ---------------------------------------------------- |

Enter edit mode on your armature and scale the LOCAL axes you want to invert by **-1.0**

| <img src="/files/d60SL3KTDT3Nf4kJLokV" alt="" data-size="original"> | Make sure the bone’s “connected” property is set False: ![](/files/a6852386b63af40733d9df3ba28b0723ce07150b) |
| ------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| {% endstep %}                                                       |                                                                                                              |

{% step %}

#### Does VRMA Support Shape Key / Blendshape Animation?

* Yes! (With a catch!)
* All keyframes must be on the "Expression" metadata blocks. Which drive combinations of shape keys and texture transforms using a single slider in the VRM standard.
* In Blender, you can set the keyframes here:

<div data-with-frame="true"><figure><img src="/files/cflwkbJFtLqLhTo3IsWx" alt="" width="252"><figcaption></figcaption></figure></div>

* NOTE: you'll need to "bind" your shape keys to these expression blocks manually!\
  See [Facial Expressions Requirements](/embed/characters-for-embed/3d-custom-avatar-requirements/facial-expressions-requirements.md)
  {% endstep %}
  {% endstepper %}


---

# Agent Instructions: 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:

```
GET https://hallway.gitbook.io/embed/characters-for-embed/3d-custom-avatar-requirements/animation-requirements.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
