Generic solver node and supporting nodes

This node exposes the different tasks in the associated IKinema Rig and allows you control the individual tasks as required for the behaviour you want to implement. Image 1 shows the AnimGraph to achieve an aiming behaviour using the Generic IKinema Solver Node. This uses a single pose input and the solver will generate the aiming pose as required without the need to use Aim Blend Spaces and Additive layered blending.

 

Image 1 AnimGraph with Generic Solver Node

Pins on the Solver Node

Every Solver node has an In Pose and Out Pose pins, these are used to feed the FK animation to the solver, and provide the resulting pose to the next node in the AnimGraph. Furthermore, depending on the number and type of tasks, extra input pins will be present.

 

Image 2 Solver Node Input Pins

This specific Rig contains four different tasks. Two of these tasks are normal Position and Orientation tasks (Right Foot and Left Foot), while the other two tasks are Look-At tasks. These pins have to be connected to either Setup Task Node or Setup IKinema Look-At Node. The settings for these nodes are shown below:

 

Setup IKinema Task Node (Replaces Setup IKinema Task in 1.9.0):

This is the node used to set up the IKinema task with the target transform and the different properties before it is connected to the Solver Node. The node is shown in Image 3a.

Image 3a Setup IKinema Task

This node has the following inputs:

  • Target: The task target transform as calculated in the AnimGraph. Connect this to an identity transform node if you want the task to follow the animation.
  • Position Alpha: A blending factor from 0 to 1. A value of 0 means the task target translation will be taken from the task bone in the input animation, while a value of 1 will be 100% on the Target transform.
  • Rotation Alpha: A blending factor from 0 to 1. A value of 0 means the task target orientation will from the task bone in the input animation, while a value of 1 will be 100% on the Target transform.
  • Target Type: This defines what type of blending to be used. By default, there are three types of blending:
    • Blend to Target: Blend out of the original animation and into the target transform
    • Blend Animation to Target: Blend an offset on top of the animation to reach the final target.
    • Target is Offset Animation: The provided target value is an offset to be added to the current animation transform.

The first two target types accept Solver or Component space transforms. The main difference between the two is the blending method. The third option accepts an offset from the original animation in Solver or Component space transform.

  • In Component Space: Determines if the Target is provided in World or Component space.
  • Enable Translation: Enable the Position constraint on the task.
  • Enable Orientation: Enable the Orientation Constraint on the task.
  • Debug Draw: Add visualization for the task target location as provided to the IKinema solver, after blending.
  • Debug Draw Scale: The size of the debug visualization.

Setup Task Node (Deprecated in IKinema RunTime 1.9.0)

This is the node used to set up the IKinema task with the target transform and the different properties before it is connected to the Solver Node. The node is shown in Image 3.

 

Image 3 Setup Task

This node has the following inputs:

  • Target: The task target transform as calculated in the AnimGraph. Connect this to an identity transform node if you want the task to follow the animation.
  • Alpha: A blending factor from 0 to 1. A value of 0 means the task target will be the FK animation, while a value of 1 will be 100% on the Target transform.
  • Target Type: This defines what type of blending to be used. By default, there are three types of blending:
    • Blend to Target: Blend out of the original animation and into the target transform
    • Blend Animation to Target: Blend an offset on top of the animation to reach the final target.
    • Target is Offset Animation: The provided target value is an offset to be added to the current animation transform.

The first two target types accept Solver or Component space transforms. The main difference between the two is the blending method. The third option accepts an offset from the original animation in Solver or Component space transform.

  • In Component Space: Determines if the Target is provided in Solver or Component space.
  • Enable Translation: Enable the Position constraint on the task.
  • Enable Orientation: Enable the Orientation Constraint on the task.
  • Debug Draw: Add visualization for the task target location as provided to the IKinema solver, after blending.
  • Debug Draw Scale: The size of the debug visualization.

Setup IKinema LookAt Task Node (Replaces Setup LookAt Task Node in RunTime 1.9.0)

This is the node used to set up the IKinema Look-At task with the target Look-At point and the different properties, before it is connected to the Solver Node. The node is shown in Image 4a.

 

Image 4a Setup IKinema Lookat Task

The input pins for this node are described below:

  • Look-At Target: The target point in space to look at.
  • Look-Axis: The Look-At axis for the task. By default, this will use the value set up in during rig creation if it is left with (0,0,0). However, any different value will be used instead of the value stored in the rig.
  • Position Target: If the Look-At has a position task as well, this is the target of the position task.
  • Position Alpha: The blending factor for the task Translation value
  • Rotation Alpha: The blending factor for the task Orientation value
  • Target Type: similar to the Target Type of the Setup Task Node.
  • In Component Space: Determine the space of the provided targets. This can be either World or Component space.
  • Reduce Weight: If enable the rotation task weight is reduced when the Look-At target is more than 90 degrees from the forward direction of the character. The weight reaches zero when the target is exactly behind the character.
  • Enable Translation: Enable the position constraint of the task.
  • Enable Orientation: Enable the rotation constraint of the task.
  • Debug Draw: Add visualization for the task target location as provided to the IKinema solver, after blending.
  • Debug Draw Scale: The size of the debug visualization.

Setup Look-At Task Node (Deprecated in IKinema Runtime 1.9.0)

This is the node used to set up the IKinema Look-At task with the target Look-At point and the different properties, before it is connected to the Solver Node. The node is shown in Image 4.

 

Image 4 Setup Look At Task

