Table of Contents

,

Start Page » DEMoCap: Drag[en]gine Motion Capture » Low Level Motion Transfer: Inverse Kinematics

Motion Transfer Inverse Kinematics

If the bone chain consists of 2 or more bones this motion transfer rotates bones in the bone chain to make tip bone touch desired point in space. This is typically used to animate arms to line up with the VR controllers or legs to line up with the ground.

If the bone chain consists of 1 bone this motion transfer applies the position and orientation to the bone (using the desired offsets). This is similar to attaching the bone to the target position in space.

Name

Name of motion transfer to identify it in the list. Name is not required to be unique.

Tip Bone

Last bone in the bone chain. Click on the label or the combo box to activate bone selection mode. Click in the preview window on a bone to select it. The selected bone is marked in red. Motion transfer has no effect if not set.

Base Bone

First bone in the bone chain. Click on the label or the combo box to activate bone selection mode. Click in the preview window on a bone to select it. The selected bone is marked in red. Motion transfer has no effect if not set.

Guide Bone

Bone to use to guide the rotation of the bone chain. This is typically used to set the desired elbow or knee orientation. Click on the label or the combo box to activate bone selection mode. Click in the preview window on a bone to select it. The selected bone is marked in red. If not set inverse kinematics determines this orientation itself which is not always reasonable.

Guide bone is not used if the bone chain consists of of only 1 bone.

Actor Reach

Sets the reach calculation used to calculate reach stretching. Reach stretching matches the actor limb reach with the respective character limb reach. This ensures the bone chain does not over stretch as well as preventing bone chains from never stretching out properly.

None

Use no reach stretching.

Arm

Use the actor profile defined arm length to calculate reach stretching.

Leg

Use the actor profile defined leg length to calculate reach stretching. As of 0.4 not supported yet since the result is not stable enough.

Reach Limit

Scale factor to apply to the reach limit.

If reach calculation is used a reach limit is calculated. The target point is prevented from moving further away than this reach limit distance to avoid bone chain from over stretching. This calculation can be inaccurate if the character has troublesome characteristics. Using the scale factor the calculated reach limit can be pushed further away (value larger than 1) or closer (value less than 1). Typically this is used to slightly reduce the reach limit.

Reach Scaling

Scales reach calculation.

Reach calculation uses the bone layout to calculate the reach of the character limb. This is used to scale the actor reach along each axis to about over and under stretching. Nevertheless this calculation can be slightly off depending on how the character is crafted. By manually shortening or enlarging the reach this can be compensated.

Reach is applied along X, Y and Z axis. A uniform reach can cause problems due to base bone movement. The coordinate system of the base bone is used to determine the X, Y and Z axis. The reach scaling is multiplied with each of these axes. This allows to fine tune inverse kinematics results along each individual axis.

The best way to adjust these values is to change the value, save the configuration and using reconfiguration.

The reach scaling is typically in the range from 0.8 to 1.2 . Values outside this range are usually not useful.

Reach Scaling Back

Scales reach calculation backwards.

Reach is applied along negative X, negative Y and negative Z axis.

Adjust Position

If the bone chain consists of only 1 bone sets if the position is applied to the bone in addition to the orientation.

Move Base IK

Move to use from character animation file as base IK state.

IK does not work well if bone chains are fully stretched out. Characters are though calibrated in T-Pose which is all about bone chains being stretched out. As a result IK tends to calculate strange results. Using a base IK move an initial state can be defined where the bone chains are in half bend position close to natural pose. This ensures IK can calculate good results improving motion capture results.

The move is required to have one animation frame. Additional animation frames beyond the first one are ignored.

Move Retracted

Move to use from character animation file as retracted state.

This further refines the IK calculation for bone chains used for example for legs. Instead of using just the base IK move this move blends between bone chain in base IK pose and bone chain in fully retracted pose (crouching in case of legs). This move can have as many frames as required. The reach of the bone chain is used to blend between the first animation frame (0s) and the last animation frame (move play time). The reach limit is used as fully expanded position.

Twist Propagation

Twisting is applied to the bones along the chain if the tip bone is rotated along the twist axis. This allows bone chain to follow the tip bone rotation to a certain degree.

Twist Bone Count

Sets the count of bones to be affected by twisting. Starts counting with the first bone after the tip bone. Hence if the bone chain has 5 bones and twist bone count is set to 2 then the bones 1 and 2 are twisted using bone 0 as input while bone 3 and 4 are not twisted (tip bone is index 0).

Twist Axis Rotation

Sets the orientation of the twist axis relative to the base bone. The Z axis has to point along the bone chain. You are free to orient the X and Y axis.

Click on the label or the text widgets to activate coordinate system mode. A coordinate system gizmo is shown in the preview window at the origin of the character. Rotate the coordinate system until the Z axis (blue arrow) points along the bone chain. The X axis is the red arrow and the Y axis the green arrow.

Tip Tracker

Tracker to use for tip bone.

Guide Tracker

Tracker to use for guide bone.

Base Tracker

Tracker to use for base bone.