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