The input pins for this node are described below:

  • Look-At Target: The target point in space to look at.
  • Look-Axis: The Look-At axis for the task. By default, this will use the value setup in during rig creation if it is left with (0,0,0). However, any different value will be used instead of the value stored in the rig.
  • Position Target: If the Look-At has a position task as well, this is the target of the position task.
  • Alpha: The blending factor for the task value
  • Target Type: similar to the Target Type of the Setup Task Node.
  • In Component Space: Determine the space of the provided targets. This can be either Solver or Component space.
  • Reduce Weight: If enable the rotation task weight is reduced when the Look-At target is more than 90 degrees from the forward direction of the character. The weight reaches zero when the target is exactly behind the character.
  • Enable Translation: Enable the position constraint of the task.
  • Enable Orientation: Enable the rotation constraint of the task.
  • Debug Draw: Add visualization for the task target location as provided to the IKinema solver, after blending.
  • Debug Draw Scale: The size of the debug visualization.

Setup CoM Task

This node allows you to setup the properties for a Centre of Mass tasks, if one is available in the IKinema Rig used with your AnimGraph. Image 5 shows the node with its input pins. These are as follow:

 

Image 5 Setup CoM Task Node

  • Target: The Target position for the CoM
  • Enable: Enable/Disable the CoM task.
  • In Component Space: When enabled the provided target is in Component Space, otherwise it is in the Solver space.
  • Debug Draw: Add visualization for the task target location as provided to the IKinema solver, after blending.
  • Debug Draw Scale: The size of the debug visualization.

Advanced Properties for the Solver Node

If the Solver Node is selected in the AnimGraph, the Details tab will show a number of extra properties as can be seen in Image 5. Some of these properties are not editable. However, the most important one is the IKinema Rig

 

Image 6 Advanced Properties

The property contains a list of all the different tasks in the rest, and it allows you to override the rig task settings. The options that you can override are shown in Image 6. Similar options are available for the CoM Task Properties and Segment Properties.

Further mote to these Properties, there is the Pin Task Properties, Pin Segment Properties, and Pin CoM Task Properties. These include a list of the Tasks, and Segments in the rig, and through a Check Box, they will expose a Pin in the Solver node to change the properties at run time.

 

Image 7 Task Properties

Pin Segment Properties

Enabling the Show as Pin flag for a specific segment under the Pin Segment Properties, then refreshing the Solver Node, will expose a new pin on the Node inputs. The pin will be called Properties . This pin has to be connected to a Make Segment Properties node. The inputs to this node are the different IKinema bone parameters described in the Rig Editor document

 

Image 8 Make Segment Properties

Pin Task Properties

A new pin will be exposed on the Solver node, when the Show as Pin option is enabled for a specific task in the Pin Task Properties. This pin will be called Properties Task. It can be connected to a Make Task Properties. Node. This allows you to change the different properties of the task at run time. The Make Task Properties node is shown in Image 8.

 

Image 9 Make Task Properties

IKinema Blueprint Functions

IKinema RunTime integration in UE4, comes with a number of helper blueprint functions. Some of these are deprecated and will be removed in the near future. Most of these helper functions perform mathematical operations on quaternions or Transforms. Others, provide a specific bone local transforms.

Mathematical Helper Functions

Make Rotator from Quaternion

This node converts the input quaternion to a Rotator object, that can be used in the different interpolation nodes.

 

Get Relative Transform

Computes the relative transform between transform A and B. The resulting transform is equal to A inverse multiplied by B. (T = A-1 x B).

 

Get Relative Transform Reverse

Similar to the Get Relative Transform node, except that the result is equal to A multiplied by B inverse (T = A x B-1)

 

Inverse Transform

This node calculates the inverse transform of the input.

 

Advanced Helper Functions

These include the more advanced helper functions. Most of these will return a transform of a specific bone or the world transform of the character.

Find Skeleton World Space Transform

Returns the world space transform of the specified bone name in the given skeleton

 

The inputs to this node are:

  • Skeleton: A reference to the Skeleton to look for the bone in.
  • Trans Name: The name of the bone to return its world transform.

If the bone is found in the Skeleton, the Found output will be set to true and Out Transform will contain the world transform for the specified bone.

Get Component to World Space Transform

Return the Component to world transform for the provided Animation blueprint reference.

 

Get Bone from Pose

This node returns the specified bone transform from the specified cached pose.

 

The input pins are as follow:

  • Vim: A reference to the current Animation Blueprint.
  • Cached Pose: The name of the provided cached pose
  • Bone Name: The name of the bone to get its transform
  • Force Update: Enforce an Update to on the cached pose.

Note

This node will not function correctly if more than one cached pose is used in the Animation Graph.

This node is deprecated and will be removed in the next release.

Find Actor World Space Transform

Searches the current world for the specified Actor and return the world transform of the specified bone.

 

The inputs are:

  • Actor Name: The name of the actor to search for
  • Trans Name: The name of the bone to return its transform.

Deprecated Animation Nodes

Set Bone

This node modifies the transform of the specified bone directly without passing through the solver. It is advisable to use the Transform (Modify) Bone Skeletal Controller provided with Unreal.

 

This node accepts two input pins, Bone Name, the name of the bone to modify, and Bone Transform, the local space transform for the bone.

Convert to Solver Space/ Convert to Local Space

These two nodes convert the animation pose link from local space to Solver space and vice-versa. They are useful, when trying to provide targets directly in solver space. However, the ability to provide targets in Component Space override the needs for these nodes. Hence they are deprecated and will be removed in the next release.

 

If this node is used, when compiling the Animation Blueprint, a warning will be generated regarding the deprecation of these nodes.