Camera shake comes in two flavors, both as Noise additives on a Phantom Camera’s stage list: PerlinNoise for continuous handheld sway and ImpulseNoise for event-triggered ADSR-gated bursts. Both consume the same .camnoiseprofile asset and the same six-axis Perlin layer model; they stack freely.
For the concept, the preset library, and how to trigger impulses from gameplay code, see The Basics: Noise & Impulse. For the underlying asset format, see Noise Profiles (Framework API).
Contents
Recipe: Handheld Baseline
Continuous low-amplitude sway that makes the camera feel “hand-held” rather than locked to a tripod.
| Slot | Pick | Key fields |
|---|---|---|
| Additive (Noise phase) | PerlinNoise | Assign Normal_Mild.camnoiseprofile (shipped in gs_phantomcam/Assets/Noise Profiles/). AmplitudeGain = 1.0, FrequencyGain = 1.0. |
That’s all — PerlinNoise is always sampling, so the moment the stage is added, the cam picks up handheld feel. Swap to Telephoto_Mild for tighter angular response on a zoomed lens, or Wide_Mild for translation-dominant feel on a wide lens.
To dial intensity per cam without re-authoring the profile, adjust AmplitudeGain:
| AmplitudeGain | Result |
|---|---|
0.3 | Very subtle — barely-noticed sway. |
1.0 | Profile’s authored intensity (the default). |
2.0 | Doubles the amplitude — aggressive handheld. |
FrequencyGain similarly speeds up or slows down the noise without changing the amplitude.
Recipe: Event-Triggered Impact
A burst of shake that fires when gameplay code calls TriggerCameraImpulse(strength) on the cam.
| Slot | Pick | Key fields |
|---|---|---|
| Additive (Noise phase) | ImpulseNoise | Assign 6D_Shake.camnoiseprofile (shipped) for high-frequency impact micro-jitter across all six axes. Configure the ADSR envelope: typically Attack = 0.02, Decay = 0.1, Sustain Level = 0.7, Sustain Duration = 0.1, Release = 0.3. |
The ImpulseNoise stage stays silent until triggered. See The Basics: Triggering an Impulse from Gameplay Code for the call patterns (distance-attenuated source, active-cam lookup, etc.).
Recipe: Stacked Handheld + Impact
The most common configuration for action games: handheld baseline plus event-triggered impact bursts.
| Slot | Pick | Profile |
|---|---|---|
| Additive (Noise phase) | PerlinNoise | Normal_Mild.camnoiseprofile (continuous handheld baseline). |
| Additive (Noise phase) | ImpulseNoise | 6D_Shake.camnoiseprofile (event-triggered impact). |
Both run in the Noise phase. The PhantomCam component dispatches TriggerCameraImpulse to every ImpulseNoise additive on the cam, so if you stack multiple impulse stages with different profiles (light kick + heavy explosion), one trigger fires all of them — pass the right strength to attenuate.
See Also
Related recipe collections:
- PhantomCam Configurations — adding any of these noise stages on top of a body / aim composition.
Basics this builds on:
- The Basics: Noise & Impulse — preset library, impulse trigger patterns, Stable-vs-Final pose readback, custom profile authoring.
Framework API:
- Noise Profiles —
.camnoiseprofileasset. - Additive Stage Variants —
PerlinNoiseandImpulseNoisekinematic models. - GS_Core Noise — the Perlin primitives the asset is built on.