# HumanBone

> The mapping between a bone in the model and the conceptual bone in the Mecanim human anatomy.

## Definition

* **Type:** Struct
* **Namespace:** [UnityEngine](/engine/6000.7/script-reference/unityengine.md)
* **Assembly:** UnityEngine.AnimationModule

```csharp
public struct HumanBone
```

## Remarks

The names of the Mecanim human bone and the bone in the model are stored along with the limiting muscle values that constrain the bone's rotation during animation.

Additional Resources: [HumanDescription](/engine/6000.7/script-reference/unityengine/humandescription.md), [AvatarBuilder](/engine/6000.7/script-reference/unityengine/avatarbuilder.md)

## Examples

```csharp
using UnityEngine;
using System.Collections.Generic;

public class ExampleClass : MonoBehaviour
{
    void Start()
    {
        Dictionary<string, string> boneName = new System.Collections.Generic.Dictionary<string, string>();
        boneName["Chest"] = "Bip001 Spine2";
        boneName["Head"] = "Bip001 Head";
        boneName["Hips"] = "Bip001 Pelvis";
        boneName["LeftFoot"] = "Bip001 L Foot";
        boneName["LeftHand"] = "Bip001 L Hand";
        boneName["LeftLowerArm"] = "Bip001 L Forearm";
        boneName["LeftLowerLeg"] = "Bip001 L Calf";
        boneName["LeftShoulder"] = "Bip001 L Clavicle";
        boneName["LeftUpperArm"] = "Bip001 L UpperArm";
        boneName["LeftUpperLeg"] = "Bip001 L Thigh";
        boneName["RightFoot"] = "Bip001 R Foot";
        boneName["RightHand"] = "Bip001 R Hand";
        boneName["RightLowerArm"] = "Bip001 R Forearm";
        boneName["RightLowerLeg"] = "Bip001 R Calf";
        boneName["RightShoulder"] = "Bip001 R Clavicle";
        boneName["RightUpperArm"] = "Bip001 R UpperArm";
        boneName["RightUpperLeg"] = "Bip001 R Thigh";
        boneName["Spine"] = "Bip001 Spine1";
        string[] humanName = HumanTrait.BoneName;
        HumanBone[] humanBones = new HumanBone[boneName.Count];
        int j = 0;
        int i = 0;
        while (i < humanName.Length)
        {
            if (boneName.ContainsKey(humanName[i]))
            {
                HumanBone humanBone = new HumanBone();
                humanBone.humanName = humanName[i];
                humanBone.boneName = boneName[humanName[i]];
                humanBone.limit.useDefaultValues = true;
                humanBones[j++] = humanBone;
            }
            i++;
        }
    }
}
```

## Fields

| Value                                                                   | Description                                               |
| ----------------------------------------------------------------------- | --------------------------------------------------------- |
| [limit](/engine/6000.7/script-reference/unityengine/humanbone/limit.md) | The rotation limits that define the muscle for this bone. |

## Properties

| Property                                                                        | Description                                                                    |
| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ |
| [boneName](/engine/6000.7/script-reference/unityengine/humanbone/bonename.md)   | The name of the bone to which the Mecanim human bone is mapped.                |
| [humanName](/engine/6000.7/script-reference/unityengine/humanbone/humanname.md) | The name of the Mecanim human bone to which the bone from the model is mapped. |
