Questa funzionalità è in stato sperimentale, quindi puoi provarla, fornire un feedback e vedere cosa stiamo pianificando. Al momento non puoi pubblicare un progetto che utilizza Scene Graph. Ricorda che non garantiamo la retrocompatibilità per gli asset creati in fase sperimentale, che le API per queste funzioni sono soggette a modifiche e che potremmo rimuovere intere funzioni sperimentali o funzionalità specifiche a nostra discrezione. Prima di iniziare a usare questa funzionalità, consulta la lista di problemi noti.
Il Scene Graph è una struttura unificata che collega tutti gli oggetti del mondo. Considerala come una cassetta degli attrezzi che contiene tutti gli strumenti necessari per la scenografia, i sistemi di gameplay, l'audio, i VFX e molto altro ancora per creare esperienze per il metaverso.
Con Scene Graph puoi passare rapidamente dal greyboxing e dalla creazione del mondo a un livello giocabile completo in pochi semplici passaggi.
Creare con Scene Graph significa poter eseguire operazioni su oggetti correlati nel progetto. Puoi anche usare Scene Graph per duplicare e iterare le strutture mentre le crei. Puoi anche trasformare gli oggetti creati in [prefabbricati] riutilizzabili (unreal-editor-for-fortnite-glossary#prefab) e utilizzarli in diversi progetti.
Scene Graph è un sistema nativo di Verse che sfrutta le caratteristiche di Verse. Consente di aggiungere una maggiore personalizzazione ai progetti con oggetti interattivi e personalizzati ed esperienze di gameplay.
Scene Graph migliora la stabilità del progetto perché Verse fa tutto il lavoro pesante in background, assicurando che le entità funzionino come previsto. Verse ha anche un accesso profondo a tutte le entità e ai componenti della scena, il che significa che puoi aggiungere una maggiore varietà alla scena.
Oggetti nel metaverso
Il metaverso è un'esperienza di intrattenimento sociale online in tempo reale, in cui le persone giocano e si connettono in un mondo 3D. Epic Games sta progettando il sistema Scene Graph per UEFN per consentirti di creare queste esperienze di metaverso.
Il sistema Scene Graph consente di istanziare e riutilizzare gli oggetti senza la classificazione attore di Unreal Engine. Il cuore di Scene Graph è costituito da una serie di blocchi di costruzione che utilizzano dati e logica per creare il tuo gioco, nonché per renderizzare e simulare gli oggetti in qualsiasi ambiente di gioco.
Attori ed entità non sono intercambiabili, sono sistemi diversi che lavorano insieme nella scena.
Con Scene Graph puoi creare un quadro di simulazione 3D in tempo reale in cui tutte le decisioni di progettazione e i risultati sono immediatamente visibili nella viewport. Questi possono essere modificati nel pannello dettagli o nell'editor prefabbricati.
Puoi importare gli asset creati o acquistati da un fornitore, come Fab, e usarli con Scene Graph per creare oggetti e prefabbricati personalizzati.
Tutto ciò che crei in Scene Graph può essere riutilizzato più volte e con meno memoria. Il sistema di costruzione di Scene Graph è progettato per consentire la condivisione di contenuti complessi e simulazioni condivise, rispettando i confini tra i contenuti.
Entità e componenti
Entità e componenti sono la spina dorsale di Scene Graph. Funzionano controllando la definizione e il comportamento degli oggetti.
Le entità sono contenitori che di per sé non hanno alcuna definizione o funzione visibile. I componenti sono quelli che forniscono dati e comportamenti alle entità. I componenti definiscono ciò che un'entità deve fare nella scena.
I componenti hanno proprietà modificabili. Possono essere fisiche, come una mesh statica e un sistema particellare, o logiche, come un tag di gioco o un codice Verse personalizzato, che definisce il movimento di una piattaforma. Per impostazione predefinita, tutte le entità hanno un Transform Component per specificare la posizione dell'entità nel mondo.
La costruzione di un'entità con Verse non crea un Transform Component in modo automatico.
Con Scene Graph, puoi creare rapidamente scenografie e meccaniche di gioco sfruttando i dati fisici delle mesh, i cue sonori e molto altro ancora.
Un'entità diventa la rappresentazione fisica di una mesh statica quando aggiungi un Mesh Component all'entità e si seleziona una mesh nello slot Mesh del componente. Ciò significa che puoi creare rapidamente edifici o singoli pezzi di set e utilizzarli subito nella scena.
Ad esempio, nel video qui sotto, un'entità viene trasformata in un gruppo di alberi di bambù e un componente sonoro viene aggiunto all'entità trascinando una traccia sonora nello slot Sound Component.
Puoi trasformare questo gruppo di bambù in un prefabbricato da solo o combinarlo con altre entità per creare un prefabbricato foresta.
Un'entità (l'entità simulazione) si trova alla base del progetto per rappresentare la simulazione. La scena viene creata quando le entità sono annidate sotto l'entità di simulazione. Aggiungendo entità alla mappa, si creano automaticamente entità figlie dell'entità di simulazione.
L'entità superiore di un prefabbricato è l'entità radice del prefabbricato, con altri prefabbricati ed entità annidate sotto. I prefabbricati genitore comprendono l'aspetto e il comportamento dei loro figli per interagire con gli altri oggetti della scena.
Fai clic sull'immagine per ingrandirla.
-
Entità radice prefabbricato → WoodenHouse_Tiny_Prefab
-
Prefabbricato figlio → WoodenHouse_RoofSmall_Prefab_C_1
-
Entità figlia → Building_WIndowCircle_Bright2
-
Entità figlia → Building_WIndowCircle_Bright4
-
Entità figlia → Building_WIndowCircle_Dark2
-
Entità figlia → Building_WIndowCircle_Dark4
-
Entità figlia → WoodenHouse_Floor
-
Entità figlia → WoodenHouse_RoofCap2
-
Entità figlia → WoodenHouse_RoofCap3
-
Entità figlia → WoodenHouse_RoofWindow2
-
-
Prefabbricato figlio → WoodenHouse_SmallFloor_Prefab_C_1
-
Entità figlia → WoodenHouse_Floor
-
Entità figlia → WoodenHouse_Wall10
-
Entità figlia → WoodenHouse_WallDoor_C4
-
-
Prefabbricato figlio → WoodenHouse_Windows_Prefab_C_3
-
Entità figlia → Building_WindowPlane_Bright3
-
Entità figlia → Building_WindowPlane_Bright4
-
Entità figlia → Building_WindowPlane_Dark3
-
Entità figlia → Building_WindowPlane_Dark4
-
Entità figlia → WoodenHouse_Windoows_10
-
-
Ogni prefabbricato figlio presenta componenti che determinano l'aspetto del prefabbricato e il suo allineamento con gli altri prefabbricati della scena. Puoi utilizzare Verse per indirizzare prefabbricati ed entità specifiche, per scambiare il prefabbricato figlio con un altro prefabbricato o anche per cambiare il colore utilizzato per le entità Building_WindowPlane_Bright e Building_WindowPlane_Dark.
Esistono numerosi tipi di componenti che determinano il comportamento di una parte o di un'intera entità. Per saperne di più sui diversi tipi di componenti disponibili in Scene Graph, consulta Componenti.
Per ulteriori informazioni sull'uso di entità e componenti, consulta Lavorare con entità e componenti.
Prefabbricati
Scene Graph crea prefabbricati impacchettando le entità sotto un'unica entità genitore. Tutte le entità selezionate, le gerarchie di entità e i loro componenti vengono immediatamente aggiunti all'albero delle entità del prefabbricato. Una volta creato un prefabbricato, puoi personalizzare tutte le istanze di quel prefabbricato nell'editor prefabbricati.
Per creare un'istanza del tuo prefabbricato, trascinalo da Esplora contenuti alla viewport. Puoi anche annidare i prefabbricati all'interno di una gerarchia di prefabbricati. Puoi utilizzare la gerarchia per applicare le modifiche apportate a tutte le istanze e a tutti i prefabbricati della gerarchia.
Aggiornando e migliorando il prefabbricato, risparmi tempo perché non è necessario trovare tutte le istanze di quell'oggetto per aggiornarle singolarmente.
Inoltre, puoi creare una moltitudine di oggetti dall'aspetto simile, selezionando le sottoparti della gerarchia e sovrascrivendo i valori dei diversi componenti. Puoi anche ruotare gli oggetti e aggiungere nuovi valori dei componenti alle diverse istanze del prefabbricato durante la modifica nell'editor prefabbricati.
L'editor segnala tutte le modifiche nel pannello Dettagli con un'icona di esclusione sui singoli attributi dei componenti. Inoltre, segnala le diverse icone dei componenti sul pulsante del menu a discesa della scheda componente.
Per tornare al progetto originale del prefabbricato, fai clic sulle icone di esclusione dei singoli componenti. L'oggetto torna automaticamente allo stato del prefabbricato genitore. Puoi anche fare clic sul pulsante del menu a discesa della scheda componente e selezionare Annulla override.
Per saperne di più sulla modifica dei prefabbricati, consulta Prefabbricati e istanze di prefabbricati.
Nel video qui sotto, il Scene Graph viene usato per creare due prefabbricati di una piccola casa.
La casa viene duplicata. Diversi elementi della casa vengono modificati selezionando diverse mesh per sostituire parti dell'originale, creando così un nuovo prefabbricato. Puoi continuare a copiare e sostituire parti per creare rapidamente un piccolo villaggio. Questo funziona anche con i componenti, in modo da poter aggiungere comportamenti diversi a ciascuna delle case del villaggio.
La modifica dei prefabbricati non influisce sulla stabilità e sulla memoria dell'oggetto originale o delle sue copie. Ciò significa che è possibile rifinire il layout del livello, il disegno astratto e l'arte per creare oggetti personalizzati per l'isola. Con il sistema di costruzione del Scene Graph, puoi riutilizzare i prefabbricati creati nei vari progetti per creare il tuo universo di gioco in Fortnite.
Verse in Scene Graph
Verse è il linguaggio di programmazione che Scene Graph utilizza per generare e rimuovere entità dal mondo e creare componenti e comportamenti personalizzati.
Con Verse puoi creare una lanterna da esterno oscillante per la casa dell'esempio precedente. Verse consente di definire le proprietà di oscillazione, rotazione e durata per determinare il movimento della lanterna.
I prefabbricati creati nel progetto sono esposti come classe a Verse nel file Assets.digest.verse del progetto. Le entità e i componenti definiti nel prefabbricato sono accessibili in Verse attraverso le chiamate GetEntities()
e GetComponents()
su un prefabbricato.
Per iniziare a usare Verse in Scene Graph, dai un'occhiata a [Crea un tuo componente in Verse] (creating-your-own-component-in-verse-in-unreal-editor-for-fortnite).
Abilitare il Scene Graph nel progetto
Per utilizzare Scene Graph nel tuo progetto:
-
Nella barra degli strumenti, scegli Progetto > Impostazioni di progetto per aprire la finestra Impostazioni di progetto.
-
Nella finestra Impostazioni di progetto, alla voce Accesso sperimentale, attiva Sistema Scene Graph.
Fai clic sull'immagine per ingrandirla.
Per verificare che sia possibile visualizzare le caratteristiche del Scene Graph, nella barra degli strumenti seleziona Posiziona attori e vedi Entità nel menu a tendina Posiziona attori.

