Unity 6.3 — Cinemachine
Unity 6.3 — Cinemachine
Last verified: 2026-02-13
Status: Production-Ready
Package: com.unity.cinemachine v3.0+ (Package Manager)
Overview
Cinemachine is Unity's virtual camera system that enables professional, dynamic camera behavior without manual scripting. It's the industry standard for Unity camera work.
Use Cinemachine for:
- 3rd person follow cameras
- Cutscenes and cinematics
- Camera blending and transitions
- Dynamic camera framing
- Screen shake and camera effects
⚠️ Knowledge Gap: Cinemachine 3.0 (Unity 6) is a major rewrite from 2.x. Many API names and components changed.
Installation
Install via Package Manager
Window > Package Manager- Unity Registry > Search "Cinemachine"
- Install
Cinemachine(version 3.0+)
Core Concepts
1. Virtual Cameras
- Define camera behavior (position, rotation, lens)
- Multiple virtual cameras can exist; only one is "live" at a time
2. Cinemachine Brain
- Component on main Camera
- Blends between virtual cameras
- Applies virtual camera settings to Unity Camera
3. Priorities**
- Virtual cameras have priority values
- Highest priority camera is active
- Blends smoothly when priority changes
Basic Setup
1. Add Cinemachine Brain to Main Camera
// Automatically added when creating first virtual camera
// Or manually: Add Component > Cinemachine Brain
2. Create Virtual Camera
GameObject > Cinemachine > Cinemachine Camera
This creates a CinemachineCamera GameObject with default settings.
Virtual Camera Components
CinemachineCamera (Unity 6 / Cinemachine 3.0+)
using Unity.Cinemachine;
public class CameraController : MonoBehaviour {
public CinemachineCamera virtualCamera;
void Start() {
// Set priority (higher = active)
virtualCamera.Priority = 10;
// Set follow target
virtualCamera.Follow = playerTransform;
// Set look-at target
virtualCamera.LookAt = playerTransform;
}
}
Follow Modes (Body Component)
3rd Person Follow (Orbital Follow)
// In Inspector:
// CinemachineCamera > Body > 3rd Person Follow
// Configure:
// - Shoulder Offset: (0.5, 0, 0) for over-shoulder
// - Camera Distance: 5.0
// - Vertical Damping: 0.5 (smooth up/down)
Framing Transposer (Smooth Follow)
// CinemachineCamera > Body > Position Composer
// Configure:
// - Screen Position: Center (0.5, 0.5)
// - Dead Zone: Don't move camera if target within zone
// - Damping: Smooth following
Hard Lock (Exact Follow)
// CinemachineCamera > Body > Hard Lock to Target
// Camera exactly matches target position (no offset or damping)
Aim Modes (Aim Component)
Composer (Frame Target)
// CinemachineCamera > Aim > Composer
// Configure:
// - Tracked Object Offset: Aim at target's head instead of feet
// - Screen Position: Where target appears on screen
// - Dead Zone: Don't rotate if target within zone
Look At Target
// CinemachineCamera > Aim > Rotate With Follow Target
// Camera rotation matches target rotation (e.g., first-person)
Blending Between Cameras
Priority-Based Blending
public CinemachineCamera normalCamera; // Priority: 10
public CinemachineCamera aimCamera; // Priority: 5
void StartAiming() {
// Set aim camera to higher priority
aimCamera.Priority = 15; // Now active
// Brain automatically blends from normalCamera to aimCamera
}
void StopAiming() {
aimCamera.Priority = 5; // Back to normal
}
Custom Blend Times
// Create Custom Blends Asset:
// Assets > Create > Cinemachine > Cinemachine Blender Settings
// In Cinemachine Brain:
// - Custom Blends = your asset
// - Configure blend times per camera pair
Camera Shake
Impulse Source (Trigger Shake)
using Unity.Cinemachine;
public class ExplosionShake : MonoBehaviour {
public CinemachineImpulseSource impulseSource;
void Explode() {
// Trigger camera shake
impulseSource.GenerateImpulse();
}
}
Impulse Listener (Receive Shake)
// Add to CinemachineCamera:
// Add Component > CinemachineImpulseListener
// Impulse listener automatically receives shake from nearby Impulse Sources
Freelook Camera (Third Person with Mouse Look)
Cinemachine Free Look
// GameObject > Cinemachine > Cinemachine Free Look
// Creates 3 rigs (Top, Middle, Bottom) that blend based on vertical input
// Configure:
// - Orbit Radius: Distance from target
// - Height Offset: Camera height at each rig
// - X/Y Axis: Mouse or joystick input
State-Driven Camera (Anim ator-Based)
Cinemachine State-Driven Camera
// GameObject > Cinemachine > Cinemachine State-Driven Camera
// Configure:
// - Animated Target: Character with Animator
// - Layer: Animator layer to track
// - State: Assign camera per animation state (Idle, Run, Jump, etc.)
// Camera automatically switches based on animation state
Dolly Tracks (Cutscenes)
Cinemachine Dolly Track
// 1. Create Spline: GameObject > Cinemachine > Cinemachine Spline
// 2. Create Dolly Camera:
// GameObject > Cinemachine > Cinemachine Camera
// Body > Spline Dolly
// Assign Spline
// 3. Animate dolly position on spline (Timeline or script)
Common Patterns
Third-Person Follow Camera
// CinemachineCamera
// - Follow: Player Transform
// - Body: 3rd Person Follow (shoulder offset, distance: 5)
// - Aim: Composer (frame player at center)
Aiming Camera (Zoom In)
// Normal Camera (Priority 10):
// - Distance: 5.0
// Aim Camera (Priority 5):
// - Distance: 2.0
// - FOV: Narrower
// Script:
void StartAiming() {
aimCamera.Priority = 15; // Blend to aim camera
}
Cutscene Camera Sequence
// Use Timeline:
// 1. Create Timeline (Assets > Create > Timeline)
// 2. Add Cinemachine Track
// 3. Add virtual cameras as clips
// 4. Timeline automatically blends between cameras
Migration from Cinemachine 2.x (Unity 2021)
API Changes (Unity 6 / Cinemachine 3.0)
// ❌ OLD (Cinemachine 2.x):
CinemachineVirtualCamera vcam;
vcam.m_Follow = target;
// ✅ NEW (Cinemachine 3.0+):
CinemachineCamera vcam;
vcam.Follow = target; // Cleaner API
Major Changes:
CinemachineVirtualCamera→CinemachineCameram_Follow,m_LookAt→Follow,LookAt(no "m_" prefix)- Components renamed for clarity
- Better performance
Performance Tips
- Limit active virtual cameras (only activate when needed)
- Use lower-priority cameras instead of destroying/creating
- Disable virtual cameras when far from player
Debugging
Cinemachine Debug
// Window > Analysis > Cinemachine Debugger
// Shows active camera, blend info, shot quality