Unreal Engine 4: gli strumenti, come funziona, cosa cambia
Riprendiamo l'analisi delle caratteristiche più importanti di Unreal Engine 4, in modo da poter capire come funziona alla base un motore grafico di ultima generazione con tutte le sue funzioni, gli strumenti e le varie opzioni grafiche.
di Rosario Grasso pubblicato il 28 Luglio 2015 nel canale VideogamesEpic
Blueprints Visual Scripting
Blueprints Visual Scripting è il sistema di gameplay scripting di Unreal Engine 4 basato su un'interfaccia strutturata intorno a nodi e permette di creare elementi di gameplay direttamente all'interno dell'Unreal Editor. Si tratta di un sistema estremamente potente, facile da usare, che dispiega il massimo potenziale in termini di opzioni di gioco per i designer di videogiochi, senza ricorrere al codice.
Tramite Blueprints si possono infatti impostare le regole del gioco e modificare le condizioni di gameplay, creare diverse varianti di personaggi e associare a loro dei materiali, cambiare la posizione delle videocamere e la loro prospettiva durante il gameplay, modificare al volo il funzionamento del sistema di controllo, gestire oggetti per lo scenario generati proceduralmente.
Fondamentalmente, quindi, Blueprints è un sistema integrato in Unreal Engine 4 che consente di creare visivamente degli script di gioco collegando nodi, eventi e funzioni. I tipi di Blueprint con i quali gli sviluppatori si troveranno a che fare in prima istanza sono Level Blueprints e Blueprint Classes, ma esistono, tra gli altri, anche Blueprint Macros e Blueprint Interfaces.
Level Blueprint in realtà è l'evoluzione dello strumento conosciuto come Kismet in Unreal Engine 3. Ogni mondo di gioco, infatti, è associato al proprio Level Blueprint che permette di gestire e manipolare gli attori presenti nel livello, di modificare il comportamento delle inquadrature e di controllare le sequenze di narrazione tramite gli attori Matinee. Si gestisce tutto il funzionamento dei livelli di gioco con questo strumento, quindi anche i checkpoint o come deve avvenire il level streaming.
Il Level Blueprint poi interagisce con le classi Blueprint, attraverso le quali gli sviluppatori possono rendere interattivi oggetti come porte, pulsanti, collezionabili ed elementi soggetti a distruzione. Questi tipi di Blueprint contengono gli script necessari perché il livello di gioco reagisca all'input del giocatore con oggetti che si animano, emettono suoni e cambiano la loro composizione sulla base delle azioni del giocatore stesso. La struttura è inoltre pensata in modo che il creatore di livelli possa riutilizzare gli stessi Blueprint per funzioni uguali o leggermente differenti, senza dover rifare lo stesso lavoro per ogni elemento di gioco.
Un tipo di classe Blueprint è quella conosciuta come Construction Script, che entra in azione quando un attore viene inserito nel livello di gioco o viene aggiornato. Serve per gestire dei cambiamenti che occorrono all'attore nel momento in cui si verificano certi avvenimenti. Può essere usato, ad esempio, per variare il comportamento di un elemento di vegetazione che deve sparpagliare delle foglie in maniera randomica.
Anche i Pawn sono un esempio di classe Blueprint, visto che tramite lo strumento di scripting è possibile impostare il comportamento della videocamera e gli eventi associati agli input realizzati tramite mouse, tastiera, gamepad o dispositivi touch. Vi si può aggiungere anche un Animation Blueprint per la gestione delle animazioni scheletrali delle mesh.
Gli script di Blueprint possono essere usati pure per gestire l'HUD di gioco. Anche questo è simile alle classi Blueprint perché può contenere sequenze di eventi e variabili, ma che stavolta è assegnato a GameMode invece di essere aggiunto direttamente al livello.
L'HUD deve interagire con lo strumento che si occupa di gestire l'andamento del gioco perché deve visualizzare lo stato di salute del personaggio, fornire indicazioni sul prossimo obiettivo da raggiungere, aggiornare il dato sul punteggio. Nei giochi mobile l'HUD può essere usato anche per gestire hit-box da associare a pulsanti.
Altri dettagli sulla creazione di aspetti di gioco con Blueprints si trovano qui e qui.