Add Transition when switching between configured View Types should move smoothly instead of cutting immediately. The Camera Controller invokes it automatically for first-to-third, third-to-first, and third-to-third changes; do not select Transition as the normal active View Type.

Before you begin

Configure and verify every source and destination View Type before adding a blend. Transition interpolates toward the destination’s current position and rotation, so it cannot correct a bad anchor, offset, collision setup, or look direction.

For perspective switching, the Camera Controller needs a valid First Person View Type, Third Person View Type, and Can Change Perspectives enabled. A Transition row is not a perspective default and is excluded from both dropdowns.

Set up camera transitions

  1. Select the camera with the Camera Controller component and expand View Types.
  2. Use the add control and select Transition. Add one Transition row; its three duration categories apply to every matching View Type pair.
  3. Select the Transition row to show its settings, but leave a playable first-person or third-person row selected in the Active column.
  4. Set First To Third Transition Duration, Third To First Transition Duration, and Third To Third Transition Duration for the switches the game uses. Use 0 when that category should cut immediately, and do not use negative durations.
  5. Tune Start First Person Camera Offset for the beginning of a first-to-third blend and End First Person Camera Offset for the end of a third-to-first blend.
  6. Enter Play Mode and switch in every supported direction while standing still. Establish clean camera and model handoffs before testing movement, items, slow motion, or rapid repeated switches.

Choose settings for each switch

Switch Duration field Offset and model timing Typical use
First person to third person First To Third Transition Duration The blend begins at the outgoing camera plus Start First Person Camera Offset. Third-person visibility is requested when the blend starts. Pulling from the character’s head into an Adventure, Combat, or RPG view without beginning inside the visible model.
Third person to first person Third To First Transition Duration The blend approaches the first-person destination plus End First Person Camera Offset. First-person visibility is requested when the blend completes. Moving toward the head while keeping the third-person model visible until the camera reaches the handoff.
Third person to third person Third To Third Transition Duration No first-person offset or perspective-visibility handoff is used. Switching from gameplay to Look At, Top Down, or another third-person composition.
First person to first person Not supported Transition returns control directly to the destination View Type. Use an immediate switch or project-specific first-person blending when two first-person options must transition.

These durations are global by direction, not configurable per View Type pair. If a short gameplay-to-gameplay blend and a long cutscene blend need different timing, change the Transition setting through a controlled state or script before switching, or implement project-specific transition handling.

Tune offsets and duration

Start First Person Camera Offset uses the outgoing first-person camera’s transform. Its default negative z offset starts the blend slightly behind that camera before the third-person model becomes visible. Tune it with the complete character body, equipped items, crouching, and the widest first-person field of view.

End First Person Camera Offset is applied to the first-person destination using the Camera Controller anchor’s rotation. It keeps the moving camera short of the exact first-person position until the perspective handoff completes. Tune it with the final anchor, model, and first-person item setup rather than copying the start offset without testing.

Transition does not expose a custom blend curve. Rotation uses a spherical interpolation from the starting camera rotation, while each position axis uses a smooth step from the starting position toward the destination’s live position. The destination View Type is evaluated immediately on every update, so a moving character or changing destination can move the end point during the blend.

Field of view is controlled by the destination View Type and its Field Of View Damping, independently of the Transition duration. Test lens and position changes together when the two View Types use different fields of view.

Decide when to cut instead

Set the matching duration to 0 for a deliberate cut, such as a teleport, respawn, camera reset, or switch whose two views already share the same pose. Project code can also bypass a blend; see Developer details for the interruption behavior.

