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 modifiche limitate agli avatar dei giocatori, come caschi, ali o accessori che corrispondono al genere.
Per creare un gioco unico che modifichi l'aspetto dei tuoi utenti, puoi personalizzare le proprietà del personaggio predefinite tramite impostazioni avatar o una modifica manuale dell'aspetto.
Impostazioni avatar globali
Il File ⟩ Impostazioni Avatar di Studio ti consente di impostare rapidamente diverse proprietà globali dei personaggi giocatore nel tuo gioco. Queste impostazioni si applicano globalmente a tutti i modelli dei personaggi giocatore che si uniscono al tuo gioco. Per modificare personaggi specifici, come i modelli non giocatore, vedere modifica manuale dell'aspetto.
In questa finestra, puoi impostare vari preset per abbigliamento, accessori, parti del corpo, comportamento di collisione, animazioni e altro ancora. Quando modifichi queste impostazioni, un'anteprima delle impostazioni applicate viene visualizzata nello spazio di lavoro.
Per ulteriori informazioni, vedere Impostazioni Avatar.
Modifica manuale dell'aspetto
I modelli dei personaggi contengono un oggetto Humanoid che conferisce al modello caratteristiche speciali, come camminare, saltare, equipaggiare oggetti e interagire con l'ambiente.
Puoi modificare programmaticamente un Humanoid aggiornando HumanoidDescription. Questo include modelli di personaggi giocatore o modelli di personaggi non giocatore 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 degli asset di accessori equipaggiati da un personaggio. |
| Abbigliamento Classico | Gli ID degli asset delle texture d'immagine di Shirt, Pants e ShirtGraphic che puoi applicare al personaggio. |
| Parte del Corpo | Gli ID degli asset di Faccia, Testa, Torso, Braccio Destro, Braccio Sinistro, Gamba Destra e Gamba Sinistra parti di un personaggio. |
| Colori del Corpo | I BodyColors delle singole parti del corpo del personaggio. |
| Animazioni | Gli ID degli asset di Animazioni che puoi utilizzare su un personaggio. |
Personalizza un personaggio con HumanoidDescription utilizzando i seguenti passaggi:
- Crea una descrizione dal personaggio dell'utente, 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 addirittura su tutti i personaggi in fase di spawn.
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:
local humanoidDescription = Instance.new("HumanoidDescription")Nella maggior parte dei casi, dovresti utilizzare 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 campione di codice per creare una nuova HumanoidDescription basata sulle proprietà correnti del personaggio del giocatore:
local humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")
local humanoidDescription = Instance.new("HumanoidDescription")
if humanoid then
humanoidDescription = humanoid:GetAppliedDescription()
endDa un outfit esistente
Utilizza il seguente codice di esempio per creare una HumanoidDescription da un ID di outfit utilizzando Players.GetHumanoidDescriptionFromOutfitID:
local Players = game:GetService("Players")
local outfitId = 480059254
local humanoidDescriptionFromOutfit = Players:GetHumanoidDescriptionFromOutfitId(outfitId)Da un utente specifico
Utilizza il seguente codice di esempio per creare una HumanoidDescription da un ID utente utilizzando Players:GetHumanoidDescriptionFromUserId():
local Players = game:GetService("Players")
local userId = 491243243
local 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 campione di codice fornisce esempi di impostazione dei diversi tipi di proprietà di 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)Imposta più accessori
Per cambiamenti di accessori a strati o in blocco, puoi usare HumanoidDescription:SetAccessories() per fare aggiornamenti legati agli accessori. Il seguente campione di codice aggiunge un maglione e una giacca a strati in quell'ordine a una HumanoidDescription:
local 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:
local humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
local descriptionClone = humanoid:GetAppliedDescription()
descriptionClone.Torso = 86500008
-- Sono consentiti più asset di accessori per il viso in una stringa separata da virgole
descriptionClone.FaceAccessory = descriptionClone.FaceAccessory .. ",2535420239"
-- Applica la "descriptionClone" modificata al humanoid
humanoid:ApplyDescription(descriptionClone)
endSu tutti i personaggi giocatori
Utilizza il seguente codice di esempio per applicare una HumanoidDescription a tutti i giocatori attuali nel gioco:
local Players = game:GetService("Players")
for _, player in Players:GetPlayers() do
local humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
-- 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)
humanoid:ApplyDescription(humanoidDescription)
end
endSu tutti i personaggi in fase di spawn
Utilizza il seguente codice di esempio per impostare una specifica HumanoidDescription per tutti i personaggi giocatori in fase di spawn:
local Players = game:GetService("Players")
-- Ferma lo spawn automatico in modo che possa essere fatto 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)
-- Spawn del 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 nell'Explorer e genitore nello spazio di lavoro, utilizza il seguente campione di codice in uno Script per accedere all'istanza nello spazio di lavoro:
local Players = game:GetService("Players")
-- Ferma lo spawn automatico in modo che possa essere fatto nel callback "PlayerAdded"
Players.CharacterAutoLoads = false
local function onPlayerAdded(player)
-- Spawn del personaggio con "workspace.StudioHumanoidDescription"
player:LoadCharacterWithHumanoidDescription(workspace.StudioHumanoidDescription)
end
-- Collega l'evento "PlayerAdded" alla funzione "onPlayerAdded()"
Players.PlayerAdded:Connect(onPlayerAdded)Accessori a strati su non-R15
Gli accessori incassati, come gli accessori a strati, utilizzano WrapTarget e WrapLayer per allungarsi e avvolgersi attorno a un target Model. Gli accessori a strati possono funzionare sia con i personaggi R15 di Roblox standard che con i modelli non-R15.
L'implementazione personalizzata di accessori a strati, come un modello che utilizza una mappa UV di gabbia unica, non può essere caricata e pubblicata sul Marketplace. Per ulteriori informazioni, vedere Specifiche degli accessori a strati.
Che tu stia implementando accessori a strati su un rig di avatar R15, o utilizzando un rig personalizzato, assicurati che i tuoi accessori e corpi includano quanto segue:
- Il modello di destinazione, tipicamente il corpo, ha un componente WrapTarget sulle mesh che altri modelli aggiuntivi sono destinati ad avvolgere.
- Il modello di strato, tipicamente l'abbigliamento o l'accessorio, ha un componente WrapLayer sulle mesh destinate ad avvolgere il modello di destinazione.
- La gabbia esterna del modello di destinazione, e la gabbia interna ed esterna del modello di strato hanno mappe UV corrispondenti.
- I vertici corrispondenti sulla gabbia di destinazione dovrebbero avere le stesse UV di quei vertici sulla gabbia di strato.
- Se il tuo modello di destinazione non è R15, o non include un Humanoid, devi aggiungere un oggetto Weld al MeshPart di strato.
- Il Weld deve avere Part0 e Part1 impostati per collegare il MeshPart di strato alla gerarchia Part del Modello. Ad esempio, Part0 si riferisce all'accessorio e Part1 si riferisce alla Parte genitore.
- Se il tuo modello di destinazione è sia R15 e include un Humanoid, questa saldatura viene creata automaticamente.