Unreal Engine 4: come costruirsi il proprio videogioco

Unreal Engine 4: come costruirsi il proprio videogioco

Con questo articolo vogliamo capire insieme a voi come funziona una tecnologia grafica evoluta come Unreal Engine 4. Andiamo a vedere tutti gli strumenti, le modalità di funzionamento e i risultati che è possibile ottenere con un SDK sempre più alla portata dell'utente comune. L'articolo è diviso in due parti: ci occuperemo prossimamente, infatti, di Matinee, Blueprint Visual Script, SpeedTree, PhysX e molto altro ancora.

di Rosario Grasso pubblicato il nel canale Videogames
Epic
 

Luci

Unreal Engine 4 gestisce quattro diversi tipi di luci: Directional, Point, Spot e Sky. La prima corrisponde al tipo di luce che viene utilizzata soprattutto per gli esterni, con fonte di luce collocata a distanza significativa rispetto al punto di osservazione. Le luci puntiformi, invece, si possono accomunare a quelle emanate da una lampadina, ovvero emettono luce in tutte le direzioni a partire da un punto. Stesso principio si ritrova alla base di Spot, con la luce che proviene da un unico punto ma che poi viene dispersa secondo dei coni di luce.

Unreal Engine 4

Più complicata è invece Skylight, che funziona attraverso una sorgente luminosa emisferica che simula la dispersione della luce dal cielo. Può essere una soluzione conveniente perché non richiede allo sviluppatore di piazzare tante fonti di luci, gestendo l'intera colorazione del livello con una sola applicazione luminosa. Si può anche specificare una Ambient Cubemap per rappresentare il cielo, ma Skylight di Unreal Engine 4 supporta l'ombreggiatura locale, il che consente di mantenere all'ombra gli spazi chiusi rispetto all'illuminazione proveniente dal cielo.

Tornando a Directional Light, simula una fonte di luce che è infinitamente lontana. Ciò significa che tutti i raggi provenienti da questa fonte sono paralleli, rendendo questa soluzione ideale per simulare i raggi solari. Questo tipo di luce, così come le altre, può essere statica, stazionaria o mobile. Nel primo caso abbiamo illuminazioni di tipo baked, che non subiscono modifiche durante l'esperienza di gioco. L'impostazione stazionaria, invece, permette di modificare il colore della luce e la sua intensità, ma tale fonte non si può spostare. Le luci direzionabili mobili, infine, sono completamente dinamiche, si possono muovere e generano ombre dinamiche. Naturalmente sono le più complicate da renderizzare, ma allo stesso tempo le più gratificanti da vedere durante il gameplay.

Unreal Engine 4

Point Lights funzionano in maniera molto simile a una lampadina nel mondo reale, che emette luce in tutte le direzioni a partire dal filamento in tungsteno interno. Tuttavia, per un fatto di prestazioni, alcuni raggi di luce sono semplificati. Un punto di luce, naturalmente, non ha una forma o una consistenza, ma Unreal Engine 4 può conferire alle luci di questo tipo una forma circolare e una lunghezza che permettono loro di interagire con riflessioni e luci speculari. Quest'ultima è la principale differenza rispetto alle luci direzionali, con le ripercussioni che vedremo meglio tra qualche paragrafo.

Unreal Engine 4

Con Spot Light la luce parte ancora una volta da un singolo punto, ma poi si disperde a forma di cono. Gli utenti possono scegliere fra due tipi di coni differenti: Inner Cone Angle e Outer Cone Angle. Mentre nel primo caso possono gestire la massima luminosità, nel secondo caso si verifica una dispersione della luce e si creano zone di penombra o un abborbidimento dell'intensità della luce intorno al cono. Il raggio della fonte della luce definisce anche la lunghezza dei coni.

Unreal Engine 4

Sky Light tiene invece conto degli oggetti presenti nel cielo, come le nuvole o montagne distanti, interpretando tutto il cielo come una fonte di luce emisferica. Anche questa tipologia di illuminazione è presente nelle forme statica, stazionaria e mobile.

Unreal Engine 4

Il sistema che gestisce l'illuminazione globale a partire da fonti di luci statiche all'interno di Unreal Engine si chiama Lightmass. Quest'ultimo, infatti, crea delle lightmap con complessi effetti di luce, zone d'ombra avanzate e riflessioni diffuse. Viene utilizzato per gestire porzioni di scenari di gioco illuminate con luci stazionarie o statiche.

La comunicazione tra Unreal Editor e Lightmass viene realizzata tramite quello che Epic definisce Swarm Agent, il quale può occuparsi della gestione della luce servendosi dell'hardware locale, ma anche inoltrare i calcoli a macchine remote. Swarm Agent informa anche su quali core si stanno occupando degli specifici compiti e come vengono distribuiti i thread tra le unità di elaborazione.

Unreal Engine 4

Lightmass calcola automaticamente le ombre indirette e riesce anche a rimarcare queste ultime qualora ciò possa servire per scopi artistici o per migliorare la percezione di prossimità in certe parti della scena, come accade nel caso dell'occlusione ambientale. Inoltre, Lightmass calcola l'occlusione ambientale, applicandola sia nel caso di illuminazioni dirette che indirette, e infine confezionando il risultato conclusivo in lightmap. L'occlusione ambientale è abilitata di default, ma la si può disabilitare togliendo la spunta alla voce Use Ambient Occlusion in Lightmass Settings all'interno del menù World Settings. La prima delle due immagini seguenti mostra luci indirette senza l'applicazione dell'occlusione ambientale, mentre nella seconda si osserva l'effetto di occlusione ambientale applicato sia sulle luci dirette che su quelle indirette.

Unreal Engine 4

Lightmass considera tutte le fonti di luce, come Point e Spot Light, come una sfera il cui raggio può essere modificato alla voce Light Source Radius nel menù Lightmass Settings. La fonte di Directional Light è invece un disco posizionato al bordo della scena, con conseguente applicazione statica dell'effetto.

Il parametro relativo alle caratteristiche della fonte di luce è molto importante nel determinare il livello di morbidezza delle ombre, visto che più grandi sono le sorgenti di luce e più morbide risultano le ombre. Se la distanza tra la fonte di luce e il punto dello scenario in cui si trova l'ombra aumenta, allora l'ombra sarà ulteriormente più morbida, proprio come nella vita reale.

Nella prima delle due immagini notiamo l'applicazione della semplice luce direzionale statica, mentre nella seconda, con Lightmass in funzione, si tiene conto della dimensione della sorgente di luce e della distanza dall'occlusore.

Unreal Engine 4

La luce che passa attraverso un materiale traslucido perde parte dell'energia, che si trasforma in ombra. La quantità di luce che passa attraverso un materiale in Unreal Engine viene indicata con il termine Transmission, al quale viene associato un valore che va da 0 a 1 per ciascun canale di colore. Il valore 0 indica che il materiale è completamente opaco, mentre 1 indica che la luce passa in maniera completamente inalterata.

Unreal Engine 4

Gli sviluppatori devono tenere in considerazione diversi parametri se vogliono che i loro effetti di illuminazione siano ben evidenti agli occhi dei giocatori e se vogliono tenere bassi i costi in termini di capacità di elaborazione richiesta. Le texture che si contraddistinguono per un alto contrasto cromatico o sono particolarmente scure, ad esempio, rendono l'illuminazione difficile da notare.

Per avere i migliori tempi di rendering degli effetti di luce, lo sviluppatore dovrebbe assicurarsi di usare le lightmap in alta risoluzione solo in quelle zone in cui l'illuminazione cambia di frequente e ridurre la risoluzione per le zone scarsamente illuminate o che non ricevono illuminazione diretta o, ancora, che sono fortemente affette da ombre indirette. Stesso discorso ovviamente si può fare per quelle superfici che non sono visibili dal giocatore, per le quali non importa avere lightmap in alta risoluzione. Si può usare anche il Lightmass Importance Volume di cui abbiamo parlato prima, per alterare la configurazione di Lightmass solo per alcune parti della scena tridimensionale.

Unreal Engine 4

Epic consiglia poi di non usare mesh di grandissime dimensioni, sulle quali la luce deve essere elaborata nella sua interezza. Bisogna, piuttosto, suddividere le mesh in piccole parti, il che consente di avere vantaggi prestazionali soprattutto con quelle macchine dotate di diversi core e buona capacità di parallelizzazione del calcolo. Le mesh con effetto di auto-ombreggiatura e auto-occlusori, inoltre, potrebbero aumentare in maniera eccessivamente importante i tempi di costruzione della build degli effetti di luce. Unreal Engine 4 mette a disposizione la schermata Lighting Build Info, che permette di verificare quanto tempo serve per calcolare la luce per ogni mesh (si trova in Build->Lighting Info->Lighting StaticMesh Info).

Per le altre informazioni su Unreal Engine 4 vi rimandiamo alla seconda parte di questo speciale, che pubblicheremo nei prossimi giorni.

  • Articoli Correlati
  • Unreal Engine 4: come sarà la next-gen? Unreal Engine 4: come sarà la next-gen? Epic Games ha mostrato ufficialmente all'E3 2012 il nuovo step evolutivo della sua tecnologia di motori grafici che, con ogni probabilità, sarà alla base della prossima generazione di videogiochi. Vediamo in questo articolo quali sono le informazioni già note su Unreal Engine 4.
32 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - info
djmatrix61924 Luglio 2015, 17:47 #1
Ora si che siamo tutti pronti a sviluppare un videogioco con UE4.
Menomale che c'e' Rosario!!!
Alekos Panagulis24 Luglio 2015, 17:57 #2
Originariamente inviato da: djmatrix619
Ora si che siamo tutti pronti a sviluppare un videogioco con UE4.
Menomale che c'e' Rosario!!!


A volte le critiche alla redazione di hwupgrade sono doverose, per la povertà e banalità di molto articoli. Ma la maggior parte degli utenti, come te, non fanno altro che lanciare merda per principio.
Non credo che questo articolo abbia la pretesa di essere esaustivo.
djmatrix61924 Luglio 2015, 18:21 #3
Originariamente inviato da: Alekos Panagulis
A volte le critiche alla redazione di hwupgrade sono doverose, per la povertà e banalità di molto articoli. Ma la maggior parte degli utenti, come te, non fanno altro che lanciare merda per principio.
Non credo che questo articolo abbia la pretesa di essere esaustivo.


E' semplicemente un titolo fuorviante.
All'interno non ce' una guida su come costruirsi un videogioco, c'e un articolo sommario su Unreal Engine, tutto qui.
ningen24 Luglio 2015, 18:37 #4
Originariamente inviato da: djmatrix619
E' semplicemente un titolo fuorviante.
All'interno non ce' una guida su come costruirsi un videogioco, c'e un articolo sommario su Unreal Engine, tutto qui.


Perlomeno è più interessante della media degli articoli che si trovano di solito su gamemag
djmatrix61924 Luglio 2015, 18:40 #5
Originariamente inviato da: ningen
Perlomeno è più interessante della media degli articoli che si trovano di solito su gamemag


Ah beh, questo e' vero!!
batou8324 Luglio 2015, 19:07 #6
Io lo trovo un ottimo articolo, anzi spero che ce ne siano anche altri su Unity, Cryengine, etc... Alla fin fine non è che sia così complesso da utilizzare, almeno dal punto di vista dell' "assemblaggio" del mondo di gioco, se si ha già un'infarinatura di applicazioni 3D.
-Maxx-24 Luglio 2015, 20:01 #7
Originariamente inviato da: Alekos Panagulis
A volte le critiche alla redazione di hwupgrade sono doverose, per la povertà e banalità di molto articoli. Ma la maggior parte degli utenti, come te, non fanno altro che lanciare merda per principio.
Non credo che questo articolo abbia la pretesa di essere esaustivo.


Non ha mai avuto questa pretesa, basta leggere queste righe dell'introduzione:

Originariamente inviato da: Articolo di HWU]Con questo articolo non vogliamo certo creare dei nuovi programmatori, anche perché

[QUOTE=djmatrix619;42700366]E' semplicemente un titolo fuorviante.
All'interno non ce' una guida su come costruirsi un videogioco, c'e un articolo sommario su Unreal Engine, tutto qui.


Il titolo sarà anche fuorviante ma ti aspettavi davvero una guida su come realizzare un videogioco in UE4? Non riesco a capire se l'ingenuità è sincera o meno...

Originariamente inviato da: batou83
Io lo trovo un ottimo articolo, anzi spero che ce ne siano anche altri su Unity, Cryengine, etc... Alla fin fine non è che sia così complesso da utilizzare, almeno dal punto di vista dell' "assemblaggio" del mondo di gioco, se si ha già un'infarinatura di applicazioni 3D.


Anche io ho trovato questa lettura veramente interessante, in fondo è cultura videoludica anche questa pur essendo molto tecnica
djmatrix61924 Luglio 2015, 20:45 #8
Originariamente inviato da: -Maxx-
Il titolo sarà anche fuorviante ma ti aspettavi davvero una guida su come realizzare un videogioco in UE4? Non riesco a capire se l'ingenuità è sincera o meno...


Io non riesco a capire l'attinenza del tuo commento, in quanto non mi sono mai aspettato niente, ho solo detto che il titolo e' fuorviante. In realta' non mi aspettavo neanche addirittura un dibattito assolutamente inutile come questo..
-Maxx-24 Luglio 2015, 20:48 #9
Originariamente inviato da: djmatrix619
Io non riesco a capire l'attinenza del tuo commento, in quanto non mi sono mai aspettato niente, ho solo detto che il titolo e' fuorviante. In realta' non mi aspettavo neanche addirittura un dibattito assolutamente inutile come questo..


Ok allora penso che Alekos Panagulis abbia ragione, ciao
djmatrix61924 Luglio 2015, 20:51 #10
Originariamente inviato da: -Maxx-
Ok allora penso che Alekos Panagulis abbia ragione, ciao


..vabbe' lasciamo stare!

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".

La discussione è consultabile anche qui, sul forum.
 
^