GS_Performer
Categories:
GS_Performer is the character rendering and presentation gem for GS_Play. It provides a slot-based skinning system for composing modular character appearances at runtime, a paper (billboard) performer system for 2.5D and top-down projects, velocity-driven locomotion parameter hooks, head tracking, and audio babble. The gem depends on GS_Core and integrates optionally with EMotionFX and GS_Unit.
For usage guides and setup examples, see The Basics: GS_Performer.
Contents
Manager
The Performer Manager is a GS_Play manager that owns the global performer registry and coordinates skin slot configuration across the level.
| Component | Purpose |
|---|---|
| GS_PerformerManagerComponent | GS_Play manager. Global performer registry. Coordinates skin slot profiles and performer lookups. |
Skin Slots
A slot-based system for composing character appearance from swappable actor meshes and material sets. Each slot holds an actor asset and material list. The handler component manages the full set of slots for a character and applies PerformerSkinSlotsConfigProfile presets.
| Component / Asset | Purpose |
|---|---|
| PerformerSkinSlotComponent | Individual skin slot. Holds one actor mesh and its material overrides. Addressed by slot ID. |
| SkinSlotHandlerComponent | Manages the full collection of skin slots for a character entity. Applies profile presets. |
| SkinSlotData | Data structure holding actor asset and material asset list for a single slot. |
| PerformerSkinSlotsConfigProfile | Asset class defining a named preset of skin slot assignments. Loaded and applied at runtime. |
Paper Performer
Billboard-based character rendering for 2.5D and top-down games. The facing handler keeps sprite quads oriented toward the camera or a configurable facing target. A camera-aware variant (in GS_Complete) extends this with PhantomCam integration.
| Component | Purpose |
|---|---|
| PaperFacingHandlerBaseComponent | Abstract base for billboard facing logic. Extend to implement custom facing strategies. |
| PaperFacingHandlerComponent | Concrete paper-facing implementation. Orients the entity quad toward the active camera each tick. |
Locomotion
Velocity-driven animation parameter hooks. The locomotion component samples entity velocity each tick and pushes values into the animation graph, driving blend trees without manual parameter management.
| Component | Purpose |
|---|---|
| VelocityLocomotionHookComponent | Reads entity velocity and writes locomotion parameters to the EMotionFX animation graph each tick. |
| PrefabAnimAssetsReloaderComponent | Hot-reloads prefab animation assets during development without requiring a full level restart. |
Head Tracking
Procedural head look-at targeting for performer entities. Drives bone orientation toward a world-space target using configurable angle limits and spring damping.
Babble
Audio babble synchronized to dialogue typewriter output. The Babble component generates procedural vocalisation tones keyed to speaker identity and tone configuration, complementing the Typewriter system in GS_Cinematics.
Installation
GS_Performer requires GS_Core. EMotionFX and GS_Unit are optional integrations.
- Enable GS_Performer and GS_Core in your O3DE project’s gem list.
- Add GS_PerformerManagerComponent to your Game Manager prefab and include it in the Startup Managers list.
- For skin slots, add SkinSlotHandlerComponent to the character root entity, then add one PerformerSkinSlotComponent per modular slot.
- For paper performers, add PaperFacingHandlerComponent to sprite entities that should billboard toward the camera.
- For locomotion, add VelocityLocomotionHookComponent to entities with an EMotionFX actor and configure the parameter name bindings.
See Also
For conceptual overviews and usage guides:
For sub-system references:
For related resources:
Get GS_Performer
GS_Performer — Explore this gem on the product page and add it to your project.