Raccogli una libreria di risorse

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.


La creazione di una libreria di risorse è il processo di importazione e configurazione di una collezione di risorse in una posizione centrale nella tua esperienza per un facile accesso e riutilizzo. Questo processo può risparmiare un sacco di tempo mentre prepari il tuo Ambiente, in particolare se configuri i valori di ciascuna risorsa per migliorare le prestazioni e ottimizzare l'utilizzo della memoria su dispositivi di fascia media o inferiore.

Usando il file Environment Art - Assembling.rbxl come riferimento, questa sezione del programma didattico sull'arte ambientale ti mostra come assemblare una libreria di risorse dalle tue risorse polverizzate, tra cui istruzioni passo-passo su:

  • Creazione di materiali personalizzati per il tuo terreno dalle tue texture posizionabili.
  • Creazione di oggetti SurfaceAppearance per la tua foglia di taglio, e applicazione su meshe non avvolti nella tua libreria di risorse.
  • Impostazione dei parametri di rendering per le tue risorse per garantire le prestazioni ottimali su tutti i dispositivi.
  • Convertingi le tue risorse in pacchetti in modo da poter aggiornarle e riutilizzarle in tutti i tuoi progetti.

Dopo aver completato questa sezione, imparerai a utilizzare la tua libreria di risorse in modi creativi per sostituire o convertire l'Ambientedella casella di grigio e aggiungere tocchi finali che migliorano l'Spazio3D complessivo.

The sample laser tag experience's modular and prop kit.

Crea materiali personalizzati

Studio rappresenta i materiali personalizzati come oggetti MaterialVariant all'interno di MaterialService . Questi MaterialVariant oggetti hanno quattro proprietà che combinano le quattro mappe di texture 1>per creare un materiale personalizzato di alta qualità con caratteristiche fisiche :

Dopo aver fornito le mappe della texture a queste proprietà, puoi applicare la tua nuova materiale personalizzata a entrambe le parti, le maglie e il terreno. Puoi usare o modificare il file di texture di esempio .png per creare il Lumpy Moss, Flowering Lumpy Moss, Lumpy Moss con Stones e Stones materiali personalizzati all'interno dell'Ambientelaser tag finali, o puoi usare il tuo che

Per creare oggetti MaterialVariant per le tue texture da posizionare:

  1. Nella Home o Modello scheda della barra dei menu, fai clic sul pulsante Gestore Materiali. La finestra 2> Gestore Materiali2> si apre.

  2. Nella lista Materiali , seleziona il materiale di base che si alline più con la tua Strutturatattile. Ad esempio, se stessi creando un oggetto MaterialVariant per la Strutturatattile Lumpy Moss, scegli il materiale di base per assicurare che il materiale erediti le sue proprietà fisiche.

  3. Nella Toolbar, fai clic sull'Icona⊕. Viene visualizzato un nuovo MaterialVariant con un'icona nell'angolo in basso a destra che indica che è un materiale personalizzato.

    New MaterialVariant tile in Material Manager with icon to indicate a custom material
  4. Nell' ispettore, fai clic sulla sezione generale , quindi rinomina il materiale per allineare il nome della tua Strutturascalabile.

    The Inspector view with the name of the material highlighted.
  5. Nella sezione Mappature della Texture , a destra di Colore , fai clic sul pulsante Importa . Viene visualizzato un file browser.

    The Texture Maps section of the Inspector view with the Import button highlighted.
  6. Nel file browser, seleziona la mappa della texture Albedo .png file per la Strutturacorrispondente, quindi il pulsante Apri . Il file browser si chiude e la nuova mappa dei colori viene visualizzata con il suo ID risorsa.

  7. Ripetere questo processo per le mappe di texture Metalizzazione , Normalizzazione e Rouggine . Le mappe di materiale personalizzate riflettono le mappe di texture.

    All texture maps for the Moss_Lumpy_A material.
     sphere part with the Moss_Lumpy_A material applied.
  8. Nella sezione Override , abilita il pulsante Imposta come Override per assicurarti che quando applici il terreno al tuo terreno, Studio utilizzi questo materiale personalizzato.

    The Set as Override toggle enabled.
  9. (Opzionale) Se stai creando un materiale personalizzato che rappresenta un materiale organico,

    1. Nella sezione Tiling, fai clic sulla casella di selezione Pattern.
    2. Seleziona Organico per casualizzare la produzione e ridurre il tiling visibile.
    The Tiling section of the Inspector view with its settings.
  10. Ripeti questo processo per ogni texture che vuoi includere nella tua esperienza.

