# Rig Requirements

### **MUST Map Rig to VRM Humanoid Bones** <a href="#must-map-rig-to-vrm-humanoid-bones" id="must-map-rig-to-vrm-humanoid-bones"></a>

VRM Humanoid bone mappings allow your avatar to automatically support a growing library of animations, even from avatars that don’t have the same bones as yours!

You may follow the [VRM Humanoid Spec](https://github.com/vrm-c/vrm-specification/blob/master/specification/VRMC_vrm-1.0/humanoid.md) and set up springbones in Unity, or in Blender.

**Notes for Blender:**

* YOU MUST have the [VRM Addon For Blender](https://github.com/saturday06/VRM-Addon-for-Blender/releases) installed to access VRM Humanoid Bone Mappings Panel
* MODEL MUST BE IN T-POSE
  * See this video for how to convert your model to T-Pose in Blender: <https://www.youtube.com/watch?v=ndOe5AAzkAU>
  * If you’re using a **Ready Player Me Avatar** you can append the following PHP to the download URL to get a model in T-Pose and all the ARKit shapes required: <mark style="color:orange;">?morphTargets=mouthSmile,ARKit\&pose=T\&textureAtlas=none\&textureChannels=baseColor,normal,metallicRoughness</mark>\
    \
    [3D Avatars - Ready Player Me – Developer Documentation](https://docs.readyplayer.me/ready-player-me/avatar-api/3d-avatars)
* If you don’t have blender: You can model and rig in any DCC program like Maya, then [import to Unity and hook it up to the VRM feature set](https://vrm.dev/en/univrm1/vrm1_tutorial/first_export_from_fbx/) there using [UniVRM](https://github.com/vrm-c/UniVRM).

**Example of Hallway Standard Male and Female rigs at the links below**

* Female: [Hallway\_Standard\_Rig\_Female.blend](https://drive.google.com/file/d/17bKgGKiBmrddG89q6zWGNryZgik__8r5/view?usp=sharing)
* Male: [Hallway\_Standard\_Rig\_Male.blend](https://drive.google.com/file/d/17aQXSv-zzRQ8TOjFYzcJlE2_jMMqO01Z/view?usp=sharing)

| ![](/files/b5b3ad1673b8e23ab300df44c22d63d4fea866cc) | <p>In example files above, these bones live in the “Deform”, “VRM Twist”, and “VRM</p><p>Corrective” layers Only bones marked “Deform” will be exported by the VRM Addon<br><br><img src="/files/7aD3ng0zmUBjEVL733Rd" alt=""></p> |
| :--------------------------------------------------: | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

* The closer your avatar is to the rig scales above, the better our animations will play back (currently). We are working on solutions to support more avatar shapes and sizes.

### **(Optional) Add Spring Bones** <a href="#optional-add-spring-bones" id="optional-add-spring-bones"></a>

You may follow the [VRM Springbone Spec](https://github.com/vrm-c/vrm-specification/tree/master/specification/VRMC_springBone-1.0) and set up springbones in Unity, or in Blender.

**Notes for Blender:**

* Let us know if you have any issues navigating the springbone panel below, but it should be self explanatory.

| ![](/files/8e9cc6e3396c0807dbb2539d60b559eb74678af9) Inside the “Spring Bone Springs” panel above, you’ll find options to add “Springs” Inside each new “Spring” you can add or remove “Joints” Each Joint has its own physics settings We recommend you preview tweaks to these settings in a VRM app like [VRM Posing Desktop on Steam](https://store.steampowered.com/app/1895630/VRM_Posing_Desktop/) | ![](/files/6d212affbb7926e71c3d15672b276f0cc6a14df2) |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- |

### **(Optional) VRM1 Bone Constraints** <a href="#optional-vrm1-bone-constraints" id="optional-vrm1-bone-constraints"></a>

You may follow the [VRM Node Constraint Spec](https://github.com/vrm-c/vrm-specification/tree/master/specification/VRMC_node_constraint-1.0) and set up advanced bone behaviors in Unity, or in Blender.

**Notes for Blender:**

* There are VERY strict rules to set up VRM1 constraints properly inside blender so they export to your VRM file.
* Rules may change, and are listed in the VRM N-panel, inside the “Node Constraint” section.

| Rotation Constraint                                  |                                                                                                                                                                                                                                                                                                                                                                                                         |
| ---------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ![](/files/94f2bff494f54af0da8aa75fc7962554bd9911ec) | Add Copy Rotation to the bone Must be enabled No “Vertex Group” set in constraint Axis mode is X, Y, **AND** Z No axis can be inverted Mix mode must be set to “Add” Target set to “Local Space” Owner set to “Local Space” NO CIRCULAR DEPENDENCIES You may have multiple constraints on a bone, but only the one at the top of the constraint stack/list will be exported.                            |
| Aim Constraint                                       |                                                                                                                                                                                                                                                                                                                                                                                                         |
| ![](/files/3feaa6aaac80440ae4f26c26963cf425ab801263) | Add Damped Track to the bone Must be enabled Set “Target Bone Head/Tail” to **0.0** You can’t set the “Follow Target Bone” option to a B-Bone NO CIRCULAR DEPENDENCIES You may have multiple constraints on a bone, but only the one at the top of the constraint stack/list will be exported.                                                                                                          |
| Roll Constraint                                      |                                                                                                                                                                                                                                                                                                                                                                                                         |
| ![](/files/44e76c3efdc682e89578af2c681b87dbf2e67ba4) | Add Copy Rotation to the bone Must be enabled No “Vertex Group” set in constraint Axis mode is set to **ONE AXIS ONLY!!!** X, Y, **OR** Z No axis can be inverted Mix mode must be set to “Add” Target set to “Local Space” Owner set to “Local Space” NO CIRCULAR DEPENDENCIES You may have multiple constraints on a bone, but only the one at the top of the constraint stack/list will be exported. |
| How to Know You’ve Setup Correctly                   |                                                                                                                                                                                                                                                                                                                                                                                                         |
| ![](/files/90f69a73abc3d879a01d7dbf26004587f9479b26) | When the VRM N-panel “Node Constraint” section has your constraint listed, your constraint will export and is setup correctly If constraint isn’t listed here, double check your modifier settings                                                                                                                                                                                                      |


---

# 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/rig-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.
