States: everything one pose can drive¶
A State is far more than a transform. It is one FMovaIxActionState, carrying a
core Transform bundle plus optional groups that fire when a keyframe referencing it
is reached.
Save the real screenshot as: shot-control-panel-picker.png
Transform (always present)¶
Relative Location, Rotation, Scale, and bVisible. Deltas compose relative to
the target's start, its @Zero pose, or an OffsetTarget, per the owning Group's
OffsetMode.
Audio¶
Trigger: a one-shot sound (fade, offset, pitch, volume, trim) fired the instant the keyframe is reached.
Continuous: a looping sound that plays for as long as the state is active, with its own fade/pitch/volume and optional
Attenuation.
Niagara¶
A System spawned at the keyframe, attached to a resolved Target component with
an Offset. OneShot fires a burst and detaches; WhileActive keeps the effect
running until the state is left (a torch flame, a force field hum).
Physics¶
Impulse: a one-shot push, applied at the keyframe.
ContinuousForce: a per-frame force, with local application points, active while the state holds (a fan's wind zone, a conveyor's drag).
Vibration: procedural amplitude/frequency/impulse shaking for rumbling machinery, no baked animation required.
Travel-speed clamps: cap a state's segment by cm/s or deg/s and the timing auto-times by distance: the same "go to floor 3" state takes proportionally longer than "go to floor 1" without a separate setup step.
Visuals¶
LightColor / LightIntensity / LightTemperature when the target is a light
component, and per-slot Material overrides for any primitive.
Animation¶
An AnimSequence or AnimMontage played on a rigged (skeletal) target, with
BlendIn, bLooping, PlayRate: usable alongside or instead of the procedural
keyframes, so a hand-animated character interaction and a procedurally-moved prop
share the same setup surface.
Params¶
A gameplay payload for your own branching logic: an Action name to run elsewhere,
a Number, a Tag, and free Text. Read these from Blueprint on the state-reached
event to drive quest flags, counters, or dialogue triggers without adding a new
system.
Special states are not written states¶
@Zero, @Current, @Start, @Loop, @Stop, @StopNow are runtime markers
resolved by logic (see The Model), not entries you create in ActionStates,
they are always available and the validation chips never mark them unresolved.
When a state is actually recorded¶
A target's state is written when the animation reaches that keyframe, not when it starts moving. A drawer halfway open is recorded as neither open nor closed.
To keep gates usable mid-move, the runtime also records where a target is heading the moment playback starts, and clears it on arrival. A tag picks which of the two it means:
Written |
Reads as |
|---|---|
|
heading there or already there: the default |
|
fully arrived |
|
still traveling |
It stops two colliding drawers from both opening: the second asks
?@Other:!Open, false while the first is still sliding. See Tag Grammar Reference.