Pighaus Games Docs

These docs describe Fixed Angles and Blendshot, the next update, in development: everything in 1.3 and what it adds. 1.3 is in testing: read its docs.

Handheld and body motion1.3

Two kinds of shake run all the time. The handheld belongs to the shot and blends with it; the body belongs to the pawn and goes wherever it goes.

The handheld is the camera operator: their breathing, their drift, the beat they take to catch up with a pan. It belongs to the shot, so it lives on each Rig and changes when the shot does.

The body is the character's own motion: the bob of a walk, the lean into a turn, the jolt of a landing. It belongs to the pawn, so it lives on the pawn's Blendable Shake and goes wherever the pawn goes.

The handheld#

Each Rig has a Handheld line under Feel:

SettingWhat it does
Handheldthe operator for this shot. Empty uses the pawn's Handheld (When The Rig Has None)
Handheld Strengthhow much of it this shot carries: 0 holds the camera still, above 1 is a shakier operator
Also Runninga constant shake that belongs to this shot as well, like an engine room or a boat deck
Also Running Strengthhow strong that is, 0 being off

When the camera blends to another Rig, the handheld blends with it, on the same timing and easing as everything else. Walk into a tight survival-horror Rig and the camera pulls in and starts breathing as one move, rather than the breathing turning up a moment later.

Keep one-off hits out of Also Running. A grenade shouldn't fade away because the shot changed.

Under any camera other than the Blendable Follow Camera there are no Rigs, so Handheld (When The Rig Has None) plays all the time.

One motion across a blend#

Give layers on two Rigs' handhelds the same Name, Makes and Plays, and they carry on as one motion across the blend: their settings morph from one Rig's to the other's, and the motion itself never restarts. A Breath layer on every handheld breathes straight through a change of shot.

Layers without a partner crossfade instead, the outgoing Rig's fading out as the incoming Rig's fade in.

Go deeperWhy a shared layer morphs rather than crossfading

Crossfade two noise layers and for the length of the blend you're running two unrelated wanders at once. Averaged half and half, they lose about a third of their size, so the shake dips in the middle of every change. Unshared noise layers crossfade at equal power for exactly that reason, and a shared layer avoids the problem altogether: it runs once and blends its settings.

It also avoids a subtler one. A noise layer works out where it is from time multiplied by its speed, which only holds while the speed never changes. Blending changes the speed, so that product jumps and the shake ticks. Every layer keeps track of its own progress instead, so a change of speed is just a change of pace.

Swapping the handheld from gameplay#

Push Handheld swaps the operator for another shake until you Pop Handheld with the same Source, whatever the Rig would use: rougher on a boat deck, steadier in a lift. The highest Priority wins, and the most recent on a tie. It crosses over the way a Rig change does, shared layers and all. A Shake Volume does the same for a place, with no Blueprint.

Set Default Handheld changes Handheld (When The Rig Has None) while playing. Get Active Handheld and Get Active Handheld Source say which one is in use and who asked for it.

The body#

Body on the pawn's Blendable Shake is a list of shakes that always run. Usually it's one; several simply add up. Add Body Shake and Remove Body Shake change it while playing, fading rather than cutting.

Three ship in Shakes/Body to start from: Shake_Body_Default, Shake_Body_Heavy and Shake_Body_Light. The default is the whole kit as named layers: a bob and a sway for each locomotion state, leans, momentum, a trail behind the look, the landing, the jump, bursts, rumbles for footsteps and crouching, a jolt, and the lens widening with a boost. Most of them listen to the character. Bob: Walk, for one, is a Stride layer driven by Character: in a locomotion state for Walk, scaled by speed, and steadied by Focus.

What the body listens to#

Blendable Shake measures the character so its layers can follow along. These lines on the component set how:

LineWhat it does
Stridefootfall timing, for Stride layers and footstep events: steps per minute at a walk, a run, a burst and crouched, and where each foot lands. Footsteps From Anim Notifies takes them from Blendable Footstep notifies instead
Walk From (cm/s) and Sprint From (cm/s)the speeds the Walk and Sprint locomotion states start at
States Of Your Ownyour own locomotion states, like Slide or WallRun, that a movement component reports
Effortexertion that builds over a sprint and lingers after it, for the Effort driver
Camera Motionhow the two how hard the operator is working drivers weigh travel and turning
Eventsthe camera events the component fires by itself. See camera events

The locomotion state is Idle, Walk, Sprint, Crouch, Air, or one of yours. Get Current State Name reads it and On State Changed fires when it changes. Get Effort reads the effort, for breathing audio or a stamina bar.

Set Focus Input, 0 to 1, is for aiming down sights or holding a breath. The shipped body and handheld shakes steady themselves on it.

Peek and the crouch#

Two things on Blendable Shake aren't shakes, but they live there because they move the camera the same way:

  • Peek leans the camera out round a corner from Set Peek Input, -1 left to +1 right. It eases into the lean, stops short of walls, and is never squeezed by the mixer's limits.
  • Crouch Correction stops the camera dropping in one frame when the capsule shrinks. It's a correction rather than an effect, so no comfort slider or strength dial reaches it.

Strength, and who it runs for#

SettingWhat it does
Overall Strengthscales everything Blendable Shake does to the camera, peeking included. 0 turns it all off, apart from the crouch correction
Movement Strength, Tilt Strength and Lens Strengthscale one channel across everything
Only For The Local Playerruns only on a pawn a local player is looking through. On anyone else it would be work nobody sees
Shake Other Cameras Tooshakes the view while the player looks through another camera, like a cutscene's. Off, so a security camera doesn't bob with the player's footsteps

A Rig can scale the motion for its own shot as well. Under More on its Handheld line, Handheld Ambient Scale scales the constant motion, bob, sway and lean, and Handheld Transient Scale scales the one-offs: impacts, shakes and rumbles. Keeping them apart lets a cutscene calm the camera and still let its scripted hits land.