Ci sono molti modi diversi di lavorare con una visuale nei giochi e possono variare molto a seconda del tipo di gioco che stai creando. In Unreal Engine, le visuali sono normalmente composte da un attore con un componente avente un braccio molla e un componente visuale, che restituisce la visualizzazione. Per la configurazione base della visuale, consulta Utilizzo delle visuali in Unreal Engine.
In questa pagina di documentazione, gli sviluppatori tratteranno come hanno deciso di implementare la visuale specificamente per Parrot ed eventuali impostazioni degne di nota.
Sottosistema visuale Parrot
Per iniziare, è stata individuata ciascuna mappa che può avere impostazioni di visuali specifiche per il mondo.
Gli sviluppatori hanno creato UParrotCameraSubsystem, che condivide la durata di vita del mondo e inizializza la visuale con queste impostazioni su BeginPlay. Le impostazioni specifiche della mappa sono memorizzate su AParrotWorldSettings, che è utile per memorizzare qualsiasi dato per mappa. Per la visuale, questa è la classe di visuale desiderata, la modalità di movimento, e il limite superiore/inferiore su Z dove vogliamo che la visuale non segua più il giocatore. La classe stessa è opzionale e non fornirne una è un percorso valido. Ciò si effettua dal menu principale.
Per il ragionamento sulla scelta di utilizzare un sottosistema, fai riferimento alla documentazione Sottosistemi in Parrot.
Le impostazioni del mondo si trovano nel pannello Impostazioni mondo nell'editor.
Visuale Parrot
AParrotCamera è dove avviene il grosso della logica. Quando la visuale è inizializzata dal sottosistema, vengono stabiliti dalle impostazioni del mondo il giocatore da seguire, la modalità di movimento e i confini.
La visuale ha tre possibili modalità di movimento: Nessuna, Fissa e Segui.
Nessuna è esattamente come descritto. La visuale non effettua alcun movimento.
La modalità di movimento Fissa è semplice. Quando il giocatore entra in un limite di volume, alla visuale viene assegnata dal sottosistema visuale una posizione fissa cui segue l'interpolazione. Il giocatore è dunque libero di muoversi finché è aggiornata la modalità di movimento.
La modalità di movimento Segui è più complessa e meglio comprensibile tramite l'esempio visivo di Content/Blueprints/BP_PlatformerCamera. AParrotCamera ha un riquadro di attivazione del movimento e una mesh bloccante come sotto-oggetti predefiniti. Ciò significa che ogni istanza di AParrotCamera li ha automaticamente aggiunti nella sua gerarchia. Entrambi sono allineati con il tronco della visuale, il braccio molla e la prospettiva per avere l'effetto desiderato. Inoltre, questi componenti sono collegati all'attore visuale e lo seguono all'interno del mondo.
La mesh bloccante impedisce che il giocatore si muova all'indietro scontrandosi con il giocatore nel mondo.
Quando il giocatore si sovrappone al riquadro di attivazione del movimento, la visuale tenterà di interpolare fino al valore X del giocatore a una velocità prestabilita. La velocità è moltiplicata per la distanza del giocatore dal grado più a sinistra del volume attivatore. Così facendo, più lontano si trova il giocatore nel volume, più veloce la visuale deve muoversi per stare al passo.
Il risultato è che il giocatore è in grado di muoversi liberamente sul lato sinistro dello schermo fino alla mesh bloccante, tuttavia la visuale si muove con il giocatore quando questo supera la soglia. Questa caratteristica fornisce un effetto interessante mentre il giocatore si muove nel mondo sull'asse X.
Un altro aspetto da notare sulla modalità di movimento è che l'ultima posizione nota del giocatore è tracciata. Se il valore Z del giocatore supera i confini del mondo, o il personaggio giocatore viene distrutto, interpoliamo la visuale all'ultima posizione nota del giocatore. Ciò impedisce un eventuale comportamento stonato della visuale basato sul movimento/sullo stato del giocatore.
Infine, il Componente visuale stesso su BP_PlatformerCamera ha qualche impostazione che vale la pena far notare. La Modalità proiezione è "Prospettiva" con un FOV di 90 gradi e un rapporto d'aspetto di 1,77 che è HD standard. In Opzioni visuale, vincoliamo il rapporto d'aspetto cosicché la visuale appaia sempre corretta indipendentemente dalla risoluzione di esecuzione dell'applicazione.