# First Person View

The **First Person View** node moves a chain of elements so a camera element matches a desired camera transform. It is intended for first-person rigs where the camera drives the body pose instead of the body driving the camera.

The chain is divided into **segments**. Each segment contains a group of elements and a weight controlling how much those elements follow the desired camera transform.

![First Person View node](_media/first-person-view-node.png ':size=1200')

## Usage

1. Add the **First Person View** node after [First Person Camera Control](first-person-camera-control.md) if you are using that node, or feed in your own desired camera transform
2. Connect **Desired Camera Transform** in <span class="fr-term" tabindex="0" data-tooltip-key="global-space">global space</span>
3. Preview the result
4. If Quick Setup did not detect the right chain, pick a different Quick Setup on the node or fill **Camera Bone**, **Segments**, and [Limb Adjustment](limb-adjustment.md) manually
5. Tune segment weights, clamps, or pitch compensation only if the generated setup does not fit your character

## Quick Setup

When you place the node, FocalRig generates any [Quick Setups](quick-setups.md) it can detect for the current hierarchy and auto-applies the first one. If another one matches your rig better, right-click the node and choose it from the Quick Setup dropdown.

<details>
<summary>How detection works</summary>

Quick Setup looks for a bone chain from `pelvis` or `hips` up to `head`, and it requires a POV-style child bone under the head named like `pov`, `camera`, `view`, or `eyes`.

When it finds one, it:

- uses that POV-style bone as **Camera Bone**
- reverses the detected chain so solving runs from head toward pelvis
- creates a head segment, then a neck segment for consecutive `neck` bones, then a spine/pelvis segment for everything else
- seeds default Euler rotation clamps for neck and spine/pelvis segments
- fills limb adjustment for limbs connected to the detected pelvis/root

</details>

If your rig does not have a recognizable pelvis-to-head chain or no POV-style child under the head, Quick Setup will not create a preset. In that case, set **Camera Bone** to the POV or camera element, build the head/neck/spine segments manually, then add [Limb Adjustment](limb-adjustment.md) if the feet need to stay planted.

## Output Pins

| Pin | Type | Description |
|-----|------|-------------|
| Final Camera Transform | Transform | The final camera transform in <span class="fr-term" tabindex="0" data-tooltip-key="global-space">global space</span> after solving |

## Input Pins

| Pin | Type | Description |
|-----|------|-------------|
| Desired Camera Transform | Transform | Desired camera transform in <span class="fr-term" tabindex="0" data-tooltip-key="global-space">global space</span> |
| Camera Bone | Rig Element Key | The camera element that should match the desired transform |
| Pitch Compensation | [Pitch Compensation Settings](#pitch-compensation) | Offsets that compensate for the camera staying fixed while looking down |
| Segments | list of [View Segment](#segments) | Segments of the chain from head to pelvis |
| Limb Adjustment | [Limb Adjustment](limb-adjustment.md) | How to adjust connected limbs after moving the pelvis/spine |
| Debug | [Debug Settings](#debug-draw) | Debug visualization settings |
| Weight | float | Blend weight of the whole operation (0 = no effect, 1 = full effect) |

### Pitch Compensation

When a person looks down in real life, the head and camera shift position instead of staying perfectly fixed. In many rigs the camera transform stays fixed while pitching down, which can pull the face or body into view. **Pitch Compensation** approximates that missing motion with pitch-driven offsets.

![Pitch compensation comparison](_media/pitch-compensation-comparison.mp4 ':include :type=video autoplay loop muted playsinline')

| Property | Type | Description |
|----------|------|-------------|
| ReferenceFrame | Rotation | Global frame used by compensation. X = forward, Z = up |
| ForwardOffset | float | Forward separation offset. This moves the camera away from the face |
| VerticalOffset | float | Vertical offset. This does not add face separation |
| StartPitch | float | Pitch where compensation starts blending in |
| FullPitch | float | Pitch where compensation reaches full effect |
| Weight | float | Overall compensation blend weight |

### Segments

Each segment contains the following properties:

| Property | Type | Description |
|----------|------|-------------|
| Bones | list of Rig Element Keys | The elements in this segment, ordered from child (head) toward parent (pelvis) |
| Rotation Clamp | [Rotation Clamp Settings](rotation-clamping.md) | One clamp definition stored on the segment and applied to each element in it |
| Weight | float | How much each element in this segment follows the desired transform (0 = none, 1 = full) |

Quick Setup usually creates a head segment, a neck segment, and a spine/pelvis segment. Higher weights on upper segments make the body track the camera more tightly.

#### Rotation Clamp

Each segment stores one **Rotation Clamp**, and the solver applies that same limit to every element in the segment as it walks from head toward pelvis. Think of the values here as per-element limits, not as one total allowance for the whole segment.

Quick Setup uses **Euler** clamps expressed in <span class="fr-term" tabindex="0" data-tooltip-key="global-space">global space</span>, with the reference frame aligned to the <span class="fr-term" tabindex="0" data-tooltip-key="project-forward-up-frame">project forward/up frame</span> so pitch means up/down, yaw means left/right, and roll means head tilt.

See [Rotation Clamping](rotation-clamping.md) for the actual clamp fields and debug visualization.

### Limb Adjustment

After the solver moves pelvis and spine elements, connected limbs such as legs can be restored so they stay planted or stay pinned where you expect.

See [Limb Adjustment](limb-adjustment.md) for the full settings, including [Limb Adjust Mode](limb-adjustment.md?id=limb-adjust-mode), [Three Bone Chain](three-bone-chain.md?id=three-bone-chain), [Stretch Settings](three-bone-chain.md?id=stretch-settings), and [Twist Settings](three-bone-chain.md?id=twist-settings).

## Debug Draw

| Property | Type | Description |
|----------|------|-------------|
| Enabled | bool | Whether to draw debug visualization |
| Scale | float | Scale factor for debug visualization sizes |

Use this debug view in this order:

1. Check the yellow points to see where each segment wants to go.
2. Check the green points and lines to see the final blended result.
3. Check the camera axes, pitch-compensation lines, and clamp overlay only when you are tuning those specific parts.

| Debug item | Meaning |
|------------|---------|
| Yellow point per segment element | Desired element position before blending with the input pose |
| Green point and line per segment element | Final blended position and motion from the input pose |
| Yellow/red/green clamp overlay | Segment rotation limits. See [Rotation Clamping debug draw](rotation-clamping.md?id=debug-draw) |
| Red/green/blue axes at the camera element | Final camera transform axes |
| Light-blue point at the input camera position | Camera position before pitch compensation |
| Yellow line from the input camera position | Forward-offset component of pitch compensation |
| Light-blue line from the input camera position | Vertical-offset component of pitch compensation |
| Green line from the input camera position | Total pitch-compensation offset |
| Green line from the compensated camera position | Forward-offset removal used for the body-follow target after the camera has been separated from the face |