Verify in Play Mode

  1. Confirm that a playable View Type, not Transition, is selected as active and that the intended source and destination rows both work independently.
  2. Switch from first person to third person. The model should become visible at the start, and Start First Person Camera Offset should prevent the blend from beginning inside the head or equipped geometry.
  3. Switch from third person to first person. The model should remain in its third-person presentation until the camera reaches the handoff, without crossing visible head or item geometry.
  4. Switch between every third-person pair used by the game. The camera should follow a continuous route without applying either first-person offset.
  5. Switch between two first-person View Types if the project has them. Confirm the expected immediate change; the included Transition does not blend this direction.
  6. Repeat all supported switches while walking, turning, jumping, aiming, zooming, and changing items. The live destination should remain stable while the transition follows it.
  7. Compare View Types with different fields of view. Position, rotation, and destination Field Of View Damping should settle without an unintended double ease or lens pop.
  8. Lower and restore the character time scale. The transition duration should scale with the character and pause while its time scale is 0.
  9. Request another non-immediate View Type before the first blend completes. The new blend should restart from the current visible camera pose; verify perspective visibility and input through the interruption.
  10. Test each intentional 0-duration or immediate API switch from a stable state. The camera, perspective model, look direction, and equipped items should all arrive in the same update sequence expected by the game.

Troubleshooting

Symptom Check Fix
Every switch snaps. Transition may be missing, the matching duration may be 0, or code may request an immediate switch. Add one Transition row, set a positive duration for the required direction, and pass false for the API’s immediate flag.
Transition appears as the active or default camera. The Transition row may have been selected instead of only configured. Select a playable View Type as active and choose valid first- and third-person defaults; never use Transition as either default.
First-to-third uses the unexpected duration. The legacy page previously described this field in the wrong direction. Use First To Third Transition Duration only when leaving first person for third person.
The blend never completes. A duration may be negative, or the character time scale may be 0. Use 0 for a cut or a positive duration for a blend, then restore a positive character time scale.
The third-person model appears inside the camera at the start. Start First Person Camera Offset may be too small or point toward the model. Tune the offset in the outgoing camera’s local axes with the largest model and item combination.
The camera crosses the head before first person becomes active. End First Person Camera Offset, the Camera Controller anchor, or first-person destination may be unsuitable. Tune the end offset relative to the anchor rotation and verify the destination View Type independently.
A third-to-third switch still snaps. Third To Third Transition Duration may be 0, or one of the views may be selected through an immediate API call. Set a positive duration and use a non-immediate View Type change.
Two first-person views do not blend. First-to-first transitions are not supported. Use a direct cut or add project-specific first-person transition handling.
Aim direction feels unexpected while moving into first person. The detailed look direction deliberately remains on the outgoing View Type until the transition completes. Avoid precision actions during the handoff or provide project-specific input handling for that sequence.
Field of view settles before or after the camera position. Destination Field Of View Damping is independent of the Transition duration. Tune the destination damping and transition duration together for the intended visual timing.
A rapid switch uses unexpected model timing. A new non-immediate blend starts from the visible pose but selects its category from the logical source and destination View Types. Test all interruption paths, or lock perspective input until the current transition completes.
An immediate switch during a blend resumes the old motion. The existing Transition may still be active. In custom code, call StopTransition() before issuing the immediate View Type or perspective change.

Developer details

Transition is stored separately by CameraController.InitializeViewTypes and excluded from the selectable first-person, third-person, and active View Type maps. The Camera Controller uses it automatically when SetViewType receives immediateTransition == false.

CameraController.SetPerspective(firstPersonPerspective, true) and CameraController.SetViewType(type, true) bypass a new blend. Make that immediate call from a stable camera state: the immediate branch does not stop a Transition that is already running. Custom interruption code can retrieve the Transition View Type, call StopTransition(), and then perform the immediate switch.

StartTransition supports first-to-third, third-to-first, and third-to-third pairs. A duration exactly equal to 0 declines the transition, and first-to-first always declines it. A new non-immediate transition captures the current camera position and rotation; the special first-person start offset is skipped when another transition is already active.

Rotate calculates a clamped linear transition value from TimeUtility.Time, duration, and the Ultimate Character Locomotion time scale, then uses Quaternion.Slerp toward the destination’s immediate rotation. Move recalculates the destination’s immediate position, applies the end offset when entering first person, and uses Mathf.SmoothStep per axis.

When leaving first person, OnCameraChangePerspectives is sent at transition start so the third-person model is available. When entering first person, it is sent by StopTransition after the handoff. During a transition into first person, the detailed LookDirection overload uses the outgoing View Type because the moving camera is not yet at the first-person head position; other transitions use the destination look direction.