Runtime Boundary
Packaged games load PoseOverlayRuntime. Runtime evaluates synchronized data and does not execute the authoring Control Rig, editor widgets, preview scene, or authoring services.
Three Responsibilities
- Gameplay owns
FPoseOverlayRuntimeRequest. - Optional source reporters publish animation identity and time for Animation Overrides.
- One Pose Overlay Stack resolves compatible requested Sets and applies the result.
One Request Per Independently Animated Character
Do not share one mutable request between unrelated characters. The request describes desired state now; transition history belongs to the Stack node that evaluates it.
One Normal Stack For Compatible Sets
Use one normal Stack when Sets need shared ordering, conflicts, and transitions. Separate Stack nodes create separate arbitration and transition scopes and should be used only when independent graph ownership is intentional.
Runtime Does Not Load For You
Make Sets available through your project loading strategy before requesting them. Pose Overlay does not synchronously resolve unloaded assets inside the animation hot path.
Request Semantics
- State tags must already exist uniquely in synchronized Set data.
- Context tags change branch selection but do not activate States.
- Animation Overrides fall back to their resolved parent when no source binding matches.
- Set and State weights control desired contribution; authored transitions control entry, exit, and substitution behavior.
C++ Example
#include "PoseOverlayRuntimeRequestLibrary.h"
FPoseOverlayRuntimeRequest PoseOverlayRequest;
UPoseOverlayRuntimeRequestLibrary::SetStateActive(
PoseOverlayRequest,
LoadedPoseOverlaySet,
RifleStateTag,
true,
1.0f);
UPoseOverlayRuntimeRequestLibrary::SetContextActive(
PoseOverlayRequest,
CrouchingContextTag,
bIsCrouching);
Add PoseOverlayRuntime to the consuming module dependencies and keep referenced Sets strongly available while the request contains them.