# 1. Package Install and Mental Model
Part of [[Cinemachine 3]]. Next: [[2.Body Aim Noise and Priorities]].
**Docs:** [Manual package page 6000.5](https://docs.unity3d.com/Manual/com.unity.cinemachine.html) · [What's new in Cinemachine 3 (3.1.7)](https://docs.unity3d.com/Packages/
[email protected]/manual/whats-new.html) · [CinemachineCamera](https://docs.unity3d.com/Packages/
[email protected]/manual/CinemachineCamera.html) · [CinemachineBrain](https://docs.unity3d.com/Packages/
[email protected]/manual/CinemachineBrain.html)
## 1.1 Install
1. **Window → Package Manager → Unity Registry**.
2. Search **Cinemachine** → Install. Package id: **`com.unity.cinemachine`**.
3. Confirm version **3.1.x** (Manual for Editor **6000.5** lists released **3.1.7**). Do not invent a pin; use what Package Manager resolves.
4. After install, **GameObject → Cinemachine** menus appear (FreeLook Camera, etc.).
> **Unity 6.6 note (context only):** upgrade guides for **6000.6** describe `com.unity.cinemachine` becoming a core Editor package. This tutorial targets **6000.5+**; on 6000.5 you still install via Package Manager as above. If you later upgrade past 6000.5, re-read that Editor's upgrade guide.
## 1.2 Mental model (CM3)
| Concept | Role |
|---|---|
| **Unity Camera** | The actual rendering camera. Owns **Cinemachine Brain**. |
| **CinemachineCamera** | A *virtual* camera recipe (position/rotation/noise/extensions). Many can exist; Brain picks which is live. |
| **Priority** | Higher Priority wins when multiple cams are enabled. |
| **Tracking Target** | Default single target to follow *and* look at. Optional separate Look At when framing differs. |
| **Channels** | CM3 replaces "filter by Unity layer / culling mask" with **Cinemachine Channels**. Brain has a channel mask. |
| **Blends** | When live cam changes, Brain cuts or eases per Default Blend / Custom Blends. |
**CM2 → CM3 rename map (not aliases — new types; old types deprecated):**
| CM2 | CM3 |
|---|---|
| `Cinemachine` namespace | `Unity.Cinemachine` |
| `CinemachineVirtualCamera` | `CinemachineCamera` |
| `CinemachineFreeLook` | `CinemachineCamera` + Orbital Follow / Rotation Composer (+ Input Axis Controller) |
| Hidden `cm` child pipeline | Components on the **same** GameObject; use `GetComponent<T>()` |
| `CinemachineTransposer` | `CinemachineFollow` |
| `CinemachineOrbitalTransposer` | `CinemachineOrbitalFollow` |
| `CinemachineFramingTransposer` | `CinemachinePositionComposer` |
| `CinemachineComposer` | `CinemachineRotationComposer` |
| `Cinemachine3rdPersonFollow` | `CinemachineThirdPersonFollow` |
| `CinemachineCollider` | `CinemachineDeoccluder` |
| Unity layers for Brain filter | **Cinemachine Channels** |
There is **no** type named `CmCamera` in the 3.1 docs — the public component is **`CinemachineCamera`**.
## 1.3 First camera in 60 seconds
1. Select **Main Camera**. Ensure it has **Cinemachine Brain** (added automatically when you create a Cinemachine Camera from the menu).
2. **GameObject → Cinemachine → FreeLook Camera** (or a plain Cinemachine Camera).
3. Assign a **Tracking Target** (your player root or a dedicated camera-follow transform at chest/head height — see [[Level Up! (Review)]] framing).
4. Press Play. Orbit input depends on the **Input Axis Controller** (part 3 / [[Input System]]).
## 1.4 Enable / Priority from script
```csharp
using UnityEngine;
using Unity.Cinemachine;
/// <summary>
/// Toggle a CinemachineCamera and bump Priority so the Brain blends to it.
/// NOT compiled in Unity — verify against Cinemachine 3.1.x in your Editor.
/// </summary>
public sealed class CmCameraActivator : MonoBehaviour
{
[SerializeField] CinemachineCamera cam;
[SerializeField] int livePriority = 20;
[SerializeField] int idlePriority = 0;
public void GoLive()
{
if (cam == null) return;
cam.Priority = livePriority;
cam.enabled = true;
// Enabling / raising Priority is enough for Brain to consider this camera.
}
public void GoIdle()
{
if (cam == null) return;
cam.Priority = idlePriority;
// Optionally disable to remove it from consideration entirely:
// cam.enabled = false;
}
}
```
## 1.5 Brain basics
On the Unity Camera's **Cinemachine Brain**:
- **Default Blend** — style + time when no custom entry matches.
- **Custom Blends** — optional Blender Settings asset (part 5).
- **Channel Filter / mask** — which Cinemachine Channels this Brain accepts (split-screen / multi-brain).
- **Lens Mode Override** — whether virtual cams may change perspective / ortho / physical lens mode.
Events in CM3 are primarily global via `CinemachineCore`, with optional **Cinemachine Brain Events** / **Cinemachine Camera Events** behaviours for scoped listeners (see What's New). Prefer those over inventing CM2-style per-vcam UnityEvents without checking the 3.1 API.
## Unverified
- Exact Inspector label strings across 3.1.0–3.1.7 patches.
- Whether your project already embeds Timeline Cinemachine track samples from [[Timeline Basics]].