All Topics  ▪  IKINEMA RunTime Indie for Unreal® Engine 4

IKINEMA RunTime Indie for Unreal® Engine 4

Foot Placement Node

0 Overview of the Foot Placement Node

The IKINEMA Foot Placement node collects the most commonly sought after behaviors into a single node.

These include:

  • Full body Foot Placement
  • Full body Look At
  • Full body Aiming and Weapon Wielding

1 Anatomy of the Node 

 

Is In Air

Description: This should be procedurally drive depending on the state of the character. If the character is jumping this should be set to true. If the character is on the ground this should be set to false. Setting this to true will unlock the feet from the terrain.

Default Value: bool false

 

Alpha for ""

Description: When the node is created, one of these pins will be generated for each ray tracing element. The alpha value is a blending parameter between the task bone location in the input animatin and the automatically generated task location from the foot placement logic.

Setting this to 0 will lock the ray tracing task to the input animation

Setting this to 1 will lock the ray tracing task to the generated task from the foot placement logic

A value between 0-1 is an interpolation between the two above.

Default Value: float 1.0

 

Hip Multipliers

This pin will accept the output of a "Setup Hip Multiplier Settings" node or it can be split to reveal:

 

Max Hip Multiplier

Description: This will control how much the non ray tracing tasks are offset vertically from the task bone locations in the input animation to allow the ray tracing elements to reach the terrain. For instance, if a leg has to strech to reach its target, increasing this value will cause all the upper body tasks to shift downwards to allow this to happen realistically.

Default Value: 1.0 

 

Min Hip Multiplier 

Description: Description: This will control how much the non ray tracing tasks are offset vertically from the task bone locations in the input animation to allow the ray tracing elements to reach the terrain. For instance, if a leg has to strech upwards to reach its target, increasing this value will cause all the upper body tasks to shift upwardsto allow this to happen realistically.

Default Value: 1.0

 

Look At Settings

This pin will be automatically added to the Foot Placement node if there are Look at tasks included in the IKINEMA Rig. The settings here control the lookat behavior.

This pin will accept the output of a "Setup LookAt Settings Node" or it can be split to expose the following:

 

Look at target

Description: This is the target which will be used to generate the orientation target for each of the lookat tasks included in the IKINEMA Rig. By default this is expected to be a position in world space.

 

Alpha

Description: At a value of 0, the orientation target for the look at tasks will be taken from the task bone orientations in the input animation.

At a value of 1, the orientation target for the look at tasks will be generated based on the look at target passed in to the 'Look At Target' setting.

At a value between 0-1 the generated orientation will be a blend between the two above.

Default Value: float 1.0

 

Reduce Weight

Description: When enabled, if the look at target moves behind the lookat task, the IK Task will return to it's orientation in the input animation. When disabled, the IK Task will always follow the look at target. 

Default Value: bool false

 

2 Details Panel Settings

2.1 Debug Draw

 

 

Draw Ray Trace Debug 

Description: If enabled, visualises the ray cast for each ray tracing task. These are shown as red lines. The impact point is shown as a small yellow sphere

Default value: bool false

 

Draw Task Target Debug

Description: If enabled, visualises the task target for each IK Task. These are shown as large green spheres in the above image.

Default Value: bool false

 

Draw Debug Scale

Description: Scales the task target visualisation when Draw Task Target is enabled

Default Value: float 1.0 

 

2.2 General Settings

 

Upper Body Offset

Description: This will offset all non ray tracing elements by input amount

Default Value: Vector(0,0,0);

 

2.3 Ray Tracing Settings

 

Collision Channel

Description: This is the channel that the ray casting in the foot placement node take place in. Any custom channels will also be shown here.

Default Value: WorldStatic

 

Trace Complex

Description: Enabling this will allow ray casting against complex geometry

Default Value: bool true

 

Ray Tracing Scale

Description: Scales the distance the ray cast takes place over for ray tracing tasks.

Default Value: float 1.0

 

Roll Limit

Description: Set to limit the roll of the orientation target generated for the ray tracing tasks

Default Value: float 55.0

 

Pitch Limit

Description: Set to limit the pitch of the orientation target generated for the ray tracing tasks

Default Value: float 60.0

 

Ray Tracing Element Alpha 

Description: This is the array containing the alpha values for each ray tracing task. By default these are exposed on the node.

 

Ray Tracing Tasks

Description: This is the array of the ray tracing tasks and their properties. This is automatically populated when the node is created from the 'feet tasks' included in the IKINEMA Rig. You can also add and remove them once the node has been created. 

Task Bone Reference

Description: The bone to treat as a ray tracing task (the bone MUST have an associated task in the IKINEMA Rig)

 

Shape

Description: The shape of the geometry that its cast from the task bone location in the input animation

 

Extents:

Description: Specify the dimensions of the chosen shape

 

Collision Shape Offset

Description: Offset the cast geometry from it's default position

 

Use Custom Ray Trace Scale

Description: If Enabled, the distance over which the ray cast occurs is defined by the RayTraceUpScale and RayTraceDownScale

 

Use FK Rotation As Target

Description: If Enabled, the generated orientation demand for this ray tracing task will be taken from the task bone orientation in the input animation.  

 

2.4 Limit Leg Extension

Limitt Leg Extension behavior acts to clamp the target of a ray tracing element if the target is outside a pre-defined offset away from task bone location in the input animation. This is to prevent over stretching and give realistic behavior. 


Limit Leg Extension Mode

Options:

  • Disabled
  • Use FK As Target: When a ray tracing element pulls further than the Max Leg Extension threshold, clamp the target to the input animation
  • Use Maximum Leg Extension: When a ray tracing element pulls further than the max leg extension thresholsh, clamp the target to set value

Maximum Leg Extension

Description: This is the threshold at which the Limit Leg Extension behavior should trigger if it is enabled.  

 

2.5 Foot Stabilization

Foot stabilization combines two behaviours, reverse foot and foot stabilization.

Reverse foot behavior will rotate the heel of the character upwards if the toe is facing up a slope for a realistic pose.

Foot stabilization will keep the toe and heel level when the toe is on a higher step than the heel or vice versa.

 

Foot Stabilization Mode

Options:

  • Enabled: Enabled both reverse foot and foot stabilization behavior
  • Only Enable Reverse Foot: Enable only reverse foot behavior
  • Disabled: Disables both behaviors

 

Reverse Foot Factor

Description: If reverse foot behavior is enabled, controls how much the heel is rotated relative to the toe

Default Value: float 1.0

 

Reverse Foot Smoothness

Description: If reverse foot behavior is enabled, when triggered controls the speed at which the heel is rotated. Reduce for slower rotation.

Default Value: 0.1

 

Foot Stabilization Threshold

Description: If foot stabilization behavior is enabled, controls the threshold in  outside of which the behavior is triggered. A lower value means a more sensitive behavior.

Default Value: 1.0

 

2.6 Aiming

Head Task Bone: 

Description: Select the bone associated with the head task of the character

 

Chest Task Bone:

Description: Select the bone associated with the chest task of the character

 

Handle Hand Task Bone:

Description: Select the bone associated with the gun handle of the character

 

Trigger Hand Task Bone:

Description: Select the bone associated with the gun trigger of the character

 

Aiming Mode:

options:

  • Single Hand: Used for example, when single wielding a pistol
  • Two Hand: Used for example, when wielding a shotgun
  • Dual Wield: Used for example, when wielding a pistol in each hand

 

Enable Separate Look At 

Description: Enable this to drive the aiming and head look at separately

Default Value: bool false

 

Head Look At Target

Description: if Enable Separate Look At is ticked, the input value here will drive the lookat of the head

Default Value: Vector(0,0,0)

 

Override Handle Hand

Description:

Default Value:

 

Trigger To Handle Hand Offset:

Description:

 

2.7 Task Filtering

This node is used to set the smoothing paramters for a task. 

 

Filtering Type

Options:

  • Disabled: No filtering will be applied to the task target
  • Enforce Maximum Velocity: If the difference in the task target and the animation target exceeds the 'Maximum Task Veclotiy' the generated target will be an interpolation between the two based on the Delta Time
  • Blend With Previous Frame: Sets the task target as a blend between the task target generated in the current frame and the task target generated in the last frame
  • Enforce Max Vel And Blend Prev Frame: Applies both the Enforce Maximum Velcotiy and Blend With Previous Frame 
 

Maxium Task Velocity

Description: Only applicable if Enforce Maximum Velocity or EnforceMaxVelAndBlendPrevFrame is enabled as the Filtering Type. This sets the maxium distance between the task bone location in the input animation and the generated task target before the target is interpolated based on the Delta Time setting.

Default Value: float 10.0

 

Rotation Smoothness

Description: Only applicable if BlendWithPreviousFrame or EnforceMaxVelAndBlendPrevFrame is enabled as the filtering type. This is the alpha value used to interpolate between the rotation task target generated in the current frame and the task target generated in the previous frame which is then used as the task target in the current frame. 

Decrease to reduce the amount of smoothing applied to the generated task rotation target. 

Increase to boost the amount of smoothing applied to the generated task rotation target. 

At a value of 0, there is no interpolation. The task target passed to the solver is always the one generated in the current frame

Default Value: float 0.5

 

Position Smoothness

Description: Only applicable if BlendWithPreviousFrame or EnforceMaxVelAndBlendPrevFrame is enabled as the filtering type.

Decrease to reduce the amount of smoothing applied to the generated task position target. 

Increase to boost the amount of smoothing applied to the generated task position target. 

This is the alpha value used to interpolate between the position task target generated in the current frame and the position task target generated in the previous frame. This interpolated value is then used as the task target in the current frame. 

At a value of 0, there is no interpolation. The task target passed to the solver is always the one generated in the current frame

Default Value: float 0.5

 

Delta Time

Description: Used when EnforceMaxVelocity or EnforceMaxVelAndBlendPrevFrame is enabled. This is used as the interpolation factor when the Enforce Max Velocity smoothing is triggered.

Default Value: float 0.016

 

 

2.8 Performance

 

LOD Threshold

Description: If the character LOD level is higher than the value set here, the Max Iterations of the solver will be set at 5

Default Value: int 3

 

LOD Half Threshold

Description: If the character LOD level is higher than the value set here, the Max Iterations of the solver will be reduced by half

Default Value: int 2

 

Max Iteration

Description: The value set here controls the maximum number of iterations performed by the IKINEMA solver during a single frame to generate a new pose. 

Default Value: int 30. This is the recommended value for a typical high quality, performant solve for game scenarios. Reducing this will increase performance but can decrease solve quality. Increasing this will decrease the performance of the solver but increase the quality of the solve.

 

2.9 Expose Tasks 

This category is automatically populated with every non-ray tracing task included in the IKINEMA Rig.

From this category you can tick the 'Expose Task On Node' flag to create a new pin on the Foot Placement Node.

From this node you will be able to drive the task much like the generic solver node.