La maggior parte dei giochi consente ai giocatori di utilizzare il proprio avatar di Roblox, anche se alcuni implementano un sistema di personalizzazione in-game come il template UGC Homestore. Altri giochi apportano limitate modifiche agli avatar dei giocatori, come elmetti, ali o accessori che si adattano al genere.
Per creare un gioco unico che altera l'aspetto dei tuoi utenti, puoi personalizzare le proprietà del personaggio predefinito attraverso le impostazioni avatar o mediante una modifica manuale dell'aspetto.
Impostazioni avatar globali
Il menu File ⟩ Impostazioni avatar di Studio consente di impostare rapidamente diverse proprietà globali del personaggio dei giocatori nel tuo gioco. Queste impostazioni si applicano globalmente a tutti i modelli di personaggi dei giocatori che entrano nel tuo gioco. Per modificare personaggi specifici, come i modelli di personaggi non giocanti, consulta modifica manuale dell'aspetto.
In questa finestra, puoi impostare vari preset per abbigliamento, accessori, parti del corpo, comportamento della collisione, animazioni e altro ancora. Quando modifichi queste impostazioni, un'anteprima delle impostazioni applicate viene visualizzata nell'area di lavoro.
Per ulteriori informazioni, consulta le Impostazioni Avatar.
Modifica manuale dell'aspetto
I modelli dei personaggi contengono un oggetto Humanoid che conferisce al modello caratteristiche speciali, come camminare, saltare, indossare oggetti e interagire con l'ambiente.
Puoi modificare programmaticamente un Humanoid aggiornando HumanoidDescription. Ciò include i modelli di personaggio dei giocatori o i modelli di personaggi non giocanti nel tuo gioco.
Puoi regolare le seguenti proprietà del personaggio nel tuo gioco utilizzando HumanoidDescription:
| Proprietà del personaggio | Descrizione |
|---|---|
| Scala | Valori numerici per tratti fisici altezza, larghezza, testa, tipo di corpo e proporzione. Questo non influisce sui tipi di corpo R6. |
| Accessori | Gli ID asset degli accessori equipaggiati da un personaggio. |
| Abbigliamento classico | Gli ID asset delle texture delle immagini Shirt, Pants, e ShirtGraphic che puoi applicare al personaggio. |
| Parte del corpo | Gli ID asset delle parti del personaggio Faccia, Testa, Torace, BraccioDestro, BraccioSinistro, GambaDestra e GambaSinistra. |
| Colori del corpo | I BodyColors delle singole parti del corpo del personaggio. |
| Animazioni | Gli ID asset delle Animazioni che puoi utilizzare su un personaggio. |
Personalizza un personaggio con HumanoidDescription seguendo i seguenti passaggi:
- Crea una descrizione dal personaggio dell'utente, da un ID di outfit specifico o da un ID utente specifico.
- Modifica la descrizione per personalizzare le proprietà che desideri applicare al personaggio Humanoid.
- Applica la descrizione su un singolo personaggio, tutti i personaggi giocatori o anche su tutti i personaggi in fase di generazione.
Crea HumanoidDescription
Puoi creare una nuova istanza di HumanoidDescription direttamente all'interno della gerarchia Explorer o all'interno di uno Script con il seguente codice:
Crea una nuova istanza di HumanoidDescriptionlocal humanoidDescription = Instance.new("HumanoidDescription")
Nella maggior parte dei casi, dovresti usare un HumanoidDescription esistente invece di una nuova HumanoidDescription predefinita facendo riferimento a un personaggio giocatore esistente, un outfit avatar o un ID utente.
Dal personaggio del giocatore
Utilizza il seguente esempio di codice per creare una nuova HumanoidDescription basata sulle proprietà correnti del personaggio del giocatore:
Genera una HumanoidDescription da un personaggio giocatorelocal humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")local humanoidDescription = Instance.new("HumanoidDescription")if humanoid thenhumanoidDescription = humanoid:GetAppliedDescription()end
Da un outfit esistente
Utilizza il seguente codice di esempio per creare una HumanoidDescription da un ID di outfit utilizzando Players.GetHumanoidDescriptionFromOutfitID:
Genera una HumanoidDescription da un ID di Outfitlocal Players = game:GetService("Players")local outfitId = 480059254local humanoidDescriptionFromOutfit = Players:GetHumanoidDescriptionFromOutfitId(outfitId)
Da un utente specifico
Utilizza il seguente codice di esempio per creare una HumanoidDescription da un ID utente usando Players:GetHumanoidDescriptionFromUserId():
Genera una HumanoidDescription da un ID utentelocal Players = game:GetService("Players")local userId = 491243243local humanoidDescriptionFromUser = Players:GetHumanoidDescriptionFromUserId(userId)
Modifica HumanoidDescription
Per personalizzare le proprietà di HumanoidDescription, impostale direttamente sulla HumanoidDescription o utilizza un metodo specificato prima di applicare la HumanoidDescription a un personaggio.
Il seguente esempio di codice fornisce esempi di impostazione dei diversi tipi di proprietà di HumanoidDescription:
Aggiorna varie proprietà di HumanoidDescriptionlocal humanoidDescription = Instance.new("HumanoidDescription")humanoidDescription.HatAccessory = "2551510151,2535600138"humanoidDescription.BodyTypeScale = 0.1humanoidDescription.ClimbAnimation = 619521311humanoidDescription.Face = 86487700humanoidDescription.GraphicTShirt = 1711661humanoidDescription.HeadColor = Color3.new(0, 1, 0)
Imposta più accessori
Per modifiche di accessori stratificate o in blocco, puoi utilizzare HumanoidDescription:SetAccessories() per effettuare aggiornamenti relativi agli accessori. Il seguente esempio di codice aggiunge un maglione stratificato e una giacca in quell'ordine a una HumanoidDescription:
Cambia più accessori contemporaneamentelocal humanoidDescription = Instance.new("HumanoidDescription")local accessoryTable = {{Order = 1,AssetId = 6984769289,AccessoryType = Enum.AccessoryType.Sweater},{Order = 2,AssetId = 6984767443,AccessoryType = Enum.AccessoryType.Jacket}}humanoidDescription:SetAccessories(accessoryTable, false)
Applica HumanoidDescription
Applica HumanoidDescription a specifici personaggi Humanoid nel tuo gioco con Humanoid:ApplyDescription() o Humanoid.LoadCharacterWithHumanoidDescription.
Su un singolo personaggio
ApplyDescription() può mirare a qualsiasi Humanoid. Usa il seguente codice per aggiungere un nuovo paio di occhiali da sole e un nuovo torso al personaggio del giocatore:
Aggiorna HumanoidDescription per un personaggio giocatore specificolocal humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")if humanoid thenlocal descriptionClone = humanoid:GetAppliedDescription()descriptionClone.Torso = 86500008-- Sono consentiti più asset di accessori per la faccia in una stringa separata da virgoledescriptionClone.FaceAccessory = descriptionClone.FaceAccessory .. ",2535420239"-- Applica il "descriptionClone" modificato a humanoidhumanoid:ApplyDescription(descriptionClone)end
Su tutti i personaggi dei giocatori
Utilizza il seguente codice di esempio per applicare una HumanoidDescription a tutti i giocatori attuali nel gioco:
Aggiorna HumanoidDescription per tutti i personaggi giocatori attualilocal Players = game:GetService("Players")for _, player in Players:GetPlayers() dolocal humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")if humanoid then-- Crea una HumanoidDescriptionlocal humanoidDescription = Instance.new("HumanoidDescription")humanoidDescription.HatAccessory = "2551510151,2535600138"humanoidDescription.BodyTypeScale = 0.1humanoidDescription.ClimbAnimation = 619521311humanoidDescription.Face = 86487700humanoidDescription.GraphicTShirt = 1711661humanoidDescription.HeadColor = Color3.new(0, 1, 0)humanoid:ApplyDescription(humanoidDescription)endend
Su tutti i personaggi in fase di generazione
Utilizza il seguente codice di esempio per impostare una specifica HumanoidDescription per tutti i personaggi dei giocatori in fase di generazione:
Aggiorna HumanoidDescription per tutti i personaggi in fase di generazione
local Players = game:GetService("Players")
-- Ferma la generazione automatica in modo che possa essere effettuata nel callback "PlayerAdded"
Players.CharacterAutoLoads = false
local function onPlayerAdded(player)
-- Crea una HumanoidDescription
local humanoidDescription = Instance.new("HumanoidDescription")
humanoidDescription.HatAccessory = "2551510151,2535600138"
humanoidDescription.BodyTypeScale = 0.1
humanoidDescription.ClimbAnimation = 619521311
humanoidDescription.Face = 86487700
humanoidDescription.GraphicTShirt = 1711661
humanoidDescription.HeadColor = Color3.new(0, 1, 0)
-- Genera il personaggio con la HumanoidDescription
player:LoadCharacterWithHumanoidDescription(humanoidDescription)
end
-- Collega l'evento "PlayerAdded" alla funzione "onPlayerAdded()"
Players.PlayerAdded:Connect(onPlayerAdded)
Se l'istanza di HumanoidDescription è stata creata in Explorer e genitorata all'interno della workspace, utilizza il seguente codice di esempio in uno Script per accedere all'istanza della workspace:
local Players = game:GetService("Players")
-- Ferma la generazione automatica in modo che possa essere effettuata nel callback "PlayerAdded"
Players.CharacterAutoLoads = false
local function onPlayerAdded(player)
-- Genera il personaggio con "workspace.StudioHumanoidDescription"
player:LoadCharacterWithHumanoidDescription(workspace.StudioHumanoidDescription)
end
-- Collega l'evento "PlayerAdded" alla funzione "onPlayerAdded()"
Players.PlayerAdded:Connect(onPlayerAdded)
Abbigliamento stratificato su non-R15
Accessori incassati, come l'abbigliamento stratificato, utilizzano WrapTarget e WrapLayer per allungarsi e adattarsi su un Model target. Gli accessori stratificati possono funzionare sia con i normali personaggi R15 di Roblox che con i modelli non R15.
L'implementazione personalizzata dell'abbigliamento stratificato, come un modello che utilizza una mappa UV a gabbia unica, non può essere caricata e pubblicata nel Marketplace. Per ulteriori informazioni, consulta le specifiche per l'abbigliamento stratificato.
Che tu stia implementando accessori stratificati su una struttura avatar R15, o utilizzando una struttura personalizzata, assicurati che i tuoi accessori e corpi includano quanto segue:
- Il modello target, tipicamente il corpo, ha un componente WrapTarget sulle mesh su cui i modelli aggiuntivi sono destinati ad adattarsi.
- Il modello di stratificazione, tipicamente l'abbigliamento o l'accessorio, ha un componente WrapLayer sulle mesh destinate ad adattarsi al modello target.
- La gabbia esterna del modello target, e la gabbia interna ed esterna del modello di stratificazione hanno mappe UV corrispondenti.
- I vertici corrispondenti sulla gabbia target devono avere gli stessi UV di quei vertici sulla gabbia di stratificazione.
- Se il tuo modello target non è R15, o non include un Humanoid, devi aggiungere un oggetto Weld alla MeshPart di stratificazione.
- Il Weld deve avere Part0 e Part1 impostati per collegare la MeshPart di stratificazione alla gerarchia di parti del modello. Ad esempio, Part0 si riferisce all'accessorio e Part1 si riferisce alla parte genitore.
- Se il tuo modello target è sia R15 che include un Humanoid, questo weld viene creato automaticamente.