Foot and Hand Contact Properties
The character properties listed on this page configure the way the HumanIK floor contact engine controls your character’s feet and hands. For general information
about foot and hand contact, see Foot and Hand Contact.
Enable foot and hand contact
The following properties enable foot and hand contact for your character.
HIKFootFloorContactId
Enables or disables foot contact.
| mode type:
|
HIKPropertyOffOn
|
| accepted modes:
|
0: Disables foot contact.
1: Enables foot contact.
|
| default mode:
|
0 (off)
|
HIKHandFloorContactId
Enables or disables hand contact.
| mode type:
|
HIKPropertyOffOn
|
| accepted modes:
|
0: Disables hand contact.
1: Enables hand contact.
|
| default mode:
|
0 (off)
|
Foot and hand contact types
The following properties determine the floor contact types used for your character’s
feet and hands.
HIKFootContactTypeId
Sets the floor contact type used for your character’s feet. For details on the contact
types available, see Contact Types.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
enumeration
|
| accepted values:
|
0: Normal contact type
1: Ankle contact type
2: Toe Base contact type
3: Hoof contact type
|
| default value:
|
0
|
HIKHandContactTypeId
Sets the floor contact type used for your character’s hands. For details on the contact
types available, see Contact Types.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
enumeration
|
| accepted values:
|
0: Normal contact type
1: Wrist contact type
2: Finger Base contact type
3: Hoof contact type
|
| default value:
|
0
|
Foot and hand sizes
The following properties determine the extents of your character’s feet and hands.
Note that HumanIK interprets these properties differently depending on the contact type currently in
use. For details, see Contact Types.
HIKFootBottomToAnkleId
Determines the distance from the reference joint used to define your character’s foot
to the bottom of the foot.
For details on the way this property is used with different contact types, see Contact Types.
The inverse kinematics solver takes this value into account only when foot contact
is enabled for your character.
The retargeting solver always reads this value from the HIKPropertySetState you supply for your source character to determine the height of the source character’s
ankles. This is the only property you need to specify in your source character’s HIKPropertySetState. See Retargeting Solving.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
world units
|
| accepted values:
|
Any positive value between 0 and 10000.0
|
| default value:
|
0.0
|
HIKFootBackToAnkleId
Determines the distance from the reference joint used to define your character’s foot
to the bottom of the foot.
For details on the way this property is used with different contact types, see Contact Types.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
world units
|
| accepted values:
|
Any positive value between 0 and 10000.0
|
| default value:
|
4.50
|
HIKFootMiddleToAnkleId
Determines the distance from the reference joint used to define your character’s foot
to the middle of the foot, at the base of the toes.
For details on the way this property is used with different contact types, see Contact Types.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
world units
|
| accepted values:
|
Any positive value between 0 and 10000.0
|
| default value:
|
13.0
|
HIKFootFrontToMiddleId
Determines the distance from the front of your character’s foot, at the tip of the
toes, to the middle of the foot, at the base of the toes.
For details on the way this property is used with different contact types, see Contact Types.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
world units
|
| accepted values:
|
Any positive value between 0 and 10000.0
|
| default value:
|
7.0
|
HIKFootInToAnkleId
Determines the distance from the reference joint used to define your character’s foot
to the inside of the foot (i.e. the side with the big toe).
For details on the way this property is used with different contact types, see Contact Types.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
world units
|
| accepted values:
|
Any positive value between 0 and 10000.0
|
| default value:
|
5.0
|
HIKFootOutToAnkleId
Determines the distance from the reference joint used to define your character’s foot
to the outside of the foot (i.e. the side with the pinky toe).
For details on the way this property is used with different contact types, see Contact Types.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
world units
|
| accepted values:
|
Any positive value between 0 and 10000.0
|
| default value:
|
5.0
|
HIKHandBottomToWristId
Determines the distance from the reference joint used to define your character’s hand
to the bottom of the hand.
For details on the way this property is used with different contact types, see Contact Types.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
world units
|
| accepted values:
|
Any positive value between 0 and 10000.0
|
| default value:
|
0.0
|
HIKHandBackToWristId
Determines the distance from the reference joint used to define your character’s hand
to the bottom of the hand.
For details on the way this property is used with different contact types, see Contact Types.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
world units
|
| accepted values:
|
Any positive value between 0 and 10000.0
|
| default value:
|
4.5
|
HIKHandMiddleToWristId
Determines the distance from the reference joint used to define your character’s hand
to the middle of the hand, at the base of the fingers.
For details on the way this property is used with different contact types, see Contact Types.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
world units
|
| accepted values:
|
Any positive value between 0 and 10000.0
|
| default value:
|
13.0
|
HIKHandFrontToMiddleId
Determines the distance from the front of your character’s hand, at the fingertips,
to the middle of the hand, at the base of the fingers.
For details on the way this property is used with different contact types, see Contact Types.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
world units
|
| accepted values:
|
Any positive value between 0 and 10000.0
|
| default value:
|
7.0
|
HIKHandInToWristId
Determines the distance from the reference joint used to define your character’s hand
to the inside of the hand (i.e. the side with the thumb).
For details on the way this property is used with different contact types, see Contact Types.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
world units
|
| accepted values:
|
Any positive value between 0 and 10000.0
|
| default value:
|
5.0
|
HIKHandOutToWristId
Determines the distance from the reference joint used to define your character’s foot
to the outside of the hand (i.e. the side with the pinky).
For details on the way this property is used with different contact types, see Contact Types.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
world units
|
| accepted values:
|
Any positive value between 0 and 10000.0
|
| default value:
|
5.0
|
Foot and hand pivots
The following properties configure the pivot points used by your character’s feet
and hands.
HIKFootFloorPivotId
Sets the pivot point for the foot.
When HumanIK raises a character’s foot to the surface of the plane, it attempts to keep the position
of the foot as close as possible to the requested position below the surface. The
pivot point is the point on the foot that HumanIK attempts to match most closely.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
enumeration
|
| accepted values:
|
0: Auto. Averages the priority between the ankle and the toes. When the foot makes
contact with the floor, the ankle is translated backwards and the toes are pushed
forwards.
1: Ankle. Gives the ankle priority and uses it as the pivot point. When the toes make
contact with the floor, they are translated forward to keep the ankle’s trajectory
towards the floor constant.
2: Toes. Gives the toes priority and uses them as the pivot point. When the toes make
contact with the floor, the ankle is translated backwards to keep the toes firmly
planted on the floor.
|
| default value:
|
0
|
HIKHandFloorPivotId
Sets the pivot point for the hand.
When HumanIK raises a character’s hand to the surface of the plane, it attempts to keep the position
of the hand as close as possible to the requested position below the surface. The
pivot point is the point on the hand that HumanIK attempts to match most closely.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
enumeration
|
| accepted values:
|
0: Auto. Averages the priority between the wrist and the fingers. When the hand makes
contact with the floor, the wrist is translated backwards and the fingers are pushed
forwards.
1: Wrist. Gives the wrist priority and uses it as the pivot point. When the fingers
make contact with the floor, they are translated forward to keep the wrist’s trajectory
towards the floor constant.
2: Fingers. Gives the fingers priority and uses them as the pivot point. When the fingers
make contact with the floor, the wrist is translated backwards to keep the fingers
firmly planted on the floor.
|
| default value:
|
0
|
Foot and hand stiffness
The following properties configure the stiffness of your character’s limbs when they
contact an oriented plane.
HIKFootContactStiffnessId
Sets the stiffness of the ankle or foot joint. The higher the value of this property,
the less likely the character’s ankle or foot is to bend when it hits the floor, preserving
the angle of the joint. Other joints in your character’s skeleton are therefore more
likely to bend in order to resolve the floor contact.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
percentage
|
| accepted values:
|
0.0 to 1.0.
|
| default value:
|
0.0
|
HIKHandContactStiffnessId
Sets the stiffness of the wrist or hand joint. The higher the value of this property,
the less likely the character’s wrist or hand is to bend when it hits the floor or
a wall, preserving the angle of the joint. Other joints in your character’s skeleton
are therefore more likely to bend in order to resolve the floor contact.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
percentage
|
| accepted values:
|
0.0 to 1.0.
|
| default value:
|
0.0
|
Enable toe and finger contact
The following properties enable toe and finger contact for your character. Note that
in order to use toe or finger contact, your character must already have foot or hand
contact enabled respectively.
HIKFootFingerContactId
Enables or disables toe contact.
| mode type:
|
HIKPropertyOffOn
|
| accepted modes:
|
0: Disables toe contact.
1: Enables toe contact.
|
| default mode:
|
0 (off)
|
HIKHandFingerContactId
Enables or disables finger contact.
| mode type:
|
HIKPropertyOffOn
|
| accepted modes:
|
0: Disables finger contact.
1: Enables finger contact.
|
| default mode:
|
0 (off)
|
Toe and finger contact modes
The following properties determine the floor contact modes used for your character’s
toes and fingers.
HIKFootFingerContactModeId
Sets the floor contact mode used for your character’s toes.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
enumeration
|
| accepted values:
|
0: Sticky. Toes stick to the floor at the spot where they make initial contact.
1: Spread. Once the toes make contact, they begin to spread outwards in an attempt
to avoid displacing the base of the toes. Rotation is applied to the root Node of
each toe.
2: Sticky and Spread. Averages the behavior of the Sticky and Spread approaches.
|
| default value:
|
1
|
HIKHandContactTypeId
Sets the floor contact mode used for your character’s fingers.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
enumeration
|
| accepted values:
|
0: Sticky. Fingertips stick to the floor at the spot where they make initial contact.
1: Spread. Once the fingertips make contact, they begin to spread outwards in an attempt
to avoid displacing the base of the fingers. Rotation is applied to the root Node
of each finger.
2: Sticky and Spread. Averages the behavior of the Sticky and Spread approaches.
|
| default value:
|
1
|
Toe and finger roll stiffness
The following properties configure the stiffness of your character’s toes and fingers
when they contact an oriented plane.
HIKFootFingerContactRollStiffness
Sets the roll stiffness of the toes. The higher the value of this property, the less
likely the character’s toes are to roll when they hit the floor, preserving the configuration
of the toes relative to each other.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
percentage
|
| accepted values:
|
0.0 to 1.0.
|
| default value:
|
0.0
|
HIKHandFingerContactRollStiffness
Sets the roll stiffness of the fingers. The higher the value of this property, the
less likely the character’s fingers are to roll when they hit the floor, preserving
the configuration of the fingers relative to each other.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
percentage
|
| accepted values:
|
0.0 to 1.0.
|
| default value:
|
0.0
|
Toe and fingertip sizes
The following properties configure the size of the marker for each of your character’s
toes and fingertips.
HIKLeftFootThumbTip
Sets the size of the spherical marker that defines the tip of the thumb on your character’s
left foot for the floor contact engine.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
world units
|
| accepted values:
|
Any value between 0 and 1000
|
| default value:
|
0.5
|
HIKLeftFootIndexTip
Sets the size of the spherical marker that defines the tip of the first toe on your
character’s left foot for the floor contact engine.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
world units
|
| accepted values:
|
Any value between 0 and 1000
|
| default value:
|
0.5
|
HIKLeftFootMiddleTip
Sets the size of the spherical marker that defines the tip of the middle toe on your
character’s left foot for the floor contact engine.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
world units
|
| accepted values:
|
Any value between 0 and 1000
|
| default value:
|
0.5
|
HIKLeftFootRingTip
Sets the size of the spherical marker that defines the tip of the fourth toe on your
character’s left foot for the floor contact engine.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
world units
|
| accepted values:
|
Any value between 0 and 1000
|
| default value:
|
0.5
|
HIKLeftFootPinkyTip
Sets the size of the spherical marker that defines the tip of the pinky toe on your
character’s left foot for the floor contact engine.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
world units
|
| accepted values:
|
Any value between 0 and 1000
|
| default value:
|
0.5
|
HIKLeftFootExtraFingerTip
Sets the size of the spherical marker that defines the tip of the extra toe on your
character’s left foot for the floor contact engine.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
world units
|
| accepted values:
|
Any value between 0 and 1000
|
| default value:
|
0.5
|
HIKRightFootThumbTip
Sets the size of the spherical marker that defines the tip of the thumb on your character’s
right foot for the floor contact engine.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
world units
|
| accepted values:
|
Any value between 0 and 1000
|
| default value:
|
0.5
|
HIKRightFootIndexTip
Sets the size of the spherical marker that defines the tip of the first toe on your
character’s right foot for the floor contact engine.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
world units
|
| accepted values:
|
Any value between 0 and 1000
|
| default value:
|
0.5
|
HIKRightFootMiddleTip
Sets the size of the spherical marker that defines the tip of the middle toe on your
character’s right foot for the floor contact engine.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
world units
|
| accepted values:
|
Any value between 0 and 1000
|
| default value:
|
0.5
|
HIKRightFootRingTip
Sets the size of the spherical marker that defines the tip of the fourth toe on your
character’s right foot for the floor contact engine.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
world units
|
| accepted values:
|
Any value between 0 and 1000
|
| default value:
|
0.5
|
HIKRightFootPinkyTip
Sets the size of the spherical marker that defines the tip of the pinky toe on your
character’s right foot for the floor contact engine.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
world units
|
| accepted values:
|
Any value between 0 and 1000
|
| default value:
|
0.5
|
HIKRightFootExtraFingerTip
Sets the size of the spherical marker that defines the tip of the extra toe on your
character’s right foot for the floor contact engine.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
world units
|
| accepted values:
|
Any value between 0 and 1000
|
| default value:
|
0.5
|
HIKLeftHandThumbTip
Sets the size of the spherical marker that defines the tip of your character’s left
thumb for the floor contact engine.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
world units
|
| accepted values:
|
Any value between 0 and 1000
|
| default value:
|
0.5
|
HIKLeftHandIndexTip
Sets the size of the spherical marker that defines the tip of your character’s left
index finger for the floor contact engine.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
world units
|
| accepted values:
|
Any value between 0 and 1000
|
| default value:
|
0.5
|
HIKLeftHandMiddleTip
Sets the size of the spherical marker that defines the tip of your character’s left
middle finger for the floor contact engine.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
world units
|
| accepted values:
|
Any value between 0 and 1000
|
| default value:
|
0.5
|
HIKLeftHandRingTip
Sets the size of the spherical marker that defines the tip of your character’s left
ring finger for the floor contact engine.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
world units
|
| accepted values:
|
Any value between 0 and 1000
|
| default value:
|
0.5
|
HIKLeftHandPinkyTip
Sets the size of the spherical marker that defines the tip of your character’s left
pinky finger for the floor contact engine.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
world units
|
| accepted values:
|
Any value between 0 and 1000
|
| default value:
|
0.5
|
HIKLeftHandExtraFingerTip
Sets the size of the spherical marker that defines the tip of the extra finger on
your character’s left hand for the floor contact engine.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
world units
|
| accepted values:
|
Any value between 0 and 1000
|
| default value:
|
0.5
|
HIKRightHandThumbTip
Sets the size of the spherical marker that defines the tip of your character’s right
thumb for the floor contact engine.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
world units
|
| accepted values:
|
Any value between 0 and 1000
|
| default value:
|
0.5
|
HIKRightHandIndexTip
Sets the size of the spherical marker that defines the tip of your character’s right
index finger for the floor contact engine.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
world units
|
| accepted values:
|
Any value between 0 and 1000
|
| default value:
|
0.5
|
HIKRightHandMiddleTip
Sets the size of the spherical marker that defines the tip of your character’s right
middle finger for the floor contact engine.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
world units
|
| accepted values:
|
Any value between 0 and 1000
|
| default value:
|
0.5
|
HIKRightHandRingTip
Sets the size of the spherical marker that defines the tip of your character’s right
ring finger for the floor contact engine.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
world units
|
| accepted values:
|
Any value between 0 and 1000
|
| default value:
|
0.5
|
HIKRightHandPinkyTip
Sets the size of the spherical marker that defines the tip of your character’s right
pinky finger for the floor contact engine.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
world units
|
| accepted values:
|
Any value between 0 and 1000
|
| default value:
|
0.5
|
HIKRightHandExtraFingerTip
Sets the size of the spherical marker that defines the tip of the extra finger on
your character’s right hand for the floor contact engine.
| mode type:
|
HIKPropertyNoMode
|
| unit type:
|
world units
|
| accepted values:
|
Any value between 0 and 1000
|
| default value:
|
0.5
|