Le texture di gioco hanno requisiti specifici per rendering corretto nel gioco. Quando crei texture in Unreal Editor per Fortnite (UEFN) con immagini importate assicurati che il file immagine di origine utilizzi la potenza di due per altezza e larghezza. In questo modo, aumenta la compatibilità e la stabilità della tua isola in piattaforme diverse.
I formati di file compressi delle unità di elaborazione grafica (GPU) devono utilizzare la potenza di due texture in tutte le console, i PC e i dispositivi mobili. Texture non conformi alla regola della potenza di due diventeranno instabili su piattaforme di fascia bassa e potrebbero causare crash nel gioco. La potenza di due viene utilizzata anche nello streaming delle texture per ridurre la risoluzione delle texture sulle piattaforme con meno memoria.
Lo streaming delle texture consente di:
-
Modificare la risoluzione di una texture.
-
Determinare la velocità di caricamento di un gioco.
-
Aumentare la qualità visiva del gioco.
-
Salvare la memoria GPU.
Definizione della potenza di due
Computer e console gestiscono ed elaborano dati in chunk limitati invece che tutti insieme. Si tratta di un principio simile al modo in cui gli sfondi vengono renderizzati utilizzando la [Partizione mondo] (stream-and-hlods-in-unreal-editor-for-fortnite).
Quando sono conformi alla regola della potenza di due, i chunk di dati di gioco stabiliscono un set di limiti fisici e codificati sui supporti multimediali. Se non si rispettano questi limiti, il motore di gioco spreca risorse nel tentativo di renderizzare correttamente asset.
La potenza di due consente di ottimizzare i dati di gioco e renderizzare le immagini in modo efficace per creare esperienze visive accattivanti.
Esempi di dimensioni di immagine accettabili sono: 256x256, 512x512 o 1024x2048. Texture non conformi alla potenza di due non saranno ottimizzate e comporteranno problemi di instabilità e prestazioni ridotte in un'isola.
Grazie alle texture conformi alla potenza di due, UEFN può sfruttare le tre funzionalità chiave seguenti:
-
Compressione delle texture: riduce le dimensioni della memoria di circa otto volte a un costo di qualità visiva minimo.
-
Mipmapping: generazione automatica di varianti a bassa risoluzione
-
Streaming delle texture: mostra una variante a risoluzione più bassa prima di trasmettere in memoria i dati a risoluzione più alta.
Combinate, queste funzionalità permettono di renderizzare anche un asset di qualità elevata con texture in 4K su qualsiasi piattaforma. Ciò si verifica perché le texture avranno varianti di alta qualità a una [risoluzione] ridotta (unreal-editor-for-fortnite-glossary#in-game-resolution).
Ad esempio, una texture di 4000x4000 senza livello alfa richiederebbe 64 megabyte di memoria. Questa texture deve essere caricata interamente e verrebbe visualizzata alla sua risoluzione originale di 4000x4000, anche se ciò potesse causare aliasing su un piccolo billboard posizionato lontano dal giocatore. Dimensioni di texture troppo elevate possono mandare in crash i dispositivi che non hanno abbastanza memoria.
Al contrario, una versione 4096x4096 di una texture che utilizza la compressione predefinita consumerà solo 8 megabyte, effettuerà uno streaming progressivo e produrrà meno aliasing a distanza. Dimensioni troppo elevate potrebbero anche aumentare le dimensioni del pacchetto, senza però causare il crash del gameplay.
Requisiti di ridimensionamento delle texture per UEFN
Per garantire che tutte le isole funzionino bene su tutte le piattaforme di destinazione, UEFN impone alcuni requisiti agli asset di texture.
Se il tuo progetto contiene asset di texture che non sono conformi a questi requisiti, tali texture non saranno convalidate e ti sarà impedito di caricare il tuo progetto.
-
Se la texture è assegnata al gruppo di texture UI, le sue dimensioni devono essere inferiori alla dimensione massima di 2048x2048. Tuttavia, non è necessario che le dimensioni della texture siano potenze di 2. (Le texture UI in genere non hanno flussi, quindi appariranno sempre il più nitide possibile).
-
Se la texture è _not _assigned al gruppo di texture UI, le sue dimensioni devono essere inferiori alla dimensione massima di 4096x4096. Inoltre, se contiene un numero di pixel superiore alla soglia minima (1024x1024, o 1048576), deve essere trasmissibile. Ciò significa che;
-
Ogni dimensione deve essere una potenza di due (ad esempio, 256x256, 512x512, 1024x1024 e così via).
L'immagine non deve essere necessariamente quadrata, purché ogni dimensione sia una potenza di due. Ad esempio, 256x512, 512x1024, 256x1024 e così via.
-
-
La proprietà Non eseguire mai lo streaming deve essere disabilitata.
-
Deve essere impostato per generare mipmap.
-
Il costo totale della memoria di tutte le texture non in streaming nel progetto deve essere inferiore a un budget massimo prestabilito. Il costo della memoria per il progetto è determinato sommando il costo della memoria di tutte le texture la cui proprietà Non eseguire mai lo streaming è abilitata. Questo include:
-
Tutte le texture le cui dimensioni non sono potenze di due (e che non sono con padding o allungate a potenze di due usando la proprietà Padding e ridimensionamento). La proprietà Non eseguire mai lo streaming è sempre automaticamente abilitata per queste texture.
-
Tutte le altre texture la cui proprietà Non eseguire mai lo streaming è stata abilitata manualmente.
-
Ogni texture ha un'impostazione di Gruppo di texture che ne indica l'uso previsto. È possibile impostare questo gruppo e le altre proprietà della texture di cui sopra facendo doppio clic sull'asset texture in Esplora contenuti per aprire l'Editor texture.
Ridimensionamento delle texture
In UEFN, vecchie texture importate che utilizzano dimensioni non uniformi o eccessivamente elevate possono essere ricalcolate e adattate alla potenza di due. Trova e correggi eventuali texture problematiche seguendo questi passaggi:
-
Apri il Cassetto dei contenuti o Esplora contenuti e assicurati di selezionare la cartella del contenuto radice del tuo progetto, che si trova in FortniteGame nel pannello ad albero di sinistra.
-
In Tutto, trova la cartella denominata Contenuto YourProjectName.
-
Digita
NeverStream==true&&TextureGroup!=UI
nella barra di ricerca della parte superiore del Cassetto dei contenuti. In questo modo, si avvia una query per identificare eventuali asset da correggere.
Tutti gli asset che appaiono nella vista filtrata risultano problematici. Anche se richiede un po' di tempo risolvere i problemi, ciò migliorerà le prestazioni del tuo livello.
Hai a disposizione due opzioni per aggiornare le texture interessate che non fanno parte del gruppo UI.
Opzione A: utilizza le funzionalità di modifica in blocco di UEFN per raggruppare le texture e modificarle in un unico passaggio. Rappresenta il modo più rapido per adattare automaticamente le texture, riempiendole per raggiungere il rapporto d'aspetto desiderato; tuttavia, questo processo di riempimento potrebbe portare a un consumo di memoria non necessario.
Opzione B: richiede un po' più di tempo ma sfrutta al meglio il budget della memoria se è necessario modificare più texture interessate. Questa opzione ti consente di modificare e ricaricare texture per evitare la creazione di spaziature non necessarie.
Opzione A
-
Fai clic sul menu hamburger in Esplora contenuti accanto alla barra di ricerca e seleziona Texture. Tutte le texture sono isolate in Esplora contenuti.
-
Fai clic su Impostazioni e attiva l'opzione Colonne. Visualizzerai ora tutte le texture disposte in colonne in Esplora contenuti.
-
Nella colonna Dimensioni cerca qualsiasi asset che non impiega la potenza di due.
-
Seleziona tutte le texture non conformi alla potenza di due.
-
Fai clic con il tasto destro del mouse in Esplora contenuti e seleziona Azioni asset > Modifica selezione in matrice proprietà. In questo modo, si apre lo strumento Editor modifiche in blocco in cui sono elencate tutte le texture nella scheda Editor componenti.
-
Seleziona tutti i nomi file delle texture nella sezione Radice.
Fai clic sull'immagine per ingrandirla.
-
Apri l'opzione Texture nella scheda Colonne con pin.
-
Seleziona l'opzione Adatta alla potenza di due nel menu a discesa Modalità potenza di due. Visualizzerai ora una barra di avanzamento nella parte inferiore della finestra dell'editor.
Le texture sono state tutte convertite in dimensioni di potenza di due e ora funzionano su tutte le piattaforme.
Opzione B
-
Fai due volte clic sulla texture per aprire l'Editor texture.
-
Nella barra di ricerca della parte superiore del pannello Dettagli, inserisci il nome del tuo file di origine. Come risultato, verrà visualizzato il percorso del file sul tuo PC che sarà utilizzato come il file di origine per la texture.
Fai clic sull'immagine per ingrandirla.
-
Ridimensiona la texture con le dimensioni più vicine ai valori di potenza di due utilizzando un editor di immagini come GIMP o Paint.NET 5. Puoi anche utilizzare Paint se la texture non ha un livello alfa.
-
Le dimensioni di potenza di due includono valori seguenti: 256, 512, 1024 ecc.
-
Ad esempio, una texture 500x500 deve essere 512x512 e una texture 600x256 potrebbe essere 512x256.
-
Eventuali modifiche apportate al rapporto d'aspetto non devono avere effetti negativi sull'isola.
-
-
Fai clic con il tasto destro del mouse sulla texture in Esplora contenuti e seleziona Reimporta.
Se l'immagine della texture originale non è presente nei tuoi file:
-
Fai clic con il tasto destro del mouse sulla texture in Esplora contenuti, quindi seleziona Azioni asset > Esporta per ottenere una nuova copia.
-
Ridimensiona la texture con le dimensioni più vicine ai valori di potenza di due. Poi fai clic con il tasto destro del mouse sulla texture in Esplora contenuti e seleziona Reimporta con nuovo file. Quando il file viene importato, fai due volte clic sulla texture per aprire l'Editor texture.
-
Nella barra di ricerca del pannello Dettagli, digita Non eseguire mai streaming, quindi imposta l'opzione su False. Se non è possibile impostarla su False, assicurati che la specifica Importazione in alto indichi che l'immagine abbia dimensioni conformi alla potenza di due.
-
Nel pannello Dettagli, cerca l'opzione Impostazioni gen Mip. Poi, nel menu a discesa seleziona Da gruppo di texture.
-
Nel pannello Dettagli, cerca l'opzione Impostazioni compressione, quindi seleziona Predefinite (DXT1/5) nel menu a discesa.
Una volta completati questi passaggi, controlla di aver rimosso correttamente la texture con limitazioni digitando di nuovo NeverStream==true&&TextureGroup!=UI
nella barra di ricerca di Esplora contenuti. Gli asset che hai aggiornato non dovrebbero più essere visualizzati qui.
Modifica di una singola texture
Attieniti alle indicazioni seguenti se hai una sola texture non conforme alla regola della potenza di due.
-
Fai due volte clic sulla texture per aprire l'Editor texture.
Fai clic sull'immagine per ingrandirla.
-
Nella barra di ricerca del pannello Dettagli, digita Modalità potenza di due. Poi nel menu a discesa Spaziatura e ridimensionamento, seleziona Potenza quadrata.
-
Cerca l'opzione Non eseguire mai in streaming e impostala su False.
-
Cerca l'opzione Impostazioni gen Mip. Poi, nel menu a discesa seleziona Da gruppo di texture.
-
Cerca l'opzione Impostazioni compressione, quindi seleziona Predefinite (DXT1/5) nel menu a discesa.
Una volta completati questi passaggi, controlla di aver rimosso correttamente la texture con limitazioni digitando NeverStream==true&&TextureGroup!=UI
nella barra di ricerca Esplora contenuti. Gli asset che hai aggiornato non devono più comparire nell'elenco mostrato.
Trovare texture non valide
Gli asset di texture che non sono conformi ai requisiti indicati sopra sono contrassegnati in Esplora contenuti da un'icona di errore. Passando il mouse sull'asset, nella parte superiore del tooltip vengono visualizzati ulteriori dettagli sul problema specifico:
Fai clic sull'immagine per ingrandirla.
Conformare le texture non valide
Il modo migliore per correggere le texture non valide importate da file esterni è modificarle nell'applicazione originale con cui sono state create, quindi reimportare l'asset. Puoi anche usare un'altra applicazione dedicata all'editing delle immagini per modificare le texture prima di reimportarle in UEFN.
Assicurati che le dimensioni di ogni immagine siano inferiori alle dimensioni massime indicate sopra. Se non usi l'immagine per l'interfaccia utente, l'altezza e la larghezza dell'immagine devono essere potenze di due. L'immagine non deve essere necessariamente quadrata, purché ogni dimensione sia una potenza di due.
In alternativa, UEFN offre un metodo integrato per rendere le dimensioni delle texture conformi ai requisiti UEFN in modo automatico. Per fare questo:
-
In Esplora contenuti, seleziona una o più texture non valide.
-
Fai clic con il tasto destro del mouse sulla miniatura di una texture e scegli Conforma texture dal menu contestuale.
L'editor tenta di regolare le proprietà delle texture selezionate per evitare problemi di convalida e scrive i risultati nel Registro di output.
Questa operazione ha i seguenti effetti:
-
Se la texture è nel gruppo di texture UI e le sue dimensioni sono superiori al massimo consentito, l'impostazione Compressione > Avanzate > Dimensione massima texture della texture viene regolata per limitare la risoluzione massima della texture che può essere caricata in runtime.
-
Se la texture non è nel gruppo di texture UI e le sue dimensioni sono superiori al massimo consentito, l'impostazione Bias LOD della texture viene regolata in modo che le mipmap più grandi della texture vengano scartate. Questo limita di fatto la risoluzione massima della texture che può essere caricata in runtime.
-
Se la texture non è nel gruppo di texture UI e le sue dimensioni non sono potenze di due, l'impostazione Padding e ridimensionamento della texture è impostata su Allunga a potenze di due.
-
Se la texture non è nel gruppo di texture UI, l'impostazione Non eseguire mai lo streaming è disattivata.