Adjusting the Ground Conform Control Rig

The Grounded Puppet Physics use an array of Bone Names as the effectors. All the settings arrays should have a length of at least the size of the effector bone array. To adjust settings, the array entry with the matching index has to be edited.

Settings


Settings_TraceRadii:

The radius of the trace. Adjust this until the radius resembles the volume of the character mesh near that bone.

Settings_TraceLengths (Deprecated! Only edit trace length for the Hip bone):

This value should roughly be the same as the distance to the parent bone. Note that for legs, the parent of the foot bone is usually the thigh bone (not the hierarchy parent), so the trace length can be about the length of the leg.

Settings_ConstrainLength:

When enabled, this retains the length of the bone. Enable this on all effectors except on the feet.

Settings_BendStiffness:

A value of 1.0 will make this effector infinitely stiff and a value of 0.0 will have no effect on the effector position.

Settings_SpringDampingFactor:

This value gets multiplied by the Spring Damping

Settings_SpringStrengthFactor:

This value gets multiplied by the Spring Strength

 

Ground Conform Node


Spring Strength: Global spring strength for all effectors

GravityFactor: Should be a value between 0 and 1.0

DampingFactor: Global spring damping factor for all effectors

 

TimingBias:


The TimingBias allows delaying when gravity gets activated per bone, based on the anim curve. To use this, plug a float array with 0-1 values into the TimingBias input. This array also needs to be sorted during the Constructor event (See Rex_GroundConform_CtrlRig as an example).

Default is 0, which means gravity is activated as soon as the control rig is active (B=0, Output=1)

When bias ( B ) is 1, gravity will fully activate once the EnableGroundConforming curve has reached a value of 1. The speed ( S ) at which it gets activated can be controlled with single the TimingBiasSpeed input.

 

Equation for modifying gravity with the TimingBias ( B ) and EnableGroundConforming curve value ( x )

 

 

Due to a bug in Control Rig, the Mesh Scale only is applied once you start moving a control. You can reset the Mesh Scale Multiplier to 1.0 to get a better preview in Control Rig, just don’t save that change to the Skeletal Mesh. Note that the TraceRadii and TraceLengths will get scaled by the MeshScale.

 

Adjusting the EnableGroundConforming Curve

The EnableGroundConforming curve describes how to blend from the foot IK to the ground conforming pose. We don’t want to enable the ground conforming too early as that will push parts down earlier than intended in the animation. We also don’t want to enable it too late, as that will result in the head or tail clipping through the ground and then slowly moving up when ground conforming is enabled.

The curve should start increasing as soon as one part of the body (tail or head) is getting halfway to the ground. The curve should reach 1.0 as soon as the head is touching the ground.

 Adjusting the EnableGroundConforming Curve

Optimizing the Control Rig Graph

Apply Pose Cache should have SortedEffectorBones plugged in.

ShowDebug should be disabled because this can potentially cost performance too.

Optimizing Ankylo Control Rig

 

Tips:

Regarding good Foot IK:

Without Rotation Limits

With Rotation Limits