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.
Tips:
Regarding good Foot IK:
It seems like a common ground between rigs and body types is that the top of a chain needs to remain as stiff as possible. This is referring to the scapulae/shoulders, hips/legs. Setting Bend Stiffness to 1 on these limbs helps drastically.
Furthermore, you can exclude those bones entirely from the solver in the FBIK node. This can also help achieve better results (see Iguanodon).
If you don’t want to exclude the bone entirely, try adding it to the bone settings and tweaking the rotation/position stiffness.
The legs/shoulder trace radii tend to be larger than the feet/wrists. While this isn’t an absolute, it may be a good “default” while you’re tweaking everything else. Or keep them the same size – For some rigs, like the Direbear, the difference in radii size changed the pose dramatically.
If the front and back legs are touching, try increasing the bend stiffness on the back/spine bones. This helps space them apart.
To prevent legs clipping into the torso, activate rotation limits on the Full Body IK node for the thigh bone. Then roll the dino to the side to check if the leg is kept outside of the torso.
Without Rotation Limits
With Rotation Limits