Foot Placement Settings Explained

4 Settings Explained

 

4.1 Foot Placement Behavior Settings

The following settings are exposed on the Foot Placement node by default.

 

Max/Min Hip Multiplier

Description: This will control how much or how little the non-ray tracing elements are shifted vertically depending on the demands of the ray tracing elements. If you increase the max hip multiplier, it will shift the non-ray tracing tasks downwards when the leg needs to stretch to allow the feet to meet their targets.

Default value: float 1.0 


Upper Body Offset

Description: Setting this will apply the input offset to all non ray tracing tasks. 

Default Value: Vector (0,0,0)  

 

Reverse Foot Setup

Description: Enable this for reverse foot behavior. In slope terrain with two tasks per foot, will rotate the heel when the toe is higher than the heel to give a realistic pose. 

Default Value: bool false 


Reverse Foot Factor

Description: Controls how far the heel is rotated when reverse foot behavior is triggered 

Default Value: float 1.0 

 

Floor Contact

Description: This should be driven dynamically and set to true when the character is in the air (jumping) and false when the character is on the ground. 

 

Mesh Offset For “

Description: One of these pins is produced for each ray tracing task. This will vertically offset the task by the input amount 

Default Value: float 0.0


Alpha for “

Description: One of these pins is produced for each ray tracing task. Setting it to zero will cause the generated IK Target for this task to be taken from the task bone location in the input animation. Setting this to 1 will generate the IK Task target to give the foot placement behavior. A value between 0-1 will blend between these two targets.

Task with an alpha value of zero will follow the input animation. Tasks with an alpha of 1 will follow the automatically generated target.

Default Value: float 1.0 

 

4.2 Look at  behavior Settings

The following settings are exposed on the foot placement node by default when there are lookat tasks present in the IKINEMA Rig.

 

Look At Direction

Description: This position target will be used to generate the orientation demand for each look at task included in the IKINEMA Rig. This value can be passed in either world space or component space. By default, the node expects the target to be passed in world space.

Default Value: Vector(0,0,0)

 

Look At Alpha

Description: If the look at alpha is zero, the orientation demand for the look at tasks in the IKINEMA Rig will be taken from the task bone locations in the input animation. If the alpha is set to one, the orientation demand will be generated based on the LookAtDirection setting. A value between 0-1 will be a blend between the task bone location and the generated orientation based on the lookat target.

Default Value: float 0.0


Look At Smoothness

Description: Acts to interpolate the generated orientation demand. Lower values reduces the smoothing effect.

Default Value: float 1.0

 

4.3 Advanced foot placement settings

 

4.3.1 Collision Category: 

The following settings affect the ray casting properties of the ray tracing tasks.

 

Collision Channel 

Description: This controls the collision channel the ray-cast for ray tracing elements takes place in. 

Default Value: WorldStatic 


Global Ray Trace Start Scale

Description:This will scale the distance over which the ray cast takes place in the upwards direction in character space 

Default Value: float 1.0 


Global Ray Trace Finish Scale

Description:This scales the distance over which the ray cast will take place over in the downwards direction in character space 

Default value: float 1.0 


Trace Complex

Description: Enable or disable ray casting over complex geometry 

Default Value: bool false 


4.3.2 End Effector Category:

Hips Transform

Descritption: This should automatically be set to the first bone included in the IKINEMA Rig which in most cases is the hips bone. This should never be the root bone of your character. If this is set to the root bone of your character, ensure that the root bone is removed from the IKINEMA Rig.


Limb Transform

Description: This is the array of all the ray tracing elements. This is automatically populated based on the feet tasks added in the IKINEMA Rig when the node is created. You can add and remove joints as ray tracing elements (as long as the joint has an associated task in the IKINEMA Rig). Adding or removing will create or delete 'Alpha For ""' and 'MeshOffsetFor' pins on the node. 

 

4.3.2.1 Limb Transform Sub Options

The following settings allow you to customize the parameters of a ray tracing task. 


Bone

Description: Select the bone corresponding to an element you wish to ray-trace from (It must have an associated task in the IKINEMA Rig)

 

Shape

Description: Select the geometry used to sweep the world for blocking hits

 

Extents

Description: Configure the dimensions of the chosen ray shape. When coupled with a shape above, can create a 'hit-box' to engulf the mesh of your character local to the bone of interest.

 

Offset

Description: Manually add an offset to the location from which ray tracing takes place.

 

Use FK Orientation

Description: If enabled, the orientation target generated for this ray tracing element will be taken from the orientation of the task bone in the input animation. 

 

Draw Debug

Description: This option is intended for testing in the animation blueprint preview and not in game. Draws the location from which the ray-trace takes place and the shape of the mesh used to sweep the terrain so the user can fine-tune the above settings to the character.

  • Cyan Mesh: This is centred on the location from which ray tracing is taking place from for the corresponding bone.
  • Red Mesh: This is centred on the location at which the ray tracing has found a surface through collision detection. It is for all intents and purposes the position of the 'floor' 

 

 

4.3.3 Offset Category


Reverse Foot Interp Speed

