Tutorial Unity Cinemachine e Timeline

Cinemachine è un pacchetto per Unity che offre agli sviluppatori un controllo professionale della telecamera e migliora la capacità di creare filmati cinematografici.

Questo tutorial tratterà i seguenti argomenti:

  • Installazione Cinemachine
  • Configurazione della videocamera in terza persona
  • Creazione di filmati della sequenza temporale

Installazione Cinemachine

Per installare Cinemachine, procedi nel seguente modo:

  • In Unity vai su Finestra -> Gestore pacchetti

Menu Unity Package Manager

  • Cambia i pacchetti in "Unity Registro"

Registro Unity Package Manager

  • Seleziona "Cinemachine" dall'elenco, quindi fai clic "Install"

La Cinemachine è ora pronta per l'uso.

Configurazione della videocamera in terza persona

Di seguito mostrerò come configurare una videocamera in terza persona utilizzando la videocamera virtuale di Cinemachine.

Una videocamera virtuale è una versione leggera di una videocamera Unity, che non esegue il rendering da sola, ma viene semplicemente utilizzata come punto di riferimento per la videocamera principale.

Come esempio per questo tutorial, userò un controller in terza persona, tranne che senza impostare la collisione della videocamera e senza spostare la videocamera all'interno della gerarchia del giocatore:

Sharp Coder Lettore video

Come puoi vedere, il giocatore si sta muovendo ma la telecamera non lo segue.

Configurare una videocamera in terza persona utilizzando Cinemachine è davvero semplice:

  • Vai su GameObject -> Cinemachine -> Virtual Camera per creare una nuova fotocamera virtuale

Cinemachine crea una telecamera virtuale

  • Assegna un nome alla videocamera virtuale "TPS Camera"
  • Seleziona TPS Camera e in CinemachineVirtualCamera assegna la variabile Segui (nel mio caso sarà l'oggetto "CameraParent", che si trova all'interno di una gerarchia del giocatore e rappresenta la rotazione verticale dell'aspetto)
  • Imposta il valore del corpo su "3rd Person Follow"
  • Imposta Ignore Tag su "Player" e seleziona anche l'oggetto root del player e imposta il suo tag su "Player" (se ci sono dei child colliders nella gerarchia del player, assicurati di cambiare i loro tag in "Player" anche)
  • Modifica altri valori in CinemachineVirtualCamera come Camera Distance, Camera Side, Shoulder Offset e Damping finché non sei soddisfatto del risultato.
  • Imposta il valore Aim di CameraParent su "Do nothing"

Valori del componente CinemachineVirtualCamera

La telecamera ora dovrebbe seguire il giocatore:

Sharp Coder Lettore video

Creazione di filmati della sequenza temporale

Qui mostrerò come comporre un filmato usando Unity's Timeline.

Timeline è un editor integrato che consente agli sviluppatori di comporre filmati animando la telecamera e anche utilizzando animazioni esistenti (ad es. Camminata del personaggio), oltre a eventi e segnali disponendoli in modo sequenziale.

Il pacchetto Cinemachine aggiunge alcune opzioni extra a un editor Timeline, come la possibilità di passare da una telecamera virtuale all'altra.

Per creare un filmato, procedi nel seguente modo:

  • Crea un nuovo GameObject e chiamalo "TimelineManager"
  • Apri la finestra Timeline andando su Finestra -> Sequenza -> Timeline

Menu della sequenza temporale della sequenza della finestra di Unity

  • Seleziona "TimelineManager" Oggetto e nella finestra della sequenza temporale, dovresti vedere un'opzione per creare un componente Director e una risorsa della sequenza temporale, fai clic su di essa.

Cinemachine crea il componente Director e una risorsa Timeline

  • Dopo aver creato il componente Director e l'asset Timeline, dovresti vedere la finestra Timeline vuota (assicurati che l'oggetto TimelineManager sia selezionato per poterlo modificare).

Finestra della sequenza temporale di Cinemachine

  • Ora possiamo iniziare ad aggiungere componenti alla timeline facendo clic con il pulsante destro del mouse sulla finestra.

Creazione dei componenti della sequenza temporale

