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
Fisica
Unreal Engine 4 utilizza l'engine fisico PhysX 3.3 per la gestione dei calcoli inerenti la simulazione della fisica e le collisioni. PhysX offre la possibilità di rilevare in maniera accurata le collisioni nonché le interazioni fisiche tra gli oggetti presenti nella scena. Questo contribuisce a incrementare l'immersività di ogni scena, dando ai giocatori la sensazione di interagire effettivamente con la scena e che quest'ultima stia rispondendo alla loro azione in un qualche modo.
Collision Responses e Trace Responses sono i due moduli alla base della gestione che Unreal Engine 4 fa delle collisioni e del ray tracing durante il run time. Ogni oggetto che può collidere viene associato a un Object Type che racchiude una serie di risposte che definiscono come quest'ultimo interagisce con gli altri oggetti. I due oggetti che si ritrovano in prossimità della stessa posizione nello spazio tridimensionale possono impattare l'uno con l'altro, sovrapporsi o semplicemente ignorarsi a seconda dei parametri impostati.
Nell'elenco delle proprietà, infatti, si trovano un sacco di parametri relativi alla fisica a partire dall'impostazione di base che prevede di scegliere tra Simple e Complex Collision. Le collisioni semplici riguardano gli oggetti, le sfere, le capsule e le forme convesse che possono essere modificate tramite l'editor delle mesh. Complex Collision, invece, agisce a livello di poligoni e non può essere associata a un attore in particolare.
Se per due oggetti, come un PhysicsBody e un WorldDynamic, viene spuntata la voce "Block", allora si verificherà una collisione nel momento in cui le posizioni nel mondo di gioco coincideranno. Questa è la condizione minima affinché ci sia un'interazione fisica, ma ovviamente non è sufficiente per avere un impatto che possa definirsi realistico. Se si vuole avere un effetto visivo che sottolinei l'impatto bisogna infatti ricorrere al Blueprint o al codice. Questo potrebbe essere, ad esempio, un evento di calore.
Nel Blueprint della sfera si possono spuntare le voci ReceiveHit e OnComponentHit, ma è ovviamente molto importante che si gestisca l'effetto affinché si verifichi solo quando c'è una collisione.
Quando il dettaglio visivo è particolarmente sostenuto è importante andare a verificare che i calcoli per la fisica siano semplici. È più facile calcolare la fisica, infatti, se i poligoni coinvolti nella collisione sono in numero contenuto. Inoltre, in termini di gameplay, bisogna stare attenti a non far sì che si generino troppi detriti che potrebbero ostacolare il giocatore durante il movimento.
Alla base della gestione della fisica vi è la creazione di mesh capaci di gestire le collisioni. Nel menù Collision all'interno dell'editor delle mesh, infatti, si trovano diverse voci relative ai K-DOP (K discrete oriented polytope). Si tratta di quello che in computer graphics viene definito bounding volume, ovvero un volume di delimitazione contrassegnato da K assi piani allineati che corrispondono grosso modo alla forma della mesh.
Recandosi in Collision Menu -> Auto Convex Collision si ha la possibilità di configurare la Convex Decomposition impostando il numero di parti sensibili alla collisione all'interno della mesh, ovviamente con l'obiettivo di allinearle il più possibile alla mesh finale senza consumare molte risorse di elaborazione. Sono due modi diversi di ottimizzare i calcoli della fisica, che poi possono essere rivisti nel run time con il comando da console show COLLISION, che evidenzia appunto tutti i modelli di collisione presenti nella scena. Stat Game, invece, mostra varie utili statistiche su quanto tempo serve a renderizzare i vari effetti di collisione.
NVIDIA inoltre mette a disposizione di Epic APEX PhysX Lab, uno strumento che può essere utilizzato per generare mesh distruttibili. Unreal Engine 4 al momento non supporta questo strumento nella sua interezza, ma limitatamente ai moduli APEX Destructibles e APEX Cloth. Per creare asset di tipo APEX Cloth, inoltre, si può usare il plug-in DCC per 3Ds Max o Maya o lo strumento standalone incluso dell'SDK Apex. Attori distruttibili con un singolo livello di profondità possono essere creati anche con uno strumento interno a Unreal Engine 4 che si chiama Voronoi.
Uno degli elementi di gioco che più degli altri fanno uso della fisica sono i veicoli. Alla base della creazione di un veicolo vi è una mesh scheletrale e un Physics Asset che ne determini il comportamento in funzione delle regole della fisica. Servono poi un Animation Blueprint, un Vehicle Blueprint, un Blueprint alla base del funzionamento delle ruote e un TireType Data Asset per gestire il comportamento del battistrada e degli altri elementi del pneumatico.
Nel Content Browser si preme su Add New, poi Blueprint e infine si seleziona la voce WheeledVehicle. Operazione che poi va ripetuta per tutte le altre componenti prima elencate, per poi introdurre la configurazione degli input e associare un Blueprint GameMode. Fate doppio-click su quest'ultimo per cambiare la classe Pawn selezionando il Blueprint creato per i veicoli.
In quest'ultimo bisogna anche associare i controlli per ogni asse e gli eventi collegati alle azioni, come è esposto nel dettaglio nella documentazione.
4 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - infoQuesto mi dà lo spunto per fare alcune riflessioni sul mondo del gaming.
- Una cosa è certa: produrre un videogioco richiede veramente tanto impegno ed un enorme lavoro di rifinitura e ciò dovrebbe far riflettere non tanto gli utenti ma gli stessi addetti ai lavori.
Quando bisogna preoccuparsi di così tanti dettagli si rischia di perdere di vista quelle che sono le priorità quali ottimizzazione e scalabilità onde evitare casi eclatanti di cattiva programmazione come quelli emersi negli ultimi tempi (Batman su tutti).
- E' vero anche che il PC è un mercato molto particolare e variegato nonché difficilmente appetibile per chi vede un'efficienza finanziaria superiore nel produrre per gli ecosistemi console eppure, alla fine della fiera, si continua con la politica del multi-piattaforma e delle uscite seriali a ritmi serrati.
Lo sforzo di investimento economico viene spostato sempre di più nel reparto PR e marketing lasciando margini più risicati di risorse (sia di denaro che di tempo) a chi ne ha realmente bisogno: i programmatori!
- Una volta si faceva l'upgrade dell'hardware perché il software sul mercato richiedeva necessariamente una potenza di elaborazione superiore, ora si fa upgrade perché forse si ha la possibilità di far girare meglio il software prodotto frettolosamente.
Ma quanto durerà ancora questo gioco?
l'unreal engine si presenta come tradizione uno strumento potente e flessibile, la mia domanda è però come mai non sembra finora riscuotere il successo che ha avuto il suo predecessore, mi pare non. ci sia ancora alcun annuncio di tripla a che adotteranno l'ue4...
In questo modo già ora ci sono molti giochi indie o comunque con budget limitati che hanno una qualità grafica elevata.
E visto che gli engine di partenza sono multipiattaforma, fare un porting è uno scherzo (rispetto a fare un porting di un gioco normale).
gli inscimmiati
massì, quando il marketing tira, questi sono i risultati
Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".