Unity offre nativamente un sistema di gestione delle telecamere, che possiamo usare tanto per il 3D quanto per il 2D. In quest’ultimo frangente, tuttavia, useremo Cinemachine, ossia un sistema di telecamere predefinito, già presente nella versione standard di Unity e ottimizzato appunto per i giochi bidimensionali. Cinemachine è molto utile, soprattutto nel nostro caso, dove vogliamo creare un platformer 2D, in quanto senza bisogno di dover programmare nulla ci fornisce una telecamera adattata già al tipo di gioco che stiamo cercando di creare.
Come importare Cinemachine in Unity
Per importare Cinemachine all’interno del nostro progetto, dobbiamo cliccare sul tasto Window nella barra superiore, e selezionare Package Manager. Si aprirà quindi questa finestra, dove potremo selezionare una serie di contenuti e funzionalità da importare nel progetto. Clicchiamo quindi su All e cerchiamo Cinemachine, che si trova tra le prime posizioni. Per introdurlo nel progetto sarà sufficiente cliccare su Install, e aspettare che il processo di installazione venga completato.
A questo punto nella barra superiore si aprirà una nuova voce, ossia Cinemachine, che ci offre diverse opzioni. Quella che dobbiamo selezionare è chiaramente 2D Camera. Si tratta di una telecamera virtuale, le cui proprietà saranno automaticamente applicate alla Main Camera. A questo punto viene quindi naturale chiedersi: qual è l’utilità della Virtual Camera che abbiamo creato? Sicuramente uno dei benefici principali è la possibilità di passare da una telecamera all’altra, per avere a disposizioni diverse visuali.
Impostare la telecamera per un platform 2D
Un altro importante l’elemento, che ci sarà utilissimo per creare il nostro platform 2D, è la presenza del comando Follow, che imposta la telecamera virtuale in maniera tale che segua i movimenti di un determinato sprite, nel nostro caso quello del personaggio giocabile. Usando il solito sistema drag and drop, possiamo trascinare il nostro personaggio presente nella Hierarchy nella casella Follow del menu della Virtual Camera. Da questo momento in poi, la Virtual Camera seguirà il nostro personaggio, esattamente come avviene nella maggior parte dei platform. Osserviamo quindi come la telecamera segue il personaggio, anche nel momento in cui salta.
Possiamo naturalmente gestire le varie opzioni di Cinemachine, per rendere la telecamera ancora più simile a quella dei platformer a cui giochiamo di solito. Per esempio, possiamo impostare un punto in cui la telecamera intorno al personaggio non si muove affatto, così da dare un punto di riferimento visivo per il giocatore. Questa zona si chiama Dead Zone, e possiamo impostarne la larghezza, l’altezza e persino la profondità. Il consiglio generale è di giocare con tutte queste impostazioni, fino a che non si ottiene un sistema di telecamere fluido e allo stesso tempo interessante.
Le opzioni Lookahead di Cinemachine
In questo senso, un’altra opzione molto utile è il cosiddetto Lookahead. Come suggerisce il nome, questi parametri influenzano il modo in cui la visuale precede il personaggio, e possiamo vederli in azione alterando lo slider Lookahead Time. Lo slider Lookahead Smooth, invece, renderà più fluido il movimento di questa transizione. Possiamo osservarne il funzionamento facendo partire il gioco: il puntino giallo, che rappresenta il tracciamento del personaggio operato dalla telecamera, sarà spostato in avanti rispetto al personaggio. Questo permetterà al giocatore quindi di avere un maggiore controllo sull’ambiente circostante, evitando così incresciose situazioni, come calcolare male il salto su una piattaforma e finire nel vuoto, poiché non si ha avuto la possibilità di vedere quello che succedeva di fronte a noi. Naturalmente anche in questo caso bisogna fare fare prove prima di ottenere quello che restituisce il “look and feel”, nel nostro caso quindi basterà impostare un valore di Lookahead Time pari a 0.3.
Un’altra opzione interessante è la cosiddetta Soft Zone che, similmente alla Dead Zone, può essere modificata in larghezza e altezza. La Soft Zone è un riquadro che limita i movimenti del tracciatore in una determinata area, e può essere utile nel caso vogliamo evitare che la telecamera faccia dei movimenti troppo esuberanti. Al contrario, nel caso in cui stessimo creando un platformer dove il personaggio si muove a grande velocità, sarà bene allargare al massimo i confini della Soft Zone, se non addirittura bloccarla del tutto usando l’opzione Unlimited Soft Zone. Unity comunque ci mostra tutte queste impostazioni tramite dei rettangoli di diverso colore, per cui possiamo tenere sotto controllo sempre tutti i parametri, come possiamo vedere nella screenshot.