Freaky Friday #4 – Creare video giochi con Unreal Engine 4

Freaky Friday #4 – Creare video giochi con Unreal Engine 4

Unreal Engine è un potente motore grafico 3D sviluppato da Epic Games che permette di sviluppare videogiochi di settima ed ottava generazione. Creato nel 1998, oggi è disponibile nella versione 4.11.2 e tiene testa ai degni concorrenti del calibro di Unity 3D e CryEngine.

Lo scorso Freaky Friday è stato dedicato al videogioco Evil Seal, creato dal nostro Raffaele Mandese che ci ha entusiasmato raccontandoci i passaggi per l’autenticazione e la creazione di un nuovo personaggio.

Dalla schermata di avvio è possibile creare un progetto, partendo dal linguaggio di programmazione a grafo “Blueprint”, sviluppato da Epic Games. In alternativa con il C++ si ottiene una maggiore velocità di elaborazione dei metodi.

Purple Ocean - Unreal Engine new project

Purple Ocean – Unreal Engine new project

Una volta impostato il progetto, il motore grafico può subito inizializzare il gioco partendo da uno scenario minimo. Un gioco basato su Unreal Engine è caratterizzato di solito da due layer distinti: il primo è dedicato alla user experience dell’utente.

Questo livello è chiamato “UMG”, un oggetto Blueprint dentro al quale vengono inizializzati i Widget, che sono altri Blueprint che descrivono porzioni di user experience. Un Widget, ad esempio, può essere il menu delle opzioni del videogioco, oppure la barra di energia del personaggio e così via.

Purple Ocean - Unreal Engine

Purple Ocean – Unreal Engine

Le classi principali di un progetto Unreal Engine possono essere visionate dal menu di impostazioni, sotto la voce Maps & Modes. Tra queste c’è il GameMode, un Blueprint per la gestione della “meccanica” del videogioco. È utilizzando questo Blueprint che si può creare un personaggio, definire il suo HUD (per la user experience) oppure l’obiettivo del gioco, eccetera.

Ogni Blueprint in Unreal Engine eredita alcune impostazioni predefinite ed alcuni metodi: BeginPlay, Tick e Construct. Quest’ultimo è un evento che viene scatenato dal motore grafico quando inizializza il Blueprint. Mentre BeginPlay è l’evento che viene richiamato quando il Blueprint è predisposto per l’avvio del gioco.

Map & Modes

Map & Modes

Infine, Tick è un evento che viene richiamato a gioco avviato, ad un intervallo configurabile o dalle impostazioni del progetto, o dal Blueprint stesso. La frequenza predefinita di esecuzione è impostata sul valore zero, che equivale ad ogni frame del gioco.

Per aggiungere un “comportamento” al personaggio, per esempio premendo il tasto “M” vogliamo fare in modo che il personaggio inizi a camminare, useremo un Blueprint chiamato ThirdPersonCharacter associandovi apposite istruzioni che definiranno una variabile “camminata” (“vera” o “falsa” secondo che sia premuto il tasto “M”).

Purple Ocean Blue Print comportamento personaggio Evil Seal

Purple Ocean Blue Print comportamento personaggio Evil Seal

Per attribuire un’animazione basta agire sull’AnimGraph di questa classe Blueprint e modificare l’animazione come illustrato nella figura sottostante:

Questo è il modello che gestisce le animazioni del nostro personaggio. Come possiamo vedere questo modello ha già una gestione delle animazioni che lo fanno camminare, correre ( Idle/Run ) e saltare.

Evil Seal Animation Speed 2

Evil Seal Animation Speed 2

Per camminare e correre si è utilizzato lo stato Idle/Run, che non è altro che un modello Blend 2d che il motore grafico offre agli sviluppatori e che permette di legare delle animazioni ad una variabile, che in questo caso è “Speed”.

esempio Animation Speed Unreal Engine

esempio Animation Speed Unreal Engine

Volendo a questo punto sviluppare un paesaggio entro il quale far muovere il nostro personaggio, agiremo in maniera similare, sui controlli e con i Blueprint relativi ai paesaggi.

Un landscape è caratterizzato da una serie di quadrati che dettano la risoluzione del modello 3d. Ovviamente più è definito il nostro landscape, maggiore sarà lo sforzo da parte del processore grafico.

Allo stesso modo dei personaggi, anche i paesaggi possono acquisire delle peculiarità, per esempio montagne, pianure, eccetera.

esempio Pianura Unreal Engine

esempio Pianura Unreal Engine

Per realizzare l’intelligenza artificiale il motore grafico offre lo strumento di Behavior Tree che serve per descrivere il modello comportamentale.

Qui di seguito vediamo il modello comportamentale realizzato per la classe Zombie nel gioco Evil SealIl behavior tree è composto dal modello comportamentale del personaggio e da un blueprint chiamato “Blackboard” che non è altro che un contenitore di variabili che opportunamente modulate (tramite codice C++) daranno “autonomia comportamentale” al personaggio.

Vi abbiamo incuriosito?

Allora correte a scaricare Evil Seal dal Play Store di Google

Share this post