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 Inventario e oggetti personalizzati.
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 l'elenco dei problemi noti.
Gli oggetti e i sistemi di inventario sono una parte fondamentale di molti tipi di giochi. Utilizzando le entità e i componenti di Scene Graph, puoi personalizzare l'inventario dei Giocatori di Fortnite e creare oggetti personalizzati univoci per la tua isola.
Gli oggetti sono oggetti in un'isola che giocatori e agenti possono utilizzare e possedere. Gli inventari includono l'inventario dei giocatori di Fortnite esistente e tutti gli inventari personalizzati creati con inventory_component. Inventario e oggetti personalizzati è un sistema per creare, controllare e memorizzare oggetti. Questo sistema è una funzionalità sperimentale che devi abilitare nelle Impostazioni progetto e utilizzarla con Scene Graph in UEFN e Verse.
Nozioni di base su Scene Graph
Scene Graph è un sistema di entità e componente, compilato in Verse. Le entità sono contenitori per componenti e i componenti forniscono funzionalità a un'entità. Puoi allegare entità tra loro in una relazione genitore-figlio che crea gerarchie. Le disposizioni riutilizzabili di entità e componenti sono chiamate prefab. Per ulteriori informazioni su entità e componenti, consulta Utilizzo di entità e componenti. Per maggiori informazioni sui prefab in Scene Graph, consulta Prefab e istanze prefab.
Problemi noti
Inventario e oggetti personalizzati è il primo sistema a sfruttare Scene Graph in UEFN. Per questo motivo, nella versione Sperimentale sono presenti una serie di bug che potresti incontrare utilizzando questo sistema. Puoi trovare l'elenco dei problemi noti qui. Stiamo lavorando a molte correzioni e miglioramenti che saranno inclusi in una versione futura.
Oggetti
Un oggetto è una entità in Scene Graph che ha un item_component. Per impostazione predefinita, gli oggetti possono essere uniti e impilati, possono avere categorie per il confronto e l'ordinamento e possono essere equipaggiati o non equipaggiati.
Poiché il sistema Inventario e oggetti personalizzati utilizza Scene Graph, puoi aggiungere componenti agli oggetti per aumentarne la funzionalità. Il sistema viene fornito con diversi componenti di base per iniziare, elencati nella tabella seguente.
| Componente | Descrizione |
|---|---|
| Questo componente rende un'entità un oggetto. Dà anche all'entità la possibilità di essere impilata e di essere posseduta e controllata da un inventario. |
| Memorizza un'icona per l'oggetto che viene visualizzato nella UI di Fortnite. |
| Contiene dati di testo come il nome e la descrizione dell'oggetto. |
| Questo memorizza un asset mesh che rappresenta l'oggetto nel gioco. |
| Questo componente permette di trattare l'oggetto come un oggetto raccoglibile di Fortnite. Ciò include un prompt di interazione per raccoglierlo, la UI e le animazioni di raccolta/rilascio. |
Un oggetto può avere un solo componente di ogni tipo. Sono inclusi i componenti che ereditano da altri componenti già collegati all'oggetto.
Ad esempio, se crei un componente personalizzato per un oggetto specifico che è figlio di item_component, viene visualizzato il componente oggetto personalizzato al posto del componente oggetto generico.
Modularità degli oggetti
Con inventario e oggetti personalizzati, possiamo introdurre una corretta modularità. Ciò significa che puoi utilizzare i componenti per compilare funzionalità oggetto in modo additivo. Di seguito sono riportati esempi di componenti collegati a un'entità oggetto che concedono funzionalità.
Entità
item_component: rende un'entità un oggetto.item_details_component: memorizza dati di testo come il nome e la descrizione dell'oggetto.item_icon_component: memorizza un'icona per l'oggetto che viene visualizzato nella UI di Fortnite.mesh_component: memorizza un asset mesh che rappresenta l'oggetto nel gioco.
Inventari
Un inventario è un'entità che ha un inventory_component.
Gli inventari sono contenitori di entità oggetto e l'inventario controlla che cosa succede a tali oggetti.
Il sistema Inventario e oggetti personalizzati utilizza inventari e sottoinventari per suddividere in compartimenti gli oggetti. In questo modo è più facile ordinare, aggiungere e recuperare gli oggetti all'interno di un inventario. Poiché un oggetto può esistere solo all'interno di un inventario alla volta, gli inventari determinano anche la proprietà delle entità oggetto.
Per impostazione predefinita, gli inventari possono contenere un numero infinito di qualsiasi tipo di oggetto. Tuttavia, puoi creare restrizioni e regole che determinano quali oggetti possono essere aggiunti. Alcuni esempi di queste restrizioni e regole:
Aggiungi oggetti a un inventario solo se soddisfano il tipo di query richiesto.
Limita il numero di oggetti in un inventario.
Permetti agli oggetti con priorità più alta di espellere quelli con priorità più bassa quando l'inventario è pieno.
Limita un inventario a un singolo oggetto.
Quando una funzione AddItem() non può essere risolta nell'inventario di destinazione, cerca altri inventari che potrebbero potenzialmente contenere l'oggetto. La funzione utilizza le gerarchie di Scene Graph
— prima tenterà di aggiungere l'oggetto agli inventari fratello (inventari che condividono un inventario genitore con l'inventario di destinazione iniziale), quindi esaminerà gli inventari figlio (inventari genitori dell'inventario di destinazione iniziale). La funzione controlla tutti gli inventari nella gerarchia prima di restituire un errore.
Filtro dell'inventario con eventi scena
Quando un inventario viene scelto come destinazione con una chiamata di funzione AddItem(), riceve un evento scena (add_item_event). Eseguendo l'override della funzione OnReceive() di un componente, è possibile attivare una logica personalizzata per influenzare la voce dell'oggetto. Ciò permette regole di inventario, come ad esempio il controllo del tipo di oggetto prima dell'autorizzazione, l'autorizzazione solo di un certo numero di oggetti nell'inventario e così via. L'evento OnReceive() è implementato nella classe del componente base ed è disponibile per tutti i componenti di Scene Graph.
add_item_event raccoglie le risposte da tutti gli inventari che raggiunge. Puoi fare in modo che i componenti dell'inventario modifichino l'evento e che tali componenti dell'inventario si offrano per ricevere l'oggetto aggiunto. L'evento contiene un array chiamato inventory_with_priority, che puoi impostare e aggiornare con il tuo inventario di destinazione. Ciò ti permette di nominare l'inventario di destinazione con la priorità di ricevere l'oggetto. Quando l'evento scena è stato trasmesso, tutti gli inventari con una priorità impostata ricevono l'oggetto e l'inventario con la priorità più alta riceve l'oggetto.
Nella versione Sperimentale di Inventario e oggetti personalizzati, è disponibile solo add_item_event. Tuttavia, altri eventi verranno aggiunti nei prossimi aggiornamenti.
Inventari di Fortnite
Inventario e oggetti personalizzati include una serie di sottoclassi di inventory_component, chiamate fort_inventory_components. Questi dispositivi hanno elementi di filtro degli oggetti e UI che imitano l'inventario dei giocatori di Battaglia reale di Fortnite.
| Componente | Descrizione |
|---|---|
| Corrisponde allo slot Strumento Raccolto dell'inventario predefinito dei giocatori di Fortnite. |
| Corrisponde alla hotbar dell'inventario predefinito dei giocatori di Fortnite. |
| Corrisponde alla hotbar degli strumenti di costruzione dell'inventario predefinito dei giocatori di Fortnite. |
| Corrisponde allo slot trappola dell'inventario predefinito dei giocatori di Fortnite. |
| Corrisponde alla sezione delle valute dell'inventario predefinito dei giocatori di Fortnite. |
| Corrisponde alla sezione degli oggetti collezionabili dell'inventario predefinito dei giocatori di Fortnite. |
| Corrisponde alla sezione munizioni dell'inventario predefinito dei giocatori di Fortnite. |
Puoi anche creare la tua configurazione di sottoinventari a cui aggiungere, da cui rimuovere o sostituire l'inventario predefinito dei giocatori.
Gli oggetti e gli inventari sono semplici o complessi quanto il numero di componenti aggiunti all'oggetto o all'entità di inventario. Con il continuo sviluppo del sistema Inventario e oggetti personalizzati, verranno aggiunti altri componenti che forniscono ancora più funzionalità.