UI Animation

How to work with GS_Play UI animations — motion-based LyShine property animation for pages, buttons, and standalone components.

UI Animation extends the GS_Motion system with 8 LyShine-specific animation tracks. Animations are authored as .uiam (UI Animation Motion) assets in the O3DE Asset Editor and can be used for page transitions, button hover effects, and standalone component animation.

For track type details, the domain extension pattern, and component internals, see the Framework API reference.

UI Animation Motion asset in the O3DE Asset Editor

 

Contents


Available Tracks

Each track animates a single LyShine property over time:

TrackTarget ComponentWhat It Animates
PositionAny LyShine elementPosition offset from anchor
ScaleAny LyShine elementElement scale
RotationAny LyShine elementElement rotation
Element AlphaAny LyShine elementWhole-element transparency
Image AlphaUiImageComponentImage-specific transparency
Image ColorUiImageComponentImage color tint
Text ColorUiTextComponentText color
Text SizeUiTextComponentFont size

Multiple tracks can run simultaneously within a single motion — for example, a page show animation might fade in (Element Alpha) while sliding up (Position) and scaling from 90% to 100% (Scale).


Where Animations Are Used

ContextHow It’s Assigned
Page transitionsAssigned to onShow, onShowLoop, and onHide slots on GS_UIPageComponent.
Button statesAssigned to hover and select slots on GS_ButtonComponent.
Standalone playbackAssigned to UiAnimationMotionComponent on any entity.

Authoring Animations

  1. Create a new .uiam asset in the O3DE Asset Editor.
  2. Add tracks for the properties you want to animate.
  3. Configure timing, easing curves, and property values for each track.
  4. Optionally set track identifiers for proxy targeting.
  5. Assign the asset to a component slot in the Inspector.

Proxy Targeting

UiAnimationMotion with proxy bindings configured in the Inspector

When tracks have identifiers (named labels), they appear in the motion’s proxy list. Proxies let you redirect a track to a different entity in the UI hierarchy — for example, animating a background panel separately from a content area within the same page transition.


Quick Reference

NeedHow
Animate a page transitionAssign .uiam assets to onShow/onHide slots on the page
Animate a button hoverAssign .uiam asset to the button’s hover slot
Play an animation on any entityAdd UiAnimationMotionComponent and assign a .uiam asset
Target a child elementUse proxy entries to redirect tracks
Loop an animationEnable loop on the motion asset

Glossary

TermMeaning
UI Animation Motion (.uiam)A data asset containing LyShine-specific animation tracks for UI elements
UiAnimationMotionComponentA standalone component for playing UI animations on any entity
Proxy TargetingRedirecting a track to a different entity in the UI hierarchy via named labels

For full definitions, see the Glossary.


See Also

For the full API, component properties, and C++ extension guide:

For related systems:


Get GS_UI

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