Come puoi vedere, la finestra Timeline ha varie opzioni:

  • Track Group - questo è un gruppo che può contenere azioni della sequenza temporale ed è utile per l'organizzazione.
  • Activation Track - questo definisce l'oggetto che dovrebbe essere attivo solo durante un determinato periodo di tempo.
  • Traccia di animazione: riprodurrà un'animazione specifica durante un determinato periodo di tempo.
  • Traccia audio: riprodurrà un audio specifico durante un periodo di tempo prestabilito.
  • Control Track - una traccia le cui clip controllano gli elementi relativi al tempo su un GameObject.
  • Signal Track: consente di eseguire un'ampia varietà di azioni su un oggetto di gioco specifico in un momento specifico (ad es. attivare lo script di movimento del giocatore o chiamare una funzione specifica quando la sequenza temporale raggiunge un determinato fotogramma, ecc.)
  • Traccia riproducibile - una traccia le cui clip sono riproducibili personalizzate.
  • Cinemachine Track: consente di fondersi tra più telecamere virtuali cinemachine.

Ai fini di questo tutorial, utilizzerò solo la Animation Track e la Signal Track.

Impostare

  • Crea un'altra videocamera virtuale e chiamala "CutsceneCamera" e imposta il suo valore "Priority" a un livello superiore a "TPS Camera" (es. 11)
  • Fai clic con il pulsante destro del mouse nella vista del progetto -> Crea -> Segnale e assegnagli un nome "DisablePlayer"

Unity crea un segnale temporale

  • Duplica il segnale "DisablePlayer" e rinominalo in "EnablePlayer"

Unity Timeline Signal Assets

  • Crea un nuovo GameObject nella scena e chiamalo "SignalReceiver"
  • Allega componente SignalReceiver a un oggetto "SignalReceiver"
  • Fai clic su "Add Reaction" 2 volte
  • Assegna "DisablePlayer" a una prima reazione e "EnablePlayer" a una seconda reazione

Unity Timeline Signal Aggiungi reazione

"DisablePlayer" attiverà la telecamera del filmato, disattiverà la telecamera del giocatore e lo script di controllo del giocatore e verrà posizionato all'inizio della sequenza temporale.

"EnablePlayer" disattiverà la telecamera del filmato, attiverà la telecamera del giocatore e lo script di controllo del giocatore e verrà posizionato alla fine della sequenza temporale.

  • Fare clic su (+) per aggiungere uno slot di reazione, quindi assegnare l'oggetto il cui script o componente doveva essere attivato/disattivato.

Suggerimento: per creare un segnale opposto, puoi semplicemente impostare le reazioni per "DisablePlayer", quindi fare clic sull'icona a forma di ingranaggio -> Duplica, cambiare il segnale in "EnablePlayer" e invertire le caselle di controllo.

Segnale duplicato di unità

Impostazione delle reazioni del segnale della sequenza temporale dell'unità

  • Seleziona l'oggetto "TimelineManager", quindi nella finestra Timeline aggiungi una nuova traccia del segnale facendo clic con il pulsante destro del mouse -> Traccia del segnale, quindi assegnagli l'oggetto "SignalReceiver".
  • Trascina e rilascia "DisablePlayer" l'asset del segnale all'inizio della timeline e "EnablePlayer" nel fotogramma in cui vuoi che termini il filmato:

Anteprima del segnale della sequenza temporale dell'unità

Ciò renderà lo script del controller del giocatore e la telecamera disattivati ​​all'inizio e quindi riattivati ​​una volta che la sequenza temporale raggiunge la fine.

Infine, creeremo una semplice animazione della telecamera.

  • Fai clic con il pulsante destro del mouse su Timeline -> Traccia animazione quindi assegna "CutsceneCamera" (questo richiederà di aggiungere il componente Animator all'oggetto se non ce n'è nessuno)
  • Fare clic sul pulsante di registrazione

Record di clip di animazione della sequenza temporale dell'unità

  • Sposta leggermente "CutsceneCamera", in modo che venga applicato il fotogramma chiave, quindi sposta la maniglia del fotogramma della sequenza temporale fino alla fine e, infine, sposta la videocamera in una nuova posizione, quindi fai clic su Interrompi registrazione.

Cronologia del filmato di Unity Cinemachine

Premiamo play e vediamo il risultato:

Sharp Coder Lettore video

Il filmato viene riprodotto all'inizio del gioco.

Articoli suggeriti
Come dipingere alberi sul terreno in Unity
Come importare animazioni in Unity
Tutorial sul gamepad per Unity
Costruire un sistema di menu interattivo in Unity
Scegliere lo Skybox giusto per il tuo ambiente in Unity
Strategie per proteggere Unity Games dalla pirateria
Come realizzare un gioco ispirato a FNAF in Unity