La maggior parte dei giochi consente ai giocatori di utilizzare il proprio avatar Roblox, anche se alcuni implementano un sistema di personalizzazione in gioco come il template UGC Homestore. Altri giochi apportano modifiche limitate agli aspetti degli 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 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 del personaggio dei giocatori nel tuo gioco. Queste impostazioni si applicano globalmente a tutti i modelli di personaggi dei giocatori che si uniscono al 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 di collisione, animazioni e altro. Quando modifichi queste impostazioni, un'anteprima delle impostazioni applicate viene visualizzata nello spazio di lavoro.
Per ulteriori informazioni, consulta Impostazioni Avatar.
Modifica manuale dell'aspetto
I modelli di 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 giocatori o 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 degli asset di accessori equipaggiati da un personaggio. |
| Abbigliamento Classico | Gli ID degli asset delle texture delle immagini Shirt, Pants e ShirtGraphic che puoi applicare al personaggio. |
| Parte del Corpo | Gli ID degli asset delle parti del personaggio Faccia, Testa, Torace, Braccio Destro, Braccio Sinistro, Gamba Destra e Gamba Sinistra. |
| 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 seguendo questi 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 a un singolo personaggio, a tutti i personaggi giocatori o anche a tutti i personaggi in fase di generazione.
Crea HumanoidDescription
Puoi creare una nuova istanza di HumanoidDescription direttamente all'interno della gerarchia di 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 un nuovo HumanoidDescription predefinito facendo riferimento a un personaggio giocatore esistente, a un outfit avatar o a un ID utente.
Dal personaggio del giocatore
Utilizza il seguente esempio di codice per creare una nuova HumanoidDescription basata sulle proprietà attuali 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 su HumanoidDescription o utilizza un metodo specificato prima di applicare HumanoidDescription a un personaggio.
Il seguente esempio 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 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 un 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 all'umanoide
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 generazione
Utilizza il seguente codice di esempio per impostare una specifica HumanoidDescription per tutti i personaggi giocatori in fase di generazione:
local Players = game:GetService("Players")
-- Ferma la generazione automatica in modo che possa essere eseguita 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 parentata allo spazio di lavoro, utilizza il seguente codice di esempio in uno Script per accedere all'istanza dello spazio di lavoro:
local Players = game:GetService("Players")
-- Ferma la generazione automatica in modo che possa essere eseguita 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)Accessori stratificati su non-R15
Gli accessori a gabbia, come gli accessori stratificati, utilizzano WrapTarget e WrapLayer per allungarsi e avvolgersi attorno a un Model target. Gli accessori stratificati possono funzionare sia con i personaggi giocatori standard che con i modelli non-R15.
L'implementazione personalizzata di accessori stratificati, come un modello che utilizza una mappa UV a gabbia unica, non può essere caricata e pubblicata nel Marketplace. Per ulteriori informazioni, consulta Specifiche degli accessori stratificati.
Che tu stia implementando accessori stratificati su un armatura di rigging R15, o utilizzando un rig personalizzato, assicurati che i tuoi accessori e corpi includano quanto segue:
- Il modello target, tipicamente il corpo, ha un componente WrapTarget sulle mesh che i modelli aggiuntivi sono destinati ad avvolgere.
- Il modello di stratificazione, tipicamente l'abbigliamento o l'accessorio, ha un componente WrapLayer sulle mesh destinate ad avvolgere il 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 dovrebbero avere le stesse 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 al MeshPart di stratificazione.
- Il Weld deve avere Part0 e Part1 impostati per collegare il MeshPart di stratificazione alla gerarchia Part del Modello. Ad esempio, Part0 si riferisce all'accessorio e Part1 si riferisce al Part genitore.
- Se il tuo modello target è sia R15 che include un Humanoid, questo weld viene creato automaticamente.