Collision
How the camera deals with walls, ceilings and doorways without jumping, and the settings that decide how it does it.
The camera wants to sit a set distance behind the character, and the world often won't let it. Collision handles that, mostly by moving the camera in closer, and occasionally by stopping the player from making things worse.
The default: move in closer#
The camera checks the line from the character's shoulder out to where it wants to be. If anything is in the way, it moves in along that line until the view is clear, then eases back out once the wall has gone. Moving in is quick, because a wall about to be seen through is urgent. Moving back out is gentle, because nothing is ever urgent about getting further away.
Arm Pull In Time and Arm Relax Time on the Rig set those two speeds.
Seeing walls coming#
Tick Predictive Avoidance and that single check becomes a fan of feelers: one straight back, two angled left and right, two up and down. They find a wall before the camera reaches it as the player turns, so the camera glides along surfaces instead of bumping into them. The shortest safe distance the fan finds wins.
Angled feelers count for less than the straight one, so brushing a corner nudges the camera rather than yanking it in. Characters can count for less than walls too, so a crowd doesn't shove your shot around.
Going around instead of in#
With Predictive Avoidance off, Occlusion Strategy chooses what the camera does about something in the way:
| Strategy | What it does |
|---|---|
| Pull Forward | moves in closer. Always works, always changes how close the shot is |
| Preserve Height | swings sideways at the same distance first, and only moves in if nothing is clear |
| Preserve Distance | swings sideways or over the top, keeping the distance. The most cinematic |
Ignored Occluder Tags lets thin clutter (railings, foliage, cables) never move the camera at all. Tag the actors and list the tag. It works with the strategies above, but not yet with the feeler fan. 1.3 honours it there too.
Ignoring blink-and-miss blockers#
Occlusion Min Time makes something block the view for a moment before the camera reacts. Railings, branches and door frames often cross the view for a frame or two, and hauling the camera in for them looks nervous. Only moving in waits; moving back out never does.
Low ceilings#
Looking down swings the camera up behind the character, so under a low ceiling the stick can push the shot into the roof. Pitch Room Limit measures the room overhead and gently narrows how far down the player can look, so the camera stops before it gets there. The stick slows into the limit rather than hitting a wall.
It pairs with a Ceiling Room composition shift: as the room runs out, the character rises in frame, which lowers the camera and buys real downward view first. You hit the limit far less often.
Threading a gap Experimental#
Gap Centring slides the shot sideways to line it up with a doorway or alley it would otherwise clip. Two feelers either side of the character measure how much room there is, and the shot moves towards the middle. Turn it on, watch the gap line in the camera stack readout, and expect to tune Gap Whisker Spacing.
Go deeperThe gap centring settings
Gap Whisker Spacing sets what counts as tight. The feelers reach Gap Max Shift + Gap Whisker Spacing each side and both must come in under that. Lower it if the shot starts centring itself in corridors you wouldn't call narrow.
Gap Max Shift caps how far the shot may move.
Gap Probe Length gives the feelers length along the arm, so a door frame stays "seen" for a little before the character reaches it and a little after. Raise it if the shot lets go too early on the way out; lower it if it holds on after the gap has gone.
Gap Yaw Assist also turns the camera slightly down the gap, rather than only sliding. It's opt-in, because turning changes where the player is looking.
Go deeperWhy gap centring measures beside the character
The camera trails the character by a whole arm, so feelers out at the camera would only reach a door frame once the shot was already in it, which is when the correction should have finished. Measuring beside the character gives the whole arm's length of warning. It also can't chase itself: the measurement doesn't move when the shot does, so there's nothing for the correction to hunt against.
A third probe checks that the arm would actually be clear on the line the shift is asking for, not the line it's on now. Asking about the current line would veto exactly the case the feature exists for: a shot clipping a jamb because it's off-centre.
Go deeperWhen a check starts inside something
Any of these checks can start inside geometry: a fat probe under a low beam, a shoulder pushed into a wall. A check that starts inside something knows nothing about what's further along, so the camera ignores it rather than treating it as "zero distance", which would put the camera inside the character's head. Only a genuinely buried starting point (a wall closing in, a get-up pushing through geometry) makes the camera retreat, and a much smaller test tells that apart.
If the shoulder itself ends up buried, the arm simply holds the length it already had, rather than stretching out and then snapping back when it clears.
Go deeperWhy the camera can lag inwards but never outwards
Collision decides a safe position, but one more smoothing step runs after it so the published camera stays continuous. Nothing used to make those two agree, and they could differ by almost a metre on a fast turn beside a wall.
Trailing inwards, closer than asked, is harmless and sorts itself out. Trailing outwards is the wall collision just avoided. So the last step may lag inwards and not outwards: the same "moving in is urgent, moving out isn't" rule the arm itself follows.
Go deeperNothing may hold a value it can't let go of
Some systems change a value that outlives them. The automatic shoulder swap moves which side the character sits on, which every Rig reads, not just the one that moved it. Switching the feature off in a Rig isn't enough: it has to hand the value back, eased, or the last position stays stuck. Gap centring and the sideways swing hand theirs back the same way.
Composition has a small correction on top of its exact placement, and that correction slowly lets go all the time. Without that, anything it absorbed (crossing a volume, say) would leave the shot permanently a little off, and where it ended up would depend on where you'd been.
Go deeperReading the arm in the log
Blendable.Camera.DebugFollow 1 in the console logs the distance decision every frame:
[BlendableArm] pitch -4.2 req 320.0 target 305.0 current 318.4 slide 40.0,0.0 ...req is what the Rig asked for, target is what collision decided, and current is where the arm is. A target well below req is collision moving the camera in. current behind target is the smoothing, and how far behind depends on Arm Pull In Time or Arm Relax Time.