Class WalkGaitParameters.IdleGroup

Namespace
CodeSmile.AnyMotion.AnimateYourself.Gait
/
Assembly
ApiSource.dll

L04 (idle): a post-evaluation blend of the walk pose toward standing-neutral, plus breathing and weight-shift added on top. See idle-motion-spec.md.

O12 (start/stop) splits that blend in two. LegParking hands the legs to CodeSmile.AnyMotion.AnimateYourself.Gait.WalkGait's decoupled leg cycles — each leg parks and unparks on its own, so a planted foot stays planted while the other leg finishes its step — and leaves the cross-fade owning only what has no leg phase to park: the pelvis, torso, head, arms and the breathing and weight-shift oscillators below. See CodeSmile.AnyMotion.AnimateYourself.Gait.WalkGait.ShouldParkLeg(bool, bool, float, float).

[Serializable]
public sealed class WalkGaitParameters.IdleGroup
Expand Details ...
Inheritance
object
WalkGaitParameters.IdleGroup

Fields

BlendDuration

[Tooltip("How long the change between walking and standing still takes, in seconds. The same duration is used however far past the threshold the speed went. 0 switches instantly. With Leg Parking on this no longer applies to the legs, which stop by finishing the step they are in the middle of instead of easing towards a standing pose.")]
[Range(0, 2)]
public float BlendDuration

Field Value

float

BreathingBob

[Tooltip("How far the hips rise and fall with each breath, as a fraction of hip height. Small values are enough to be noticed.")]
[Range(0, 0.1)]
public float BreathingBob

Field Value

float

BreathingLean

[Tooltip("How far the chest and spine tip forward and back with each breath, in degrees.")]
[Range(0, 10)]
public float BreathingLean

Field Value

float

BreathingRate

[Tooltip("Breaths per second while standing still. 0.25 is one breath every four seconds, which is a calm resting rate.")]
[Range(0.1, 2)]
public float BreathingRate

Field Value

float

HeadSettleWeight

[Tooltip("How much of the head's walking bob and turn stops when the character stands still. 1 stops it completely, like every other joint. 0 keeps the head moving at full strength even at a complete stop, which reads as unsettling and is useful for horror characters. Values in between stop it partway. Only the head has its own setting; every other joint uses the shared threshold and blend above. Looking at a target is applied separately and keeps working while standing still either way.")]
[Range(0, 1)]
public float HeadSettleWeight

Field Value

float

LegParking

[Tooltip("Let each leg stop and start on its own instead of easing the whole body towards a standing pose on a timer. A foot that is already on the ground stays exactly where it is, while the other leg finishes the step it is in the middle of and puts that foot down — which is what stopping actually looks like. Turn this off to get the older behaviour, where every joint including the legs eases towards the standing pose over Blend Duration: both feet then always end up side by side, but both of them slide across the ground on the way there, including the one that is already carrying weight. Settle Step below needs this and turns it on by itself, so turn that off too to get the older behaviour.")]
public bool LegParking

Field Value

bool

MaxSettleSteps

[Tooltip("The most settle steps to take for one stop. Two is enough to bring both feet together from any resting position. Only used while Settle Step is on.")]
[Range(2, 3)]
public int MaxSettleSteps

Field Value

int

MinTurnRate

[Tooltip("Turning on the spot faster than this many degrees per second counts as moving, so the character keeps stepping instead of pivoting as one rigid block with both feet stuck to the ground. 0 turns this off and lets speed alone decide. Only used while Leg Parking is on.")]
[Range(0, 360)]
public float MinTurnRate

Field Value

float

MinWalkSpeed

[Tooltip("Below this speed, in metres per second, the character is treated as standing still and settles into the idle pose. Only used when Derive Cadence From Speed is on, which is the default.")]
[Range(0.01, 2)]
public float MinWalkSpeed

Field Value

float

SettleStep

[Tooltip("Take a small corrective step once the character has stopped, if it came to rest with one foot well ahead of the other. Stopping mid-stride otherwise leaves the feet where the last step put them, which reads as the character having been paused rather than having stopped. Turn this off to come to rest exactly where the walk ended. The corrective step is taken by the same per-leg mechanism Leg Parking uses, so turning this on turns Leg Parking on as well; turning it off again leaves Leg Parking alone.")]
public bool SettleStep

Field Value

bool

SettleStepThreshold

[Tooltip("How far apart the feet have to be, front to back, before a settle step is taken, as a fraction of how far one foot reaches from under the hip. Lower values settle more often and end up tidier; higher values leave the feet where they landed more often. Only used while Settle Step is on.")]
[Range(0.05, 1)]
public float SettleStepThreshold

Field Value

float

StepsPerSecondThreshold

[Tooltip("Below this many steps per second the character is treated as standing still and settles into the idle pose. Only used when Derive Cadence From Speed is off; when it is on, Min Walk Speed is used instead.")]
[Range(0, 2)]
public float StepsPerSecondThreshold

Field Value

float

StopStepDuration

[Tooltip("How long the last step takes to finish once the character has stopped, in seconds. A foot that is in the air when the character stops still has to land, and the character is no longer moving to time that landing, so this setting is the clock that finishes it. It also decides how quickly the legs pick the walk back up when the character starts moving again. Only used while Leg Parking is on.")]
[Range(0.05, 2)]
public float StopStepDuration

Field Value

float

WeightShiftPeriod

[Tooltip("Seconds between shifts of weight from one foot to the other while standing still.")]
[Range(1, 20)]
public float WeightShiftPeriod

Field Value

float

WeightShiftPeriodJitter

[Tooltip("How much the time between weight shifts varies, as a fraction of Weight Shift Period. Above 0 the shifts stop happening at an exactly regular interval. 0 keeps them evenly spaced.")]
[Range(0, 0.5)]
public float WeightShiftPeriodJitter

Field Value

float

WeightShiftSway

[Tooltip("How far the hips move sideways during a weight shift, as a fraction of hip width.")]
[Range(0, 0.5)]
public float WeightShiftSway

Field Value

float