Description: If the reverse foot behavior is enabled, this will control the speed at which the heel is rotated. Lower values decreases the speed of the heel movement when the behavior is triggered.

Default Value: 0.1

 

Roll Limit

Description: For ray tracing elements, controls the maximum roll of the generated IK Target 

Default Value: float 55.0

 

Pitch Limit

Description: For ray tracing elements, controls the maximum pitch of the generated IK Target 

Default Value: float 60.0


4.3.4 Maximum Leg Extension Category

The following settings are used to enable/disable the limit leg extension behaviour and fine tune the behaviour. The limit leg extension behavior will act to prevent a ray tracing element from overstretching the rig. This is done by enabling the behaviour and setting the Max Leg Extension parameter to the desired value. When the ray tracing task pulls further than this threshold, the task target will be clamped to either the Max Leg Extension value set by the user or the task bone location in the input animation depending on the Use FK setting.

 

Limit Leg Extension

Description: Enable to limit the distance a ray tracing element can pull from the task bone location in the input animation.

Default Value: bool false


Max Leg Extension

Description: Set this to impose a user defined limit on the distance a ray tracing element can pull when limit leg extension is enabled.

Default Value: float (automatically set to the length of the leg chain)


Use FK

Description: If Limit Leg Extension is enabled, when a ray tracing task pulls further than the Max Leg Extension threshold, the task target will be fixed to the task bone location in the input animation.

Default Value: bool false


4.3.5 Smoothness Category

The settings in this category control the interpolation of the task target.  

 

Position Blend Speed

Description: Blending parameter on the task target. Reducing decreases the rate of change of the position target of the IK Task 

Default Value: 

 

Rotation Blend Speed

Description: Blending parameter on the task target. Reducing decreases the rate of change of the orientation target of the IK Task 

Default Value: 

 

Maximum Step Change

Description: Controls the maximum displacement a task can experience between frames. If this value is exceeded, the task target will be interpolated  

Default Value: 


4.3.6 Blend Input and Output Animation

The settings in this category allow you to blend between the IK and the FK for the entire pose of the character


Pose Blend Alpha

Description: Blends between the procedurally generated pose and the Input pose to the solver. At a value of 0, the output of the node will be the animation passed in. At a value of 1 the output of the node will the be the procedurally generated pose. 

Default Value: float 1.0


4.3.6 Debug

The following settings control the visualisation of the generated IK Tasks. When enabled, various primitves will be rendered for your character to visualise the important information in regards to the IK Tasks included in your IKINEMA Rig. 


Draw Debug

Description: Enable this to draw the task targets for each task included in the IKINEMA Rig. This is useful for debugging purposes.

  • Red line: The ray cast being performed for a ray tracing task
  • Small red sphere: The ray cast hit location
  • Small blue sphere: The task bone location in the input animation
  • Large Green Sphere: The position demand of the IK Task
  • Coordinate system axis: The orientation demand of the IK Task 
  • Blue line: For a lookat task, this draws a line from the task bone location in the input animation to the look at target.

Default Value: bool false 



 4.3.7 Performance 

The settings in the performance category allow for run time control of the solver performance. The Foot Placement node will work with Unreals LOD system allowing you to tune the solver Max Iterations depending on the LOD level of your character. This is useful when solving for a large number of characters. You can set a LOD level at which the solver Max Iterations should be reduced by half and a LOD level at which the solver Max Iterations should be set to 5.

When these features are enabled, characters close to the camera will solve at a high number of iterations for the best quality solve while characters far away will solve at less to maximise performance.

 

Max Iteration

Description: Decresing this value will increase solver performance but could decrease solver performance

Default Value: int 30. This is the general recommended value for a high quality and performant solve.

 

Half LOD Threshold

Description: At a character LOD level higher than this value, the solver Max Iterations are automatically reduced in half

Default Value: int -1. At -1 this feature is never triggered. If you want to enable this behaviour, set this value to the desired LOD level above which the solver iterations should be halved.

 

LOD Threshold

Description: At a character LOD level higher than this value, the solver max iterations are automatically set to 5

Default Value: int -1. At -1 this feature is never triggered. If you want to enable this behaviour, set this value to the desired LOD level above which the solver iterations should be set to 5.

 

4.7.3 Task Properties 

The task properties category allows you to expose the IKINEMA Rig parameters for specific tasks on the node. This allows you to drive the rig settings at runtime.

Tick the 'Expose Properties Pin' to expose the pin for a selected task on the IKINEMA node.

 

4.7.4 Bone Properties

Allows the user to expose IKINEMA rig properties for a selected bone on the foot placement node. For the selected bone, tick the 'Expose Properties Pin' bool to show the pin on the node. This allows you to drive the bone properties at runtime 

 

4.7.5 Expose Solver Tasks

This category allows you to expose the runtime tasks on the foot placement node. This is useful to override the automatically generated task targets and properties produced by the foot placement node.

The tasks are automatically populated when the node is created. Tick the 'Expose Task on Node' to show the task pin on the footplacement node.

This enables a combination of generic solver and foot placement node functionality.