UOverAnimComponent: Automatic Motion and Pose Snapshot
Header: OverAnimation/Runtime/OverAnimComponent.h
The Automatic Motion API passes gameplay-defined non-Montage action boundaries to the motion analyzer. The Component automatically detects ordinary Anim Blueprint state transitions and rebases derivatives when Rebase On Anim State Transitions is enabled. The Pose Snapshot API is the C++/Blueprint integration path for supplying an external component-space pose instead of the bone transforms collected automatically by the Component.
Automatic Six-Stage Motion API
| Blueprint name | C++ declaration | Input | Return | Preconditions, rejection, and state changes |
|---|---|---|---|---|
| Start New Automatic Motion Action | void StartNewAutomaticMotionAction(FName ActionContext = NAME_None) |
optional action context | none | Queues a new action boundary for the current automatic six-stage cycle. On the next motion analysis, ends the existing active motion-phase state and seeds a new animation-motion baseline. Does not create a Response immediately. |
| Cancel Automatic Motion Action | void CancelAutomaticMotionAction(FName ActionContext = NAME_None) |
optional action context | none | Queues a cancel boundary for the current cycle. On the next motion analysis, ends the active state and resets to a cancelled-action baseline. Does not create a Response immediately. |
Neither function returns a value. If motion analysis is disabled or the runtime manager is not ready, a boundary does not develop into an effect unless a later analysis stage occurs.
With Analyze Automatic Stages = Only During Montage or Explicit Action, Start New Automatic Motion Action opens an explicit action window. If a Montage boundary is active at the same time, the analyzer remains active while either action window remains open. A normal Montage blend-out stays open until the Montage ends; only an interrupted Montage closes immediately at blend-out.
Pose Snapshot API
| Blueprint name | C++ declaration | Input | Return | Preconditions, rejection, and state changes |
|---|---|---|---|---|
| Get Required OverAnim Pose Snapshot Bones | bool GetRequiredOverAnimPoseSnapshotBones(TArray<FName>& OutBoneNames) const |
output bone-name array | true when at least one exists |
Clears OutBoneNames first. Returns false if no runtime manager exists. Returns the manager's deduplicated list of required control-point source bones; returns false when the list is empty. |
| Submit OverAnim Component Space Pose Snapshot | bool SubmitOverAnimComponentSpacePoseSnapshot(const TArray<FName>& SourceBoneNames, const TArray<FTransform>& SourceBoneComponentSpaceTransforms, FTransform ComponentTransform, double SampleTimeSeconds) |
bone-name array, equal-length component-space transform array, component transform, sample time | true when accepted |
Returns false if the manager cannot be resolved. Arrays must have equal lengths; every bone name must not be None; and every transform, the component transform, and sample time must be valid finite values. The source array must contain a matching bone for every required control point. A sample older than the previously accepted or consumed snapshot is rejected. An unconsumed snapshot at the same epsilon time updates the latest snapshot and returns true. |
C++ Automatic Submission Control
| C++ declaration | Input / return | Behavior |
|---|---|---|
void SetAutomaticPoseSnapshotSubmissionEnabled(bool bEnabled) |
enable flag / none | Toggles whether the Component automatically submits the source pose from BoneTransformsFinalized. Enabling while an asset is applied binds the snapshot source; disabling unbinds it. The external-snapshot requirement is also reflected in the manager. |
Automatic submission finds required bone names on the current Target Mesh and submits each bone's component-space transform, the mesh component transform, and world time. The Component does not manufacture success when required bones are absent or missing.
Editor-Only C++ API
The following functions are exposed only in WITH_EDITOR builds. They are not runtime game-integration APIs.
| C++ declaration | Input | Return | Preconditions and state changes |
|---|---|---|---|
bool AdvanceEditorPreviewRegionMotionAnalysis(double SampleTimeSeconds) |
preview sample time | true when analysis is available |
Requires a manager, motion settings, bEnableMotionSignals, bEnableRegionMotionSignals, and a finite sample time. Otherwise resets motion-signal state and returns false. |
void ResetEditorPreviewMotionAnalysis() |
none | none | Resets pending automatic boundaries and motion-signal state. |