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.

Debugging

The readout that shows exactly what's holding the camera and why, the live tuning panel, and the logs.

Tick Draw Camera Stack on the Follow Camera, or turn it on for every camera in project settings. You get a readout on screen of everything deciding the shot: the Preset in force, both claim ladders with the winner marked, the blend in progress, the framing as solved with every active shift, follow lag, and anything Sequencer is doing. The framing is also drawn in front of the lens, as in the composition preview.

The question it answers#

> I changed the Preset and nothing moved.

The Preset did change, so everything reports success. What's wrong is that something higher up one of the ladders still holds the shot. The readout shows both ladders, because the two fail differently: a claim left behind by a volume sits at the top of the Preset list, and a device Rig outranking your view mode sits at the top of the Rig list. Same symptom, different row.

Reading it#

BLENDABLE  BP_MyCharacter_C_0
preset   Preset_SurvivalHorror   base Preset_ThirdPerson
 -> BP_HallwayVolume    5  Preset_SurvivalHorror
    BP_WingVolume       0  Preset_ActionRPG
rigs
 -> State           10  Rig_SurvivalHorror_Aim
    ViewMode         5  Rig_SurvivalHorror_Default
    InputDevice      2  Rig_ThirdPerson_Gamepad
target   Rig_SurvivalHorror_Aim   alpha 0.62
comp     on screen 38,46  shift +0.0,-9.4  drift 8,10  camera moved -32,+14 cm  off by +0.3,-0.8
         ControlPitchDown     +0.0,  -9.4
lag      64 / 120 cm   CATCHING UP
view     Default   shoulder +1.00   states Aim
  • The arrow marks the winner in each ladder.
  • alpha is how far through the current blend you are.
  • comp is the framing: where the character is being held, how far the shifts moved them, the free drift, how far the camera moved to manage it, and how far off the spot they actually are. Each active shift follows on its own line.
  • lag appears with follow lag on: how far behind the camera is, the limit, and the phase.
  • states lists everything claiming as a state, which is usually where an unexpected Rig comes from.
  • held appears while a Rig holds its angle: how much of the view it owns, the heading, and any turn still to come. "I pressed rotate and nothing moved" is answered here.
  • fixed appears while a fixed camera is in play: the camera holding the shot, the one whose area you're in, whether it's settled, how far through a blend or which camera move it's travelling, anything it has given way to, whether the stick is being kept across a cut, how far the player is looking around, and any effects playing. "Why did it cut" and "why won't this room's camera take over" are answered here.

Fixed camera areas#

With the readout on, every fixed camera's area is drawn in the world: bright for the camera holding the shot, warm for the one whose area you're in while something outranks it, faint for the rest and grey for any switched off, each with a line to its camera and its name beside it. Camera moves are drawn the same way, with a ball where the shot has got to on the one carrying it.

The shake mixer#

With a Blendable Shake on the pawn, the readout ends with the mixer:

shake    group        move cm  tilt deg  lens deg  level
         Handheld        0.42      0.31      0.00  quietened to 0.55
         Body            0.88      0.47      0.00  quietened to 0.71
         Impacts         2.10      1.35      0.00  full
         played    Shake_Impact_HeavyLanding    1.00
                   Kick                       0.90
         rig       Shake_Handheld_Steadicam     1.00
                   Breath                     1.00
                   Float                      0.35
         state Walk   effort 0.12   stride 118 steps/min
  • Each group that's moving the camera, with how much movement, tilt and lens it adds, and how far it's being quietened. Here a landing has ducked the handheld and the body.
  • Each running shake, by where it came from: played from gameplay, body, the rig's handheld, rig also for what it has also running, or interest for a point of interest. Under each, the layers saying something, at the strength their drivers and fades leave them.
  • The locomotion state, the effort and the stride the body's layers are reading.

Tuning while you play#

Tools → Blendable → Live Tune, or the Blendable button on the level toolbar, opens a panel that edits the camera while the game runs. Change a number and the next frame is different.

TargetEditsKept after you stop?
Follow the shotwhichever Rig is driving the camera right now, switching as claims changeyes, it's an asset
Presetthe Preset in forceyes
Lock-Onthe Lock-On Preset framing the lock, switching as the lock moves between presetsyes
Live camerathe camera component in the running game: comfort and its settingsno, it belongs to the play session
Pick an assetany Blendable asset you chooseyes

Follow the shot is the reason to use it: the Rig in force changes the moment you aim or walk into a volume, and a normal details panel pinned to one asset stops showing you what you're looking at. The panel warns in orange when your changes are about to be thrown away, and has a Save button.

With a lock-on on the pawn, the panel's numbers start with what the lock is doing: the target, the preset framing it and who asked for it, the ladder under it, where you both sit on screen, the group, focus and the effects playing. Blendable.LockOn.Readout 1 in the console puts the same lines on screen, in a build without the editor too.

Go deeperWhich slide am I looking at? Experimental

Gap centring and the automatic shoulder both move the shot sideways, and in a doorway they often move it the same way at once. The readout's gap line shows gap centring:

gap      THREADING   middle clear   sides bounded   room R 20 | L 70   slide -25.0   turn +0.0

slide moving away from zero is gap centring; shoulder on the view line moving away from a whole number is the automatic shoulder. If slide stays at +0.0 as you walk through a doorway, you're not seeing gap centring.

When gap centring does nothing, the line says why. no gap with sides open means the space is wider than Gap Max Shift + Gap Whisker Spacing. no gap with middle BLOCKED means no sideways move within Gap Max Shift opens a way through, so it's a wall for collision to handle, not a gap. THREADING with slide settling at roughly half the room difference means it's working. turn is what Gap Yaw Assist took out of the correction by turning instead of sliding.

Go deeperLogging

Blendable.Camera.DebugFollow 1 in the console logs the camera's decisions every frame in their own category, so the log reads as consecutive frames. Mixed in with everything else, a quarter-second blend can vanish between samples and look like a one-frame snap.

Go deeper"Turning away from a subject feels notchy"

The look-at line shows the filtered turn rate and whether the camera thinks you're steering:

lookAt 1.00  frame -12,3  auth 0.00  hold held  rate 34 steer

If steer and -- flicker while you push away at a steady speed, your Look At Steer Threshold sits right in the middle of how fast you actually turn. Move it so the crossing happens at a speed you don't spend much time at. On its own it shouldn't flicker: the rate is filtered and the threshold has a band around it.