Aim
Decides where the camera looks.
An Aim rotates the camera. It never moves it, that's the Body's job. Each virtual camera has at most one Aim: setting another replaces it. It always runs after the Body.
Which one?
Without an Aim the camera keeps its starting rotation, initialState.
Usage
import { FollowBody, HardLookAtAim, targetPose } from '@pmndrs/klipp';
const player = targetPose.create(); // keep player.position up to date
camera.body = new FollowBody(player, { offset: [0, 3, 8] });
camera.aim = new HardLookAtAim(player);
import { Vector3 } from 'three';
import { FollowBodyThree, HardLookAtAimThree } from '@pmndrs/klipp/three';
camera.body = new FollowBodyThree(player, { offset: new Vector3(0, 3, 8) });
camera.aim = new HardLookAtAimThree(player);
import { VirtualCamera, Body, Aim } from '@pmndrs/klipp/react';
<VirtualCamera name="follow" priority={10}>
<Body.Follow target={playerRef} offset={[0, 3, 8]} />
<Aim.HardLookAt target={playerRef} />
</VirtualCamera>