Primi passi
Apri il [modello Prefabbricato] (scene-graph-sample-tutorial-in-unreal-editor-for-fortnite) per saperne di più sul Scene Graph. Il modello introduce i concetti di base del lavoro con le funzionalità di Scene Graph e si basa su questi flussi di lavoro fondamentali per illustrare la potenza della creazione del progetto utilizzando prefabbricati e Verse.
Problemi noti
Di seguito sono riportati i problemi noti relativi all'utilizzo di Scene Graph nel progetto. Se hai commenti o riscontri problemi che non sono stati rilevati nell'elenco sottostante, segnalali nei forum.
-
In quanto funzionalità sperimentale, possono verificarsi crash inattesi e instabilità.
-
Non puoi utilizzare lo snapping di griglia, rotazione o scala nell'editor prefabbricati.
-
Non puoi effettuare la multiselezione nell'editor prefabbricati.
-
Non puoi copiare e incollare o trascinare con Alt la duplicazione nell'editor prefabbricati.
-
Non puoi copiare e incollare i componenti.
-
Non puoi cancellare tutti gli override da un'istanza di prefabbricato in una sola volta. Puoi farlo per ogni override.
-
Le entità non usano il sistema di un file per attore, ma vengono salvate nell'asset UMAP. Se usi URC con il progetto, blocchi costantemente il livello principale e disabiliti la possibilità di collaborare al progetto.
-
Non c'è modo di salvare le istanze di prefabbricati sovrascritte nell'asset prefabbricati.
-
Le entità duplicate non vengono denominate correttamente nell'editor prefabbricati.
-
Espandi tutto e Comprimi tutto non funzionano sui componenti.
-
Attualmente non c'è modo di rimuovere gli override da un prefabbricato.
-
Facendo clic con il tasto destro del mouse sull'icona di override ottieni lo stesso risultato di un clic con il tasto sinistro.
-
Non è possibile staccare un'entità figlia trascinandola sul suo genitore.
-
Lo scrubbing della Rotazione del componente mesh statica lungo l'asse Y causa un movimento imprevisto.
-
Il giocatore si comporta in modo imprevisto quando entra in collisione con gli oggetti del grafico di scena.
-
Una volta che un'entità è stata rinominata manualmente, il nome dell'entità non può essere cambiato.
-
Il ridimensionamento negativo può causare interazioni anomale nelle entità figlio quando vengono ruotate.
-
Il trascinamento dei valori di trasformazione nell'editor prefabbricati è più lento e meno performante della modifica dei valori dal widget.
-
La finestra Crea Verse Component non mostra i modelli in Opzioni editor.
-
Le entità nell'editor prefabbricati non sono sempre selezionabili.
-
L'eliminazione di un prefabbricato crea un prefabbricato "fantasma" nelle sessioni di Live Edit.
-
Gli asset dei prefabbricati non hanno miniature.
-
La logica dei componenti viene eseguita sia in modalità di modifica che di riproduzione.
-
I componenti sono inizializzati molto prima dei dispositivi creativi, il che significa che il tentativo di recuperare un dispositivo creativo da
component.OnBeginSimulation
ocomponent.OnSimulate
non funzionerà. Per ovviare a questo problema, puoi fare un loop e sleep finché non vengono trovati i componenti o puoi generare i prefabbricati dalla chiamata OnBegin di un dispositivo di modalità Creativa. -
Chiamare
Dispose()
su un'entità posizionata direttamente nel livello non rimuoverà cose come gli effetti mesh visibili e altro dalla vista del client. La chiamata aDispose()
su entità generate tramite codice Verse funzionerà correttamente. -
La possibilità di nascondere le entità selezionate nell'editor di livello (tasto di scelta rapida H) e nell'editor prefabbricati non funziona.
-
Le modifiche apportate nell'editor prefabbricati non si propagano alle istanze posizionate del prefabbricato a meno che non salvi le modifiche.
-
Il salvataggio del progetto mentre il codice Verse non è in fase di compilazione può causare il danneggiamento dei dati del prefabbricato.