Crea pacchetti SurfaceAppearance

Studio utilizza le schede di fusione all'interno di SurfaceAppearance oggetti che puoi associare a MeshParts che contengono dati UV. Come le parti personalizzate, le SurfaceAppearance oggetti hanno quattro proprietà che combinano le mappe delle sei schede di fusione per creare una superficie visiva 3D di alta qualità:

SurfaceAppearance.ColorMap – Rappresenta la mappa della texture albedo. SurfaceAppearance.MetalnessMap – Rappresenta la mappa della texture del metallo. SurfaceAppearance.NormalMap – Rappresenta la mappa della texture del normale. 0> Class.Surface Spencer.RoughnessMap0> – Rappresenta la texture della roughness.

Dopo aver fornito le Mesh, magliadella texture a queste proprietà, puoi rendere l'oggetto SurfaceAppearance un fig

Puoi usare o modificare i file di esempio di .png per creare un oggetto SurfaceAppearance che rispetta i dati uv per le risorse modulari e gli accessori all'interno dell'Ambientelaser di prova finale, o puoi usare il tuo che hai progettato nella sezione precedente del tutorial che si applica alle tue risorse modulari e agli accessori.

Per creare SurfaceAppearance pacchetti che puoi figliare al tuo modulo kit e alle sue proprietà:

  1. Inserisci un oggetto SurfaceAppearance nell'area di Area di lavoro.

  2. Seleziona l'oggetto SurfaceAppearance e quindi nella finestra Proprietà seleziona la proprietà ColorMap . Viene visualizzato un pop-up.

  3. Fai clic sul pulsante Aggiungi immagine... . Un file browser viene visualizzato.

    The ColorMap pop-up with the Add Image button highlighted.
  4. Seleziona la mappa della texture Albedo per la corrispondente Strutturatacciabile, quindi il pulsante Apri . Il file browser si chiude e la proprietà ColorMap viene aggiornata con un nuovo ID risorsa.

  5. Ripetere questo processo per le proprietà MetalnessMap , NormalMap e RoughnessMap , selezionando le rispettive mappe di texture dal file browser.

  6. Nella finestra Explorer, fai clic con il pulsante destro del mouse sull'oggetto SurfaceAppearance, quindi seleziona Convetti in Pacchetto e dal menu contestuale. La finestra di dialogo 2> Convetti in Pacchetto2> viene visualizzata.

  7. Compila i campi Titolo e Descrizione , imposta la proprietà su te stesso o su un Gruppo, quindi fai clic sul pulsante Invia . Una volta completato, un simbolo di catena mostrerà sull'icona della superficie 2> per identificarlo come un pacchetto2>.

    The Surface Appearance icon with a chain link symbol.
  8. (Facoltativo) Seleziona l'oggetto Appearance della superficie , figlio di PackageLink , quindi nella finestra 0>Proprietà0>, abilita 3>Aggiornamento automatico3> per aggiornare automaticamente il pacchetto se apporti modifiche all'oggetto 6>SurfaceAppearance 6>.

Importa risorse e oggetti modulari

Studio rappresenta le risorse e gli oggetti modulari che importi come oggetti Model

Usando il 3D Importer, puoi importare il kit modulare di esempio e gli accessori nella tua libreria risorse, o puoi importare qualsiasi risorsa che hai progettato nella sezione precedente del Tutoriale. Per ulteriori informazioni sulla funzionalità di questo strumento, vedi 3D Importer .

Per importare le tue risorse modulari e gli oggetti nell'esperienza:

  1. Nella home page o avatar scheda, fai clic sul pulsante Importa 3D. Un file browser viene visualizzato.

    Studio's Avatar tab with the 3D Importer highlighted.
  2. Seleziona un file .fbx per una risorsa modulare o un Accessorio.

  3. Verifica l'anteprima dell'oggetto e assicurati che le impostazioni di importazione siano corrette per il tuo oggetto.

  4. Verifica qualsiasi messaggio di avvertimento o errore .

  5. Fai clic su Importa . La risorsa viene visualizzata nella finestra Explorer e nella vista.

  6. Ripetere questo processo per ciascuna risorsa modulare e Accessorio.

  7. Sposta tutti i tuoi risorse in un'area della tua esperienza vicino alla geometria della tua scatola grigia. Questa zona è la tua libreria risorse.

Applica i dati di SurfaceAppearance

Quando si passa attraverso il processo di unwrapping dei UV di un mesh in un software di modellazione a terze parti, il software memorizza i dati dell'UV all'interno del file .fbx o .obj del Mesh, maglia. Quando si importa quel mesh in Studio, l'oggetto risultante

Per applicare i dati della mappa della texture SurfaceAppearance ai meshi non sigillati nella tua libreria di risorse:

  1. Nella finestra Explorer, fai clic sul tuo pacchetto SurfaceAppearance, quindi premi Ctrl 1> D1> ( 4>⌘4> 7>D7> ) per duplicarlo.
  2. Child the duplicate SurfaceAppearance pacchetto to either a modular asset or a Accessorio. The asset applies its UV data to the texture maps and displays its visual treatment.
  3. Ripetere questo processo per ciascuna risorsa modulare e Accessorio.

Imposta i parametri fisici e di rendering

Ora che hai le tue risorse all'interno di Studio, è importante impostare i parametri fisici e di rendering che consentono alle risorse di mantenere la migliore qualità visiva possibile sui dispositivi con limitazioni di memoria eGPU. In Generale, il più strettamente possibile aderire alle raccomandazioni in questa sezione, rende più performante la tua esperienza. Tuttavia, è importante considerare attentamente il contesto in cui si prevede di posizionare ciascuna risors

Ancorato

La proprietà BasePart.Anchored determinare se il sistema fisico del motore Roblox influenza la posizione dell'oggetto. Quando abiliti questa proprietà per un Part o un MeshPart , rimuove l'oggetto dalle calcolature fisiche della simulazione dinamica che si esegue sempre nell'esperienza, il che significa che l

Gli oggetti che non simulano una risposta fisica sono più economici da rendere poiché non occupano ilGPU che è necessario per queste calcoli fisici. Quando liberi ilGPU, migliori le prestazioni per la tua esperienza, specialmente su dispositivi low-end che hanno bisogno di salvare ilGPU per un Partitaveloce. È per questo che ogni risorsa oltre alle porte nell'ambiente laser di campionamento finale sono ancorate.

PuòCollidere

La proprietà BasePart.CanCollide determina se l'oggetto può interagire fisicamente con altri oggetti. Quando abiliti questa proprietà per un Part o MeshPart , l'oggetto è impenetrabile, e il motore Roblox lo calcola nel calcolo fisico. Questi calcoli possono influenzare le prestazioni della tua esper

Per ridurre alcuni di questi impatti sull'Prestazione, disabilita questa proprietà per gli oggetti con cui l'utente non interagirà mai. Ad esempio, l'ambiente del laser tag finale disabilita questa proprietà per tutto il folliame.

CanTouch

La proprietà BasePart.CanTouch determinare se Touched e TouchEnded eventi si attivano sull'oggetto. Quando abiliti questa proprietà per un 1> Class.Part</

Questo processo avviene per ogni singolo frame, che può occupare una quantità significativa di memoria se il motore deve controllare lo stato dell'evento di tocco per molti oggetti contemporaneamente. Per ridurre alcuni di questi impatti sulla memoria, abilita questa proprietà solo per gli oggetti che devono attivare un evento.

Puoi ottenere

La proprietà BasePart.CanQuery determinare se il motore Roblox considera l'oggetto durante le operazioni di query spaziali, come il raycasting. Studio abilita questa proprietà per ogni Part o MeshPart per impostazione predefinita, il che significa che il mot

Per questo motivo, si consiglia di disabilitare questa proprietà per gli oggetti che il motore Roblox non ha bisogno di considerare per le operazioni di query spaziali. Quando si prendono decisioni su dove disabilitare questa Proprietà, considera come ogni singolo risorsa influenza il Partita. Ad esempio, l'ambiente laser tag finale mantiene questa proprietà abilitata per ogni muro nel building poiché il

Parasole

La proprietà BasePart.CastShadow determina se l'oggetto casta un'ombra. Quando abiliti questa proprietà per un Part o MeshPart , il motore Roblox calcola ogni posizione di vertice dell'oggetto in tempo di Tempo esecuzione, quindi disegna un raycast dal sole a qualsiasi dei suoi vicini oggetti fino a quando non si scon

Questi calcoli possono essere eseguiti a un costo di prestazioni, specialmente quando hai molti oggetti di complessità geometrica. Ciò è dovuto al fatto che gli oggetti con complessità geometrica hanno più poligoni di quanto gli oggetti che sono geometricamente semplici, il che significa che hanno più vertici di cui il motore deve calcolare per l'ombra dell'oggetto. Meno poligoni in un oggetto, più velocemente l'operazione e meno costosa la sua ombra.

A wall section with few polygons, and a plant with many polygons casting shadows on a white wall.

Le ombre possono fornire una grande sensazione di realismo agli oggetti con una profondità geometrica 3D, quindi quando stai decidendo dove disabilitare questa Proprietà, considera dove gli oggetti forniscono un miglioramento visivo significativo per l'Ambientee dove gli utenti noteranno l'ombra mancante. Ad esempio, le ombre complples delle foglie possono fornire un'ottima sensazione di immersione n

Foliage not casting shadows.
BasePart.CastShadow = Disabilitato

Doppio

La proprietà MeshPart.DoubleSided determinare se rendere entrambe le facce o poligoni nel Mesh, maglia. Quando abiliti questa Proprietàper un MeshPart planare, come le foglie, i capelli o le carte di tessuto, il motore Roblox

A tree with less leaves because all planar meshes facing away from the camera are disabled.
MeshPart.DoubleSided = Disabilitato

Questa proprietà è utile per aggiungere realismo al tuo Ambiente, ma viene addebitata a un costo di prestazioni poiché il motore deve rendere i poligoni dell'oggetto due volte: una per la direzione che guarda la Telecameradell'utente e un'altra per qualsiasi mesh che guarda lontano dalla Telecameradell'utente. Per alleviare alcuni di questi impatti sulle Prestazione, l'ambiente di proprietà laser final

CollisioniFidelity

La proprietà MeshPart.CollisionFidelity determinare quanto è strettamente la hitbox fisica di un mesh o un'unione corrisponde alla sua rappresentazione visiva. Per impostazione predefinita, questa impostazione rende una hitbox che è circa la stessa forma della geometria del mesh, il che significa che dove gli utenti collidono con l'oggetto è simile alla geometria reale del mesh. Ad esempio, il

A grey castle mesh.
Mesh originale
The same castle mesh with a colorful hitbox that shows where users can collide with the castle.
Predefinito

Puoi impostare questa proprietà su un valore diverso per ridurre la precisione della hitbox di un Mesh, maglia. Ad esempio, quando imposti questa proprietà su Hull, il motore Roblox riduce notevolmente i vertici della hitbox del Mesh, magliae quando imposti questa proprietà su Box, il

The same castle mesh with cube hitbox that shows where users can collide with the castle.
Box
The same castle mesh with a cylindrical hitbox that shows where users can collide with the castle.
Scafo
The same castle mesh with a colorful hitbox that shows where users can collide with the castle. This version shows more colorful faces than the default hitbox.
PreciseConvexDecomposition

Simile a BasePart.CastShadow , il più diagonali che il motore Roblox deve Renderizzare, maggiore è il costo delle prestazioni. Per questo motivo, è importante considerare come vuoi che gli utenti interagiscano con ciascun mesh per vedere se puoi ridurre il numero di diamanti che il motore deve rendere per la hitbox del Mesh, maglia. In casi in cui non è necess

Per dimostrare questo concetto, fai riferimento alle seguenti immagini che mostrano la hitbox di ogni Mesh, magliadella parete che fornisce un aumento dell'altezza tra il primo e il secondo piano del tag laser Ambiente. La hitbox predefinita per il muro principale ha molta geometria inutilizzata quando deve fornire una superficie per impedire all'utente di muoversi in quella direzione. Se impostate la proprietà su

A wall model that provides a rise in elevation.
Mesh originale
The same wall model with a colorful hitbox that shows where users can collide with the wall.
Predefinito
The same wall model with a colorful hitbox for the trim, but only a box hitbox for the wall mesh.
Box

Mentre prendi queste decisioni, è importante considerare come la modifica del valore predefinito potrebbe influenzare negativamente gli utenti mentre navigano nel tuo Ambiente. Ad esempio, se imposti la proprietà su Box per i meshi di modellodella parete, gli utenti si scontrerebbero con la hitbox se provassero a saltare vicino alla parete. Invece, imposta questi

A wall model with a box hitbox for the top trip. Because the box sticks out, users can unintentionally collide with the top trim.
Box
The same wall model with a hull hitbox for the top trip. Because hull hitbox conforms much closer to the top of the model, allowing users to avoid colliding with the trim.
Scafo

Nota che può essere importante avere una hitbox che si adatta esattamente alla forma della tua Mesh, maglia, specialmente quando devi controllare esattamente come gli utenti si scontrano con la forma. Ad esempio, nell'Ambientedel laser tag finalizzato, è importante che gli utenti non si scontrino con gli angoli della porta e non con la porta stessa, altrimenti non potranno mai entrare o uscire da un pugno di combattimento.

A doorway model with optimized hitbox meshes.

Fiducia di rendering

La proprietà MeshPart.RenderFidelity determinano il livello di dettaglio che viene visualizzato dall'utente. Quando impostate questa proprietà su Enum.RenderFidelity.Automatic, il motore Roblox riduce la fedeltà della Mesh, magliaman mano che l'utente si allontana dalla mesh, e quando impostate questa proprietà su

Più oggetti il motore deve rendere esattamente per l'utente da qualsiasi distanza, in particolare se hanno un alto numero di vertici, l'aumento del costo di prestazione. Per alleviare alcuni di questi impatti sull'Prestazione, imposta questa proprietà su Enum.RenderFidelity.Performance per gli oggetti con complessità geometrica, come la follia

Converti le risorse in pacchetti

Ora che tutte le tue risorse modulari sono in Studio con parametri di rendering impostati per mantenere la loro alta qualità visiva per tutti gli utenti, è ora di convertirle in pacchetti. È importante convertire le tue risorse in pacchetti poiché ti consente di riutilizzarle ripetutamente durante la tua esperienza attuale e in altri progetti. Inoltre, puoi facilmente apportare modifiche a un pacchetto che si popola istantaneamente in tutte le

Poiché i tuoi oggetti SurfaceAppearance sono già pacchetti, quando converti i tuoi oggetti Model in pacchetti, diventano pacchetti annidati. I pacchetti annidati ti consentono di mantenere gerarchie complessi di oggetti figli che puoi modificare indipendentemente dal pacchetto Model. Ciò ti consente di mantenere un controllo maggiore su singoli componenti delle t

Per convertire le tue risorse modulari e gli accessori in pacchetti:

  1. Nella finestra Explorer , fai clic con il pulsante destro del mouse su una risorsa modulare o un Accessorio, quindi seleziona Converter to Package dal menu contestuale. La finestra di dialogo Converter to Package viene visualizzata.

  2. Compila i campi Titolo e Descrizione , imposta la proprietà su te stesso o su un Gruppo, quindi fai clic sul pulsante Invia . Una volta completato, un simbolo di link di catena viene visualizzato sull'icona del modello per identificarlo come un pacchetto.

    The Model icon with a chain link symbol.
  3. Ripetere questo processo per ciascuna risorsa modulare e Accessorio.

Una volta che sei felice con l'aspetto generale della tua libreria di risorse, puoi passare alla decorazione dell'ambiente con le tue risorse appena lucidate e configurare ulteriori elementi dello spazio 3D per portare il tuo mondo alla vita reale.