> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kinemation.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# First-person camera

> This page covers camera animation, free look, field of view, and camera shakes.

`BP_Survival_Character` inherits the camera setup from `BP_Gameplay_Character`. Get its camera controller through `BPI_Gameplay_Character.GetFirstPersonCamera`.

The first-person camera follows more than mouse input. An action can tilt the view, aiming can narrow the field of view, and firing can add a brief shake. `AC_FirstPersonCamera` brings these motions together on the character's Camera Component.

The character connects the camera and animated mesh during setup. After that, character input controls free look, animation curves add authored camera motion, and weapon views request FOV changes and shakes. Use these existing connections when tuning the camera on the pack character.

## Connecting the camera and character

Call `UpdateTargetCamera(Camera)` with the Camera Component to animate. This also records its current FOV as `DefaultFOV`. Call `UpdatePlayerMesh(Mesh)` with the character mesh whose animations include camera motion.

![Get First Person Camera interface returning the camera component](https://mintcdn.com/kinemation/BvKUc44M8EsdeT19/images/gameplay-framework/unreal/gameplay-framework_character_get-first-person-camera.png?fit=max\&auto=format\&n=BvKUc44M8EsdeT19\&q=85\&s=2ae88ad95d6e8e30cd6728f230376460)

The character interface gives access to the camera controller.

Framework characters already call these from `SetupCamera`. Rebind the references if you replace the camera or mesh.

## Animated camera motion

Camera motion is carried by curves in the character animation. Use the [camera motion extractor](https://docs.kinemation.xyz/survival-pack/unreal/general/animation-modifiers/camera-motion-extractor.md) to transfer authored camera rotation into those curves. Keep their timing aligned with the character montage.

Use `BP_CameraMotionExtractor` when a replacement character animation needs camera curves. Preview the result during the action and check that camera motion follows the hands. The pack’s source camera animations are in `Animations/Camera`.

## Free look

Free look lets the player look around without turning the character with every mouse movement. Call `EnableFreeLook` when free look starts. While it is active, pass look input to `AddFreeLookInput`. Call `DisableFreeLook` to return to the normal view.

![Character free-look input graph](https://mintcdn.com/kinemation/BvKUc44M8EsdeT19/images/gameplay-framework/unreal/gameplay-framework_character_freelook-input.png?fit=max\&auto=format\&n=BvKUc44M8EsdeT19\&q=85\&s=76f96c3194e5d46b47e62472167482f3)

Free-look input enables and disables the camera behavior.
<table><thead><tr><th>Property</th><th>Use</th></tr></thead>
<tbody><tr><td>`MaxFreeLookInput`</td><td>Limits the free-look range on each input axis.</td></tr>
<tr><td>`FreeLookSpeed`</td><td>Controls the free-look transition speed.</td></tr>
<tr><td>`FreeLookEase`</td><td>Easing used for the transition.</td></tr></tbody></table>

During free look, route the look input to the camera rather than also rotating the character. The framework's look-input handling already makes this distinction.

## Field of view

Call `UpdateTargetFOV(NewFOV, InterpSpeed)` to set a target and transition speed. The component's update interpolates toward it.

![Camera UpdateTargetFOV graph](https://mintcdn.com/kinemation/SNGN1MO-2cou2Sl-/images/kinemation/unreal/AC_FirstPersonCamera_UpdateTargetFOV_00000.png?fit=max\&auto=format\&n=SNGN1MO-2cou2Sl-\&q=85\&s=bbf2cf3e51dd14be90203de7c59c8f57)

UpdateTargetFOV stores the target FOV and interpolation speed.

The weapon view uses its settings asset's `AdsFOV` for aiming. Return to `DefaultFOV` when aiming ends. Avoid writing directly to the camera FOV every frame while the component is interpolating.

## Camera shake

Create a `DA_FirstPersonCameraShake` asset and call `PlayCameraShake(NewShake)` for an event such as firing.

![First-person camera shake data asset settings](https://mintcdn.com/kinemation/UM_aaEsISgGp3gjD/images/shooter-core/unreal/FirstPersonCameraShakeAsset.png?fit=max\&auto=format\&n=UM_aaEsISgGp3gjD\&q=85\&s=73a8e8e0e6514c7222bea87a8b3814cd)

A shake asset defines rotation, strength, smoothing, and speed.
<table><thead><tr><th>Property</th><th>Effect</th></tr></thead>
<tbody><tr><td>`RotationCurve`</td><td>Vector Curve defining shake motion over time.</td></tr>
<tr><td>`Pitch`, `Yaw`, `Roll`</td><td>Random amplitude range for each rotation axis.</td></tr>
<tr><td>`Smoothing`</td><td>Interpolation speed for shake response.</td></tr>
<tr><td>`PlayRate`</td><td>Speed at which the curve plays.</td></tr></tbody></table>

![PlayCameraShake function graph](https://mintcdn.com/kinemation/SNGN1MO-2cou2Sl-/images/kinemation/unreal/AC_FirstPersonCamera_PlayCameraShake_00000.png?fit=max\&auto=format\&n=SNGN1MO-2cou2Sl-\&q=85\&s=6d6bb056916783c67d8691f59dba9846)

PlayCameraShake starts the selected shake asset.

Camera shake changes the view. Weapon recoil changes the weapon pose, and controller recoil changes look rotation. Tune them separately.

## Try it with DL700

On a copy of `DA_DL700`, change the aiming FOV and compare the result. Its recoil asset, `RD_DL700`, references `Shake_DL700`. Adjust that shake separately when you want to change the firing response without changing sight alignment.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.