This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Performer Features

Universal capabilities for any performer entity — procedural head tracking, typewriter-synchronized babble, and mesh swapping.

Performer Features are components that apply to any performer entity, independent of performer type. They represent capabilities that layer onto the character rather than define it — procedural bone targeting via head tracking, typewriter-synchronized vocalization via babble, and runtime mesh swapping.

The performer type (Paper or Avatar) defines the character’s rendering pipeline. Performer Features extend what that character can do within it.

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

 

Contents


Head Tracking

Procedural look-at targeting for performer bones. Drives bone orientation toward a world-space target each tick using configurable angle limits and spring damping, enabling characters to naturally track targets, speakers, or points of interest.

ComponentPurposeReference
Head Tracking ComponentReads a target position each tick and computes bone rotation within clamped horizontal and vertical limits, smoothed by spring damping.Head Tracking

Head Tracking API


Babble

Procedural vocalization tones synchronized to Typewriter text output. Fires audio tone events on each character reveal, keyed to speaker identity, creating the characteristic character-voice effect.

ComponentPurposeReference
BabbleComponentGenerates babble tones on OnTypeFired events. Returns BabbleToneEvent for audio playback. Speaker mapped via SpeakerBabbleEvents.Babble

Babble API


Mesh Swap

Runtime mesh and material swapping for performer entities. Provides lightweight visual variation without the full slot-based equipment system.

Mesh Swap API


See Also

For conceptual overviews and usage guides:

For related component references:


Get GS_Performer

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

1 - Locomotion

Velocity-driven animation hooks and prefab animation asset reloading for performer entities.

The Locomotion system bridges entity movement to animation. The VelocityLocomotionHookComponent samples entity velocity each tick and pushes values into the EMotionFX animation graph, driving blend trees without manual parameter management. The PrefabAnimAssetsReloaderComponent supports hot-reloading animation assets during development.

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

 

Contents


VelocityLocomotionHookComponent

Reads the entity’s current velocity each tick and writes locomotion parameters (speed, direction) to the EMotionFX animation graph. This drives blend trees automatically — characters walk, run, and idle based on their actual movement speed.

PropertyTypeDescription
Speed ParameterAZStd::stringThe EMotionFX parameter name to write speed values into.
Direction ParameterAZStd::stringThe EMotionFX parameter name to write direction values into.

PrefabAnimAssetsReloaderComponent

Hot-reloads prefab animation assets during development without requiring a full level restart. Monitors animation asset files for changes and reapplies them to the entity’s EMotionFX actor.


Setup

  1. Add VelocityLocomotionHookComponent to an entity with an EMotionFX actor and a movement system (GS_Unit mover or physics rigidbody).
  2. Configure the speed and direction parameter names to match your EMotionFX blend tree parameters.
  3. Add PrefabAnimAssetsReloaderComponent during development for faster animation iteration.

See Also

For related component references:

For conceptual overviews and usage guides:


Get GS_Performer

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

2 - Head Tracking

Procedural head look-at targeting — drives bone orientation toward a world-space target with configurable angle limits and damping.

The Head Tracking system provides procedural head look-at targeting for performer entities. It drives bone orientation toward a world-space target using configurable angle limits and spring damping, enabling characters to naturally track targets, speakers, or points of interest.

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

 

Contents


How It Works

The head tracking component reads the target position each tick and computes the desired bone rotation to face it. The rotation is clamped to configurable angle limits (horizontal and vertical) and smoothed via spring damping to avoid snapping.


Setup

  1. Add the head tracking component to an entity with an EMotionFX actor.
  2. Configure the target bone (typically the head or neck bone).
  3. Set angle limits for horizontal and vertical rotation.
  4. Configure spring damping parameters for smooth tracking.
  5. Set the look-at target via code or companion component.

See Also

For related component references:

For conceptual overviews and usage guides:


Get GS_Performer

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

3 - Babble

Audio babble synchronized to dialogue typewriter output — procedural vocalization tones keyed to speaker identity.

The Babble system generates procedural vocalization tones synchronized to the dialogue Typewriter output. Each speaker can have unique babble tone events that fire with each character reveal, creating the characteristic “character voice” effect used in games like Animal Crossing or Undertale.

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

Babble component in the O3DE Inspector

 

Contents


BabbleComponent

Bus: BabbleRequestBus (ById)

MethodParametersReturnsDescription
GetBabbleEventBabbleToneEventReturns the current babble tone event for audio playback.

Data Types

TypeDescription
BabbleToneEventAudio event configuration for a single babble tone.
SpeakerBabbleEventsCollection of babble events mapped to a specific speaker/actor.

How It Works

  1. The TypewriterComponent (GS_Cinematics) reveals text character by character.
  2. On each OnTypeFired notification, the BabbleComponent triggers its configured babble tone.
  3. The tone varies based on the speaker’s SpeakerBabbleEvents configuration.
  4. The result is a procedural “voice” that matches the text reveal rhythm.

See Also

For related component references:

For conceptual overviews and usage guides:


Get GS_Performer

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