Passes Camera In through unchanged while setting the internal trauma to 1 at the moment Shake Trigger fires, causing a shake. Trauma decreases linearly every frame by Decay × elapsed time, but the actual shake amount is the square of trauma, so it hits hard at first and then settles quickly. The shake uses Perlin noise: the position is offset along the camera’s local axes, and the rotation is added as Euler angles. Plug an audio onset into Shake Trigger and a camera that shakes on the kick can be built with a single node.
- Position Amount (default 1)
- Rotation Amount — degrees (default 3)
- Frequency — how fast the noise advances (default 12, minimum 0.01)
- Decay — the decay speed of trauma, per second (default 1.5, minimum 0.01)
While it is not shaking, the input camera is output as it is (settings such as orthographic projection are also preserved).
When Camera In is not connected, the output is the default camera (position 0,0,-10 / FOV 60) being shaken.
Input ports
| Port ID | Type |
Camera In | CameraDataInput |
Shake Trigger | trigger |
Position Amount | float |
Rotation Amount | float |
Frequency | float |
Decay | float |
Output ports
| Port ID | Type |
Camera | CameraDataOutput |
Scriptable members
| Path | Type |
amountInput | float |
rotAmountInput | float |
frequencyInput | float |
decayInput | float |
Synapse Apps (scripting)
await synapse.modules.create({ type: "CameraShake" })