Skip to content

dh.rig

Extension: .dh-rigType ID: dh.rig

A rig definition maps DigitalHeaven standard bone names to model-specific bone names. This lets the system understand your armature regardless of what naming convention the original model uses (Mixamo, Blender, custom, etc.).

PropertyTypeRequiredDescription
$type"dh.rig"noType identifier
namestringnoDisplay name
descriptionstringnoDescription
inheritsstringnoBarcode of the rig to inherit from
bonesobjectyesMaps standard bone names → model bone names
customBonesobjectnoMaps custom (non-standard) bone names → model bone names

The type is inferred from the file extension — $type is not needed in source files. The compiler adds it automatically during builds.

Mapping a Mixamo-rigged model:

humanoid.dh-rig
{
"name": "Mayu Humanoid Rig",
"bones": {
"Hips": "mixamorig:Hips",
"Spine": "mixamorig:Spine",
"Chest": "mixamorig:Spine1",
"UpperChest": "mixamorig:Spine2",
"Neck": "mixamorig:Neck",
"Head": "mixamorig:Head",
"LeftShoulder": "mixamorig:LeftShoulder",
"LeftUpperArm": "mixamorig:LeftArm",
"LeftLowerArm": "mixamorig:LeftForeArm",
"LeftHand": "mixamorig:LeftHand",
"RightShoulder": "mixamorig:RightShoulder",
"RightUpperArm": "mixamorig:RightArm",
"RightLowerArm": "mixamorig:RightForeArm",
"RightHand": "mixamorig:RightHand",
"LeftUpperLeg": "mixamorig:LeftUpLeg",
"LeftLowerLeg": "mixamorig:LeftLeg",
"LeftFoot": "mixamorig:LeftFoot",
"LeftToes": "mixamorig:LeftToeBase",
"RightUpperLeg": "mixamorig:RightUpLeg",
"RightLowerLeg": "mixamorig:RightLeg",
"RightFoot": "mixamorig:RightFoot",
"RightToes": "mixamorig:RightToeBase"
},
"customBones": {
"Tail1": "mixamorig:Tail.001",
"Tail2": "mixamorig:Tail.002",
"EarL": "mixamorig:EarL",
"EarR": "mixamorig:EarR"
}
}

You only need to map bones that exist in your model. Missing optional bones are simply skipped.

DigitalHeaven defines 56 standard bones organized into groups. 17 are required for a valid humanoid rig — the rest are optional.

BoneRequired
Root
Hipsyes
Spineyes
Chestyes
UpperChest
Neckyes
Headyes
BoneRequired
LeftEye
RightEye
Jaw
BoneRequired
LeftShoulder
LeftUpperArmyes
LeftLowerArmyes
LeftHandyes
BoneRequired
RightShoulder
RightUpperArmyes
RightLowerArmyes
RightHandyes
BoneRequired
LeftThumbMetacarpal
LeftThumbProximal
LeftThumbDistal
LeftIndexProximal
LeftIndexIntermediate
LeftIndexDistal
LeftMiddleProximal
LeftMiddleIntermediate
LeftMiddleDistal
LeftRingProximal
LeftRingIntermediate
LeftRingDistal
LeftLittleProximal
LeftLittleIntermediate
LeftLittleDistal
BoneRequired
RightThumbMetacarpal
RightThumbProximal
RightThumbDistal
RightIndexProximal
RightIndexIntermediate
RightIndexDistal
RightMiddleProximal
RightMiddleIntermediate
RightMiddleDistal
RightRingProximal
RightRingIntermediate
RightRingDistal
RightLittleProximal
RightLittleIntermediate
RightLittleDistal
BoneRequired
LeftUpperLegyes
LeftLowerLegyes
LeftFootyes
LeftToes
BoneRequired
RightUpperLegyes
RightLowerLegyes
RightFootyes
RightToes

17 required bones: Hips, Spine, Chest, Neck, Head, LeftUpperArm, LeftLowerArm, LeftHand, RightUpperArm, RightLowerArm, RightHand, LeftUpperLeg, LeftLowerLeg, LeftFoot, RightUpperLeg, RightLowerLeg, RightFoot

39 optional bones: Everything else — Root, UpperChest, face bones, shoulders, fingers, toes.

The customBones property handles bones that aren’t part of the humanoid standard — tails, ears, wings, extra joints, whatever your model needs.

{
"customBones": {
"Tail1": "Armature_Tail.001",
"Tail2": "Armature_Tail.002",
"WingL": "Armature_Wing.L",
"WingR": "Armature_Wing.R"
}
}

Custom bone names are freeform — use whatever makes sense for your model. They’re used for armature linking and platform-specific features.

Set a bone to null to explicitly mark it as unmapped (useful when inheriting from a rig and you need to remove a mapping):

humanoid.dh-rig
{
"inherits": "base:rigs/humanoid.dh-rig",
"bones": {
"Jaw": null
}
}

DigitalHeaven bone names are automatically mapped to Unity’s HumanBone names at runtime. You don’t need to think about Unity naming — just use the standard names above and the runtime handles the translation.

The runtime component (DigitalHeavenRig) can:

  • Create a Unity Avatar from the bone mappings
  • Set up an Animator with the generated avatar
  • Build a HumanDescription for humanoid configuration

All 56 standard bones (except Root) have direct Unity equivalents.