Questa pagina è associata al modello Il talismano: ambiente che illustra le migliori prassi per creare ambienti altamente dettagliati e realistici. Il talismano è stato creato utilizzando le migliori prassi per la costruzione modulare e l'ottimizzazione in Unreal Editor per Fortnite (UEFN).
Puoi trovare il modello nella sezione Esempi di funzionalità del Navigatore progetti.
Puoi giocare all'esperienza Il talismano mostrata durante la Game Developers Conference 2024 aprendo Fortnite e inserendo il codice isola 7100-3544-3074.
Posizione di Il talismano: ambiente nel Navigatore progetti.
Questa panoramica illustra le sfide di ottimizzazione affrontate durante la creazione del progetto Il talismano e in che modo ciascuna sfida è stata superata:
Poiché il modello è progettato per funzionare su tutte le piattaforme disponibili, gli asset e lo stile di Il talismano devono essere conformi ai requisiti di memoria e di dimensione del progetto di UEFN. Questo comporta diverse sfide per i progetti realizzati con uno stile artistico più dettagliato:
Dimensione del progetto: gli asset dei giochi con un livello di dettaglio elevato possono raggiungere grandi dimensioni e il limite delle dimensioni del progetto di UEFN è di 400 MB.
Limiti della memoria di runtime: UEFN ha una restrizione di memoria di 100.000 unità di memoria in streaming che limita la quantità di asset, paesaggi personalizzati e dispositivi che possono essere presenti sullo schermo contemporaneamente.
Qualità su tutte le piattaforme supportate: tali limitazioni garantiscono che l'esperienza UEFN sia disponibile per tutti i giocatori e su qualsiasi piattaforma supportata da Fortnite.
UEFN supporta una vasta gamma di tecniche per soddisfare questi requisiti, tra cui i livelli di dettaglio (LOD), i livelli gerarchici di dettaglio (HLOD), la partizione del mondo, le istanze di livello e i livelli dati.
Utilizzo delle buone prassi
Il modello Il talismano: ambiente è stato progettato per illustrare una serie di buone prassi e procedimenti per portare il realismo dei tripla A in Unreal Editor per Fortnite. Questo modello utilizza le seguenti buone prassi per gestire la memoria del progetto e dello streaming e ottimizzare le prestazioni:
Creare contenuti personalizzati, modulari e leggeri.
Migliora l'aspetto della geometria delle superfici dure utilizzando le normali ponderate per il viso.
Aggiungere dettagli alle mesh con l'utilizzo di decalcomanie.
Costruire l'esperienza di gioco a partire dalla piattaforma con le prestazioni più basse e aggiungere le funzionalità progressivamente.
Ridurre al minimo le draw call sulle mesh non-Nanite.
Creare contenuti personalizzati modulari e leggeri
L'ambiente di Il talismano è stato creato utilizzando il kitbashing, una tecnica di modellazione modulare che utilizza mesh preesistenti da un ambiente modulare e le riutilizza per creare nuovi asset. Con il riutilizzo degli asset, gli artisti sono riusciti a contenere le dimensioni del progetto, riducendo al minimo il numero di mesh monouso.
Questo asset è composto da sei diverse mesh statiche.
In genere, gli artisti creano questo tipo di ambiente mappando una mesh a dettaglio elevato e ad alto numero di poligoni su una mesh a basso numero di poligoni, utilizzando mappe normali. Questo metodo richiede mappe di texture aggiuntive che possono aumentare la dimensione del tuo progetto, risultano costose durante l'esecuzione e non si adattano bene durante il processo di kitbashing.
Per ottimizzare la memoria, sono state utilizzate mesh a media poligonazione con normali ponderate per la faccia e Decalcomanie delle mesh per l'aggiunta di piccoli dettagli.
Per maggiori informazioni, vedi Progettazione e costruzione delle mesh.
Costruire l'esperienza di gioco per tutte le piattaforme di destinazione
Fortnite è progettato per funzionare su diverse piattaforme. Per far sì che i contenuti offrano ai giocatori la migliore esperienza su ciascuno di questi dispositivi, è importante progettare tenendo conto di tutte le piattaforme, per poi integrare le funzionalità aggiuntive per le piattaforme di fascia alta in fase di sviluppo.
Ad esempio, la geometria virtualizzata di Nanite aiuta le piattaforme a eseguire il rendering di mesh altamente dettagliate e a migliorare le prestazioni, ma è disponibile solo per alcuni dispositivi di fascia alta come i PC con DirectX 12. Per questo motivo, è necessario ottimizzare i contenuti in modo che funzionino bene su tutte le piattaforme.
Le seguenti immagini mostrano i LOD delle mesh con impostazioni Epiche, Alte, Medie e Basse.
Per maggiori informazioni sulla creazione di asset personalizzati per UEFN, vedi Progettazione e costruzione delle mesh.
Ridurre al minimo le draw call sulle mesh non-Nanite
Le draw call sono il processo che indica all'API della grafica cosa disegnare e come disegnarlo per ciascun frame. Nanite bypassa le draw call standard, trasmettendo la geometria in streaming nella scena secondo le necessità. Per le mesh non-Nanite, ciascuno dei seguenti elementi avvia una draw call nella scena:
Tutte le mesh individuali.
Tutti i materiali su una mesh.
Tutte le luci.
Tutte le ombre proiettate.
Il modello Il talismano: ambiente utilizza mesh Nanite e non-Nanite. Per ottimizzare le prestazioni durante l'utilizzo di mesh non-Nanite, il numero di draw call nella scena è stato minimizzato:
Rimozione delle mesh non essenziali.
Rimozione delle decalcomanie delle mesh non essenziali.
Rimozione delle luci che proiettano ombre e integrazione con le funzioni di luce.
Gestione dei limiti di memoria del progetto e del runtime
La gestione della memoria di runtime e la gestione delle dimensioni del progetto sono componenti chiave di qualsiasi progetto realizzato in UEFN. L'ambiente de Il talismano affronta queste sfide:
Restringimento dell'ambito del progetto.
Riutilizzo degli asset personalizzati.
Gestione della memoria di runtime.
Restringimento dell'ambito del progetto
Per rispettare il limite di 400 MB di dimensione del progetto, il personaggio MetaHuman è stato spostato nel modello Il talismano: MetaHuman. Puoi trovare questo modello nella sezione Esempi di funzionalità del Navigatore progetti. Per saperne di più sui MetaHuman in UEFN, vedi Il talismano: modello MetaHuman.
Livelli di dettaglio
Ciascuna mesh utilizzata per realizzare Il talismano utilizza tre livelli di dettaglio (LOD) per mantenere il progetto entro il limite di 100.000 unità di memoria in streaming.
Le impostazioni LOD automatiche si trovano nel browser delle Mesh statiche.
Le mesh LOD vengono generate automaticamente utilizzando gli strumenti LOD automatici di UEFN e associate a livelli di qualità specifici. Per maggiori informazioni sull' utilizzo dei livelli di dettaglio in UEFN, consulta Impostazione del livello di dettaglio.
Gestione della memoria di runtime
Il modello Il talismano: ambiente utilizza una soluzione di streaming personalizzata creata utilizzando livelli dati e Sequencer per mantenere il livello entro il budget di 100.000 unità di memoria in streaming. Le dimensioni verticali di aree come l'area cargo e la lunghezza dei corridoi facevano sì che la nave non rientrasse nella griglia di streaming World Partition.
In Il talismano, ciascun livello dati corrisponde a una stanza diversa.
Per superare questa limitazione, i livelli dati sono stati combinati con il Sequencer per caricare e scaricare le aree della nave in base alla posizione del giocatore.
Le zone mutatore innescano eventi di caricamento nella sequenza livelli.
Ogni stanza ha il proprio livello dati corrispondente e le zone mutatore sparse in tutta la nave che attivano eventi nella Sequenza livelli. Questi eventi caricano e scaricano sezioni della nave mentre il giocatore si muove nel livello. Le zone mutatore sono posizionate strategicamente in diverse aree della nave per nascondere questo aspetto al giocatore.
Questa soluzione non è compatibile con le esperienze multigiocatore. I livelli dati e le sequenze livelli sono stati inclusi, ma le zone mutatore sono state rimosse per rendere il modello compatibile con la modalità multigiocatore.
Utilizzo di elementi della UI personalizzata
Questo modello utilizza Verse per visualizzare un widget icona dell'incarico personalizzato e riprodurre l'audio quando il giocatore interagisce con la console nella stanza di partenza.
Lo stendardo dell'incarico personalizzato viene attivato dallo script Verse.
Quando il giocatore utilizza il dispositivo Pulsante VO degli alloggi della Crew, il file di script starting_sequence_device.verse:
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /Fortnite.com/Characters }
using { /UnrealEngine.com/Temporary/UI }
using { /UnrealEngine.com/Temporary/Diagnostics }
Annulla l'audio di benvenuto se il messaggio audio è ancora in riproduzione.
Attiva una minimappa della nave per aiutare i giocatori a esplorare Il talismano.
Visualizza il Blueprint widget della UI personalizzata quest_icon_widget.
Riproduci una clip audio.
Per maggiori informazioni sull'utilizzo di Verse per personalizzare i tuoi progetti UEFN, consulta la Guida introduttiva alla programmazione di Verse.
Illuminazione di grandi spazi
Il talismano utilizza illuminazione globale Lumen per illuminare l'ambiente, offrendo al giocatore ombre realistiche e un'illuminazione indiretta accurata in tutta la nave.
Questo corridoio mostra tutte le tecniche qui descritte.
Lumen fornisce occlusione ambientale e illuminazione globale agli oggetti non esposti alla luce diretta. Sebbene Lumen sia uno strumento potente per creare soluzioni di illuminazione, è comunque importante ottimizzare l'ambiente per massimizzare le prestazioni. Lumen viene utilizzato con il modello Il talismano: ambiente con diverse ottimizzazioni.
La proiezione delle ombre è disattivata per tutte le mesh statiche con illuminazione indiretta presenti nel livello. Lumen fornisce ombre di altissima qualità sulle mesh, pertanto la disattivazione della proprietà Proiezione delle ombre migliora le prestazioni senza compromettere la qualità visiva.
La maggior parte delle luci nel modello ha Proiezione delle ombre disattivata.
La Proiezione delle ombre è inoltre migliorata attraverso l'uso di funzioni di luce e una texture a strisce con alcune luci posizionate in alto.
Il rumore di Lumen e lo sfarfallio della luce dei pannelli luminosi emissivi sono ridotti abbinando a ciascuno di essi un riflettore che non proietta ombra.
Questo riflettore migliora la luce proveniente da questo pannello luminoso
Il valore emissivo di ciascun pannello viene ridotto e supportato da un riflettore che non proietta ombra. Ciascun riflettore ha un piccolo raggio d'azione e fornisce una luce aggiuntiva, dando l'impressione che la luce provenga comunque dal pannello luminoso.
L'illuminazione ambientale è stata ulteriormente ottimizzata, riducendo al minimo la distanza massima di generazione per ciascuna luce. Questa impostazione abbatte ogni luce dalla visuale quando non è necessario renderizzarla.
Il visualizzatore Complessità di illuminazione è stato utilizzato anche durante l'illuminazione di Il talismano.
Il visualizzatore della Complessità di illuminazione può essere attivato con Alt+7
Questa modalità di visualizzazione della viewport mostra il numero di luci non statiche che influenzano la geometria del livello tramite ombreggiature colorate, facilitando il monitoraggio il costo delle prestazioni dell'illuminazione. Questo visualizzatore è utile per ridurre al minimo la sovrapposizione delle luci nel livello al fine di abbassare i costi di prestazione.
Progettazione e costruzione delle mesh
Per creare gli interni dettagliati de Il talismano, sono stati utilizzati kitbashing e mesh personalizzate a media poligonazione. Il kitbashing è una tecnica molto efficace che consente di ridurre al minimo il numero di asset necessari per il progetto, offrendo al contempo la possibilità di riutilizzare e combinare le mesh per creare nuove geometrie.
Ogni mesh del progetto utilizza una serie di tecniche per migliorare l'aspetto dell'asset senza aggiungere ulteriore geometria.
Le normali ponderate per le facce sono una tecnica che permette di allineare le normali dei vertici del modello con le facce più grandi e piatte, migliorando l'ombreggiatura senza ridurre le prestazioni.
Le normali dei vertici (linee verdi) si allineano alle facce più grandi e piatte per migliorare l'ombreggiatura.
Dettagli come bulloni, marchi e danni sono stati aggiunti utilizzando le Decalcomanie delle mesh. Le decalcomanie utilizzano UV personalizzate per proiettare geometrie complesse sulle superfici e possono avvolgersi intorno agli angoli o estendersi lungo le spline senza che il loro aspetto risulti alterato.
Progettazione dei materiali mediante il controllo dinamico dei materiali
Spesso, le texture e i materiali sono la parte più grande di qualsiasi progetto UEFN. Per ridurre ulteriormente le dimensioni del progetto, il modello utilizza un approccio dinamico alle texture e ai materiali che evita l'uso di mappe di texture uniche. Per ottenere questo risultato finale, è stato utilizzato un flusso di lavoro procedurale che memorizza i dati di occlusione ambientale, curvatura e maschera della mesh utilizzando i Colori dei vertici. I dati memorizzati sono stati quindi utilizzati per applicare e fondere i materiali.
Dati del Colore del vertice
È preferibile evitare l'utilizzo di mappe di texture uniche per ogni asset, raggruppando i dati dell'occlusione ambientale, della curvatura e della maschera della texture di ciascuna mesh con i Colori dei vertici. Le mesh de Il talismano sono progettate con una geometria di supporto e una densità di mesh (poligoni per pollice quadrato) che garantisce una sfumatura graduale tra i colori dei vertici. Ciò contribuisce a creare transizioni pulite tra i materiali.
I dati vengono memorizzati con il metodo seguente:
| Mappa | Canale colore |
|---|---|
Occlusione ambientale | Rosso |
Curvatura | Verde |
Maschera ID del materiale | Blu |
Per maggiori informazioni sulla colorazione dei vertici, vedi Materiale del Colore vertice.
Gli slot materiale su ogni mesh vengono quindi utilizzati per definire quale parte della mesh riceve un determinato materiale. Per maggiori informazioni sugli slot materiale, consulta Pipeline materiale FBX.
Questa sedia è dotata di slot materiale per il metallo e la gomma.
Controllo dinamico dei materiali
Le mesh de Il talismano utilizzano una combinazione di cinque tipi di materiali principali:
Metallo
Metallo verniciato
Plastica
Gomma
Tessuto
Ogni materiale si basa su un unico materiale principale che utilizza texture a caselle allineate al mondo e parametri definiti dall'utente per generare il risultato. Ciò permette di ridurre il costo complessivo della memoria dei materiali, riutilizzando gli stessi materiali su tutta la nave.
Una parte del materiale principale di Il talismano: ambiente
Anche la polvere, i graffi e altri segni di usura sono inclusi nel materiale principale e vengono applicati alle mesh mediante maschere basate su parametri. Questi parametri sono memorizzati sulla mesh utilizzando dati primitivi personalizzati.
Utilizzo del dispositivo Visuale rotante
Il dispositivo Visuale rotante fornisce una visuale che segue il personaggio del giocatore, ma che il giocatore può ruotare per guardarsi liberamente intorno. Il modello utilizza questo dispositivo per permettere al giocatore di passare da una visuale in terza persona a una visuale simulata in prima persona.
I giocatori possono passare da una visuale all'altra utilizzando il dispositivo Visuale rotante
Ciò avviene tramite lo script Verse camera_switch_mode_device.
# This file handles swapping between different cameras when an input is pressed.
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /Fortnite.com/Characters }
using { /UnrealEngine.com/Temporary/Diagnostics }
Il codice Verse attende che il giocatore attivi l'azione input Creativo target, che per impostazione predefinita è mappata al clic destro del mouse o al grilletto sinistro di un controller. Quindi procede come segue:
Rimuove la telecamera attuale dalla pila di telecamere.
Procede alla telecamera successiva nell'array Telecamere.
Aggiunge la nuova telecamera all'agente.
Nasconde il personaggio del giocatore, se necessario.
Mostra il personaggio del giocatore, se necessario.