Struct RigMetrics.Metrics

Namespace
CodeSmile.AnyMotion.Core.Rig
/
Assembly
ApiSource.dll

Measured dimensions of one Humanoid rig. All lengths are metres in world scale.

[Serializable]
public struct RigMetrics.Metrics
Expand Details ...

Fields

AnkleHeight

[Tooltip("Ankle above the sole. Foot IK must add this to a ground hit position, because it places the ankle bone and not the sole.")]
public float AnkleHeight

Field Value

float

ArmAsymmetry

[Tooltip("Relative difference between left and right arm chain length. 0 means symmetric.")]
public float ArmAsymmetry

Field Value

float

ArmChainLength

[Tooltip("Upper arm plus lower arm. This is the reach of the arm's two-bone IK chain.")]
public float ArmChainLength

Field Value

float

ArmStretch

public float ArmStretch

Field Value

float

ArmToLegRatio

[Tooltip("Arm chain divided by leg chain. Around 0.8 for a realistic adult human.")]
public float ArmToLegRatio

Field Value

float

FeetSpacing

public float FeetSpacing

Field Value

float

FootLength

[Tooltip("Ankle to toe. Zero when the rig has no Toes bones.")]
public float FootLength

Field Value

float

GroundOffset

[Tooltip("Height of the lowest foot bone relative to the Animator's own origin. Non-zero means the rig's feet do not sit at the Animator origin.")]
public float GroundOffset

Field Value

float

HasChestBone

[Tooltip("True when the Chest bone is mapped. Together with HasUpperChestBone this says how far the head is turned by the chest's rotation, which the head's counter twist has to cancel.")]
public bool HasChestBone

Field Value

bool

HasToeBones

[Tooltip("True when both Toes bones are mapped, which foot roll needs.")]
public bool HasToeBones

Field Value

bool

HasUpperChestBone

[Tooltip("True when the UpperChest bone is mapped. See HasChestBone.")]
public bool HasUpperChestBone

Field Value

bool

HeadBoneHeight

[Tooltip("Head bone above the lowest foot bone.")]
public float HeadBoneHeight

Field Value

float

HeightToHumanScale

[Tooltip("Visual height divided by Animator.humanScale. If this value is nearly the same on every rig, then humanScale alone is enough to normalise by size and most of the measurement above is unnecessary.")]
public float HeightToHumanScale

Field Value

float

HipHeight

[Tooltip("Hips bone above the lowest foot bone.")]
public float HipHeight

Field Value

float

HipJointHeight

[Tooltip("UpperLeg bone above the lowest foot bone. This is where the leg IK chain starts, so foot targets must be within LegChainLength of this height, not of HipHeight.")]
public float HipJointHeight

Field Value

float

HipWidth

[Tooltip("Distance between the two UpperLeg bones. Sets how far apart the feet are placed.")]
public float HipWidth

Field Value

float

HumanScale

[Tooltip("Unity's own scale value for this Avatar, relative to its 1 metre reference human.")]
public float HumanScale

Field Value

float

IsValid

[Tooltip("True when the last measurement succeeded.")]
public bool IsValid

Field Value

bool

LegAsymmetry

[Tooltip("Relative difference between left and right leg chain length. 0 means symmetric.")]
public float LegAsymmetry

Field Value

float

LegChainLength

[Tooltip("Upper leg plus lower leg. This is the reach of the leg's two-bone IK chain.")]
public float LegChainLength

Field Value

float

LegStretch

public float LegStretch

Field Value

float

LegToHeight

[Tooltip("Leg chain divided by visual height. Around 0.5 for a realistic adult human. Lower means short legs, which is typical of a stylised rig.")]
public float LegToHeight

Field Value

float

LowerArmLength

public float LowerArmLength

Field Value

float

LowerLegLength

public float LowerLegLength

Field Value

float

MeasuredInTPose

[Tooltip("True when the values were taken in the reference pose rather than the pose on screen.")]
public bool MeasuredInTPose

Field Value

bool

MeasurementSchemaVersion

[Tooltip("Which set of fields this measurement was written with. Measure always writes RigMetrics.CurrentMeasurementSchemaVersion here. A measurement saved before a field existed carries a lower number, so it is taken again instead of having that missing field read as a measured value.")]
public int MeasurementSchemaVersion

Field Value

int

MissingOptionalBones

[Tooltip("Optional Humanoid bones this Avatar does not map. Their absence limits which drivers can run on this rig.")]
public List<string> MissingOptionalBones

Field Value

List<string>

PoseSource

[Tooltip("Which reference pose the measurement used. 'mesh bindposes' is authoritative asset data. Anything else means the value could have been affected by the rig's current pose.")]
public string PoseSource

Field Value

string

RigName

[Tooltip("Name of the measured Animator's GameObject.")]
public string RigName

Field Value

string

ShoulderJointHeight

[Tooltip("UpperArm bone above the lowest foot bone. Where the arm IK chain starts.")]
public float ShoulderJointHeight

Field Value

float

ShoulderToHipRatio

public float ShoulderToHipRatio

Field Value

float

ShoulderWidth

[Tooltip("Distance between the two UpperArm bones.")]
public float ShoulderWidth

Field Value

float

SpineChainLength

[Tooltip("Summed distance from Hips to Head through whichever spine bones exist.")]
public float SpineChainLength

Field Value

float

SpineToHeight

public float SpineToHeight

Field Value

float

StrideReference

[Tooltip("Length that normalised gait parameters multiply by. A step length of 1.0 means one of these per step. Currently set to LegChainLength.")]
public float StrideReference

Field Value

float

UpperArmLength

public float UpperArmLength

Field Value

float

UpperArmTwist

public float UpperArmTwist

Field Value

float

UpperLegLength

public float UpperLegLength

Field Value

float

UpperLegTwist

public float UpperLegTwist

Field Value

float

UpperToLowerLegRatio

[Tooltip("Upper leg divided by lower leg. Around 1.0 for a realistic adult human.")]
public float UpperToLowerLegRatio

Field Value

float

ValidationMessage

[Tooltip("Reason the measurement failed, or OK.")]
public string ValidationMessage

Field Value

string

VisualHeight

[Tooltip("Top of the visible mesh above the lowest foot bone. Includes hair and headgear. Reliable only while the character is upright.")]
public float VisualHeight

Field Value

float