All Topics  ▪  IKINEMA RunTime Indie for Unreal® Engine 4

IKINEMA RunTime Indie for Unreal® Engine 4

Generic Solver and Supporting Nodes

0 Generic Solver Node Overview

The generic solver exposes all the tasks you have setup in the IKINEMA rig allowing you to drive them at runtime. 

The generic solver for a typical biped looks as follows:

 

In this example we are using a typical full body IKINEMA Rig. A pin for each task has been exposed on the node.

1 Details Panel Node Settings

1.1 General Settings

 


Use World Space Targets

Description: This controls which space the solver node expects the targets to be passed in. By default it is set to true which means the task targets should be passed in world space. If this is set to false, the targets should be passed in solver space. Solver space is the coordinate system of the parent of the first bone included in the IKINEMA Rig.

 

1.2 Draw Debug

The draw debug settings allow for visualising the task targets as the solver sees them at each frame. This is useful for debugging if the solve looks incorrect.


Draw Task Target Debug

Description: Enabling this will visualize spheres at the task target location in the game world

Default Value: bool true

 

Draw Debug Scale

Description: This will scale the visualised spheres to make them bigger or smaller

Default Value: float 1.0

 

1.3 Performance

These settings control the performance of the IKINEMA Solver. The IKINEMA solver is an iterative process and the Max Iterations the solver is allowed each frame plays a big part in the performance of the node. 

The node makes use of Unreal Engines LOD System to automatically set the Max Iterations of the solver based on the characters LOD level. This allows for solving for a large number of characters at the same time.

The settings are as follows.

 

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 Driving The Tasks

2.1 Standard Tasks

To drive a standard task you must pass in the output from a 'Setup IKINEMA Task' node. 

 

 

Target

Description: This is the position and orientation target for the IK Task. By default this target is expected in world space. The solver will act to generate a full body pose to allow the IK Tasks to reach their IK Targets.  

 

Position Alpha

Description: If you set Position Alpha 0, the position of the IK Task will follow the input animation.

If you set Position Alpha to 1, the position of the IK Task will follow the translation part of the user supplied Target

lIf you set the Position Alpha to a value between 0-1, the position target of the IK Task will be a blend between the task bone location in the input animation and the position part of the user supplied Target.

 

Rotation Alpha

Description: If you set Rotation Alpha 0, the rotation demand of the IK Task will follow the input animation.

If you set Rotation Alpha to 1, the rotation demand of the IK Task will follow the translation part of the user supplied Target

If you set the Rotation Alpha to a value between 0-1, the position target of the IK Task will be a blend between the task bone rotation in the input animation and the rotation part of the user supplied Target.


Target Type

Options: There are three options to choose from that affect how the task target is processed

  • Blend To Target (default): The Position/Orientation target for this IK Task will be 100% the user supplied Target
  • Blend Animation With Target: Blend towards the target while preserving subtle detail from the animation.
  • Target Is Offset To Animation: The user defined Target is applied as an offset to the task bone location in the input animation

 

Task Filtering Settings

Description: These will apply a smoothing effect to the generated task target. You can split this pin to drive individual paramters or pass in the output from a 'Setup Task Filtering' node. Please see section 3.1 for the anatomy of this node.

 

Override Task Properties

Description: If enabled, this will use the input to the Task Properties pin to modify the IKINEMA Rig settings for this task at runtime. This allows for procedurally modifying the task parameters in the rig at runtime.

 

Task Properties

Description: If Override Task Properties is enabled, this struct will be used to drive the IKINEMA Rig settings for the task at runtime. This pin can be split to expose the individual parametrs or it will accept the output from a Setup IKINEMA Task Properties node. Please see section 3.2 for a description of this node.

 

2.2 Look At Tasks

 Tasks that are enabled as lookat tasks in the IKINEMA rig will be exposed on the generic solver node. These exposed pins will accept the output of a Setup IKINEMA Look at Task node

 

Look at Target

Description: This is the target this task should 'look at'. By default this should be a position in world space.  

Position Alpha

 

Rotation Alpha

Description: If you set Rotation Alpha 0, the rotation demand of the IK Task will follow the input animation.

If you set Rotation Alpha to 1, the rotation demand of the IK Task will follow the translation part of the user supplied Target

If you set the Rotation Alpha to a value between 0-1, the position target of the IK Task will be a blend between the task bone rotation in the input animation and the rotation part of the user supplied Target.

Default Value: float 0.0

 

Reduce Weight

Description: If enabled, when the LookAtTarget moves behind the task bone the look at target will be interpolated from the user defined lookat target to the input animation. While the target is infront of the task bone, it will follow the target as expected.

Enabling this is to prevent the task from following the target outside of reasonable ranges.

Default Value: bool fasle

 

Task Filtering Settings

Description: These will apply a smoothing effect to the generated task target. You can split this pin to drive individual paramters or pass in the output from a 'Setup Task Filtering' node. Please see section 3.1 for the anatomy of this node.

 

Override Task Properties

Description: If enabled, this will use the input to the Task Properties pin to modify the IKINEMA Rig settings for this task at runtime. This allows for procedurally modifying the task parameters in the rig at runtime.

 

Task Properties

Description: If Override Task Properties is enabled, this struct will be used to drive the IKINEMA Rig settings for the task at runtime. This pin can be split to expose the individual parametrs or it will accept the output from a Setup IKINEMA Task Properties node. Please see section 3.2 for a description of this node.

 

3 Supporting Nodes

3.1 Setup Task Filtering Settings Node

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.1 Setup IKINEMA Task Properties