Professional Camera Control
From gameplay to cinematics — the camera system that adapts to your needs
Priority-Based Switching
The highest-priority active camera drives the player view. Switch seamlessly between gameplay, cutscene, and specialized cameras based on game state.
- Automatic Selection — Highest priority always wins
- Dynamic Priorities — Change at runtime via EBus
- Manager Lifecycle — Enable/disable the camera system globally
Blend Profiles
Define how cameras transition. Each entry pairs an easing curve with a blend shape — straight lerp, cylindrical arc, or full 3D spherical orbit around a pivot. Optional state inheritance carries pose continuity across the cut.
- Blend Shapes — Linear, Cylindrical, or Spherical around a configurable pivot
- State Inheritance — Opt-in cam-to-cam pose handoff for seamless continuations
- Mid-Blend Correction — Velocity-matched interrupt handling prevents jolts when blends override mid-flight
- Asset-Based — Reusable .camblendprofile assets in the Asset Editor
Influence Fields
Dynamic camera priority modification. Global influences apply to all cameras. Field influences activate when the player enters spatial volumes. Perfect for reactive framing and complex environmental zones.
- Global Influences — Always-active camera influence
- Spatial Fields — Volume-based camera influence
Composable Stage Pipeline
Every cam runs the same Body → Aim → Reposition → Noise pipeline. Pick a Body stage for follow behavior, an Aim stage for rotation, and stack Additive stages for collision, tug fields, and camera shake — all on one component.
- Body Stages — DefaultFollow, Orbit, DynamicOrbit (player-driven), LeadingFollow (Gears-style), Track (spline dolly)
- Aim Stages — DefaultLookAt and ClampedLookAim — plus extensions from gs_performer
- Additive Stages — Collision pushback, magnetic tug fields, layered Perlin noise, ADSR-gated impulse shake
- Channel-Aware — Same authoring surface scales from single-cam to 4-player split-screen co-op
Technical Specifications
Components
Composable camera system
Manager: CamManager, CamCore driver, ChannelStamp (auto-attached)
Phantom Camera: One base component, behavior via stages
Targeting: GroupTarget, GlobalInfluence, CameraInfluenceField
Tug Fields: TugVolume + TugSource + TugFieldProxy
Dependencies
Required: GS_Core only
Minimal dependencies. Works with any O3DE project that includes GS_Core.
EBus Interfaces
Camera Control: Per-camera enable/disable, priority changes
Manager Events: Camera lifecycle notifications
Global Control: Enable/disable entire camera system
Data Assets
.camblendprofile: Cam-pair blend timing, shape, pivot, inheritance
.camnoiseprofile: Per-axis Perlin noise stacks for shake / handheld feel
.camorbit: Power-bulge orbit surface for DynamicOrbitBody
Built for Every Camera Need
Gameplay Cameras
Follow the player, track targets, respond to combat. Priority switching means your action camera activates automatically during boss fights, then smoothly returns to exploration.
Cinematic Cameras
Spline-tracked cameras for cutscenes. Influence fields for reactive framing. Blend profiles for controlled transitions. The tools to make your vision look exactly how you imagined.
Fully Extensible
Every camera component is designed for inheritance. Your custom camera behaviors build on proven base implementations — override what you need, inherit the rest.
Frame Your Game's Vision
From gameplay follow cameras to cinematic spline tracks — GS_PhantomCam gives you industry-standard camera control.
Get GS_Play Read Documentation Explore Other Gems