GS_MotionProxy

Serialized struct for track-to-entity redirection — allows designers to target named tracks at different entities.

GS_MotionProxy is a serialized struct that allows designers to redirect a named track to a different entity in the hierarchy. This enables a single motion asset to animate multiple entities — for example, a UI animation that moves one element while fading another.

For usage guides and setup examples, see The Basics: GS_Core.


Fields

FieldTypeDescription
m_trackIdAZ::UuidReferences the track’s m_id. Matched during ApplyProxies().
m_labelAZStd::stringRead-only display label (synced from track info at edit time via GetTrackInfos()).
m_proxyEntityAZ::EntityIdThe entity this track should target instead of the motion’s owner entity.

How It Works

  1. Edit time: The proxy list syncs from the asset’s track info. Each track with an m_identifier (non-empty label) appears as a proxy slot in the inspector.
  2. Designer assignment: The designer drags an entity reference into the proxy’s m_proxyEntity field.
  3. Runtime: When GS_MotionComposite::ApplyProxies() runs, it matches each proxy’s m_trackId to a track’s m_id and overrides that track’s target entity.
  4. Playback: The track now animates the proxy entity instead of the motion’s owner.

Usage

Proxies are embedded in instance wrapper structs (e.g., UiAnimationMotion, FeedbackMotion) alongside the asset reference. Components serialize the proxy list, and the wrapper handles synchronization with the asset.

Only tracks with a non-empty m_identifier appear in the proxy list. Tracks without an identifier always animate the owner entity.


See Also


Get GS_Core

GS_Core — Explore this gem on the product page and add it to your project.