Quick answer: Drop the CinemachineImpulseListener Amplitude Gain to ~0.3, set the Impulse Source Distance Range so far events don’t shake the camera, and use Impulse Channels to keep cinematic cameras quiet during gameplay impacts.
Tap a button, the camera leaves the screen. Cinemachine Impulse’s defaults compound: source amplitude 1, listener gain 1, raw shake curve. The result is a 7-on-the-Richter shake from a footstep.
The Symptom
Camera shake fires off correctly but the magnitude is way more than intended. Or the same impulse shakes some cameras and not others when you wanted the opposite. Or the rumble bleeds into a cinematic capture.
What Causes This
Cinemachine Impulse has three configurable points:
- Impulse Source — emits the shake at an amplitude/duration.
- Distance falloff — reduces amplitude based on listener distance.
- Impulse Listener — on a vcam, multiplies received amplitude by Gain.
Defaults to all 1.0 means a unit-amplitude source produces a unit-amplitude shake at the listener. That’s the upper bound of what most games want; tune down.
The Fix
Step 1: Listener Amplitude Gain. Select the CinemachineCamera. Find CinemachineImpulseListener — if absent, add it. Drop Amplitude Gain to 0.3 (subtle) or 0.5 (medium).
CinemachineImpulseListener:
Channel Mask: Default
Amplitude Gain: 0.3
Frequency Gain: 1.0
Use 2D Distance: true // for top-down or 2D
Step 2: Source distance falloff.
CinemachineImpulseSource:
Default Velocity: (0, 0, -1)
Impulse Type: Uniform
Channel: Default
Amplitude: 1.0
Frequency: 0.2
Distance Range: 5 – 30
Falloff Curve: Smooth
Inside 5m: full amplitude. Past 30m: zero. Between: smooth falloff. An explosion at the edge of view doesn’t rock the camera.
Step 3: Channels for filtering. If your cinematic camera should not respond to gameplay impacts:
- Sources from gameplay events: Channel = Gameplay (a custom channel).
- Cinematic cameras: ChannelMask excludes Gameplay.
- Cinematic-only impacts (slo-mo punch): Channel = Cinematic, only cinematic cameras listen.
Trigger Source from Code
public class Punch : MonoBehaviour
{
public CinemachineImpulseSource src;
public void DoPunch()
{
src.GenerateImpulseWithVelocity(new Vector3(0, -1, 0) * 2f);
}
}
The 2f multiplier lets you scale per-event without changing the asset defaults.
Verifying
Trigger the impulse in PIE. The shake should be felt but not cinematic. If it’s still over-the-top, lower listener gain. If you can’t feel it at all from a distance, raise Distance Range max.
“Listener gain trims. Distance falloff localizes. Channels separate gameplay from cinematic. Shake feels right.”
Related Issues
For Cinemachine blends, see Cinemachine blend. For LookAt jumps, see LookAt jumps.
Listener gain. Distance range. Channels. Shake feels right.