A maioria das experiências permite que os jogadores usem seu próprio avatar do Roblox, embora algumas implementem um sistema de personalização dentro da experiência, como o modelo de UGC Homestore. Outras experiências fazem modificações limitadas aos avatares dos jogadores, como capacetes, asas ou acessórios que combinam com o gênero.
Para criar uma experiência única que altera a aparência de seus usuários, você pode personalizar as propriedades padrão do personagem através das configurações de avatar ou uma modificação manual da aparência.
Configurações globais de avatar
O Arquivo ⟩ Configurações de Avatar do Studio permite que você defina rapidamente várias propriedades globais do personagem jogador na sua experiência. Essas configurações se aplicam globalmente a todos os modelos de personagens jogadores que ingressam em sua experiência. Para modificar personagens específicos, como modelos de personagens não jogáveis, veja modificação manual da aparência.
Nesta janela, você pode definir vários predefinições para roupas, acessórios, partes do corpo, comportamento de colisão, animações e muito mais. Ao editar essas configurações, uma prévia das configurações aplicadas é exibida no espaço de trabalho.
Para mais informações, veja Configurações de Avatar.
Modificação manual da aparência
Modelos de personagens contêm um objeto Humanoid que fornece características especiais ao modelo, como andar, pular, equipar itens e interagir com o ambiente.
Você pode modificar programaticamente um Humanoid atualizando HumanoidDescription. Isso inclui modelos de personagens jogadores ou modelos de personagens não jogáveis na sua experiência.
Você pode ajustar as seguintes propriedades do personagem em sua experiência usando HumanoidDescription:
| Propriedade do personagem | Descrição |
|---|---|
| Escala | Valores numéricos para características físicas altura, largura, cabeça, tipo de corpo e proporção. Isso não afeta tipos de corpo R6. |
| Acessórios | Os IDs dos ativos de acessórios equipados por um personagem. |
| Roupas Clássicas | Os IDs dos ativos de Shirt, Pants, e ShirtGraphic que você pode aplicar ao personagem. |
| Parte do Corpo | Os IDs dos ativos de Face, Cabeça, Tronco, Braço Direito, Braço Esquerdo, Perna Direita e Perna Esquerda de um personagem. |
| Cores do Corpo | Os BodyColors das partes individuais do personagem. |
| Animações | Os IDs dos Animações que você pode usar em um personagem. |
Personalize um personagem com HumanoidDescription usando os seguintes passos:
- Crie uma descrição a partir do personagem do usuário, um ID de Outfit específico ou de um ID de usuário específico.
- Modifique a descrição para personalizar as propriedades que você deseja aplicar ao personagem Humanoid.
- Aplique a descrição em um único personagem, todos os personagens jogadores ou até mesmo em todos os personagens que estão surgindo.
Criar HumanoidDescription
Você pode criar uma nova instância de HumanoidDescription diretamente na hierarquia do Explorer ou dentro de um Script com o seguinte código:
Criar nova instância de HumanoidDescriptionlocal humanoidDescription = Instance.new("HumanoidDescription")
Na maioria dos casos, você deve usar um HumanoidDescription existente em vez de um novo HumanoidDescription padrão, referenciando um personagem jogador existente, um traje de avatar ou um ID de usuário.
A partir do personagem jogador
Use o seguinte exemplo de código para criar um novo HumanoidDescription com base nas propriedades atuais do personagem jogador:
Gerar um HumanoidDescription a partir de um personagem jogadorlocal humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")local humanoidDescription = Instance.new("HumanoidDescription")if humanoid thenhumanoidDescription = humanoid:GetAppliedDescription()end
A partir de um traje existente
Use o seguinte código de exemplo para criar um HumanoidDescription a partir de um ID de traje usando Players.GetHumanoidDescriptionFromOutfitID:
Gerar um HumanoidDescription a partir de um ID de trajelocal Players = game:GetService("Players")local outfitId = 480059254local humanoidDescriptionFromOutfit = Players:GetHumanoidDescriptionFromOutfitId(outfitId)
A partir de um usuário específico
Use o seguinte código de exemplo para criar um HumanoidDescription a partir de um ID de usuário usando Players:GetHumanoidDescriptionFromUserId():
Gerar um HumanoidDescription a partir de um ID de usuáriolocal Players = game:GetService("Players")local userId = 491243243local humanoidDescriptionFromUser = Players:GetHumanoidDescriptionFromUserId(userId)
Modificar HumanoidDescription
Para personalizar as propriedades de HumanoidDescription, defina-as diretamente no HumanoidDescription ou use um método especificado antes de aplicar o HumanoidDescription a um personagem.
O seguinte exemplo de código fornece exemplos de como definir os diferentes tipos de propriedades de HumanoidDescription:
Atualizar várias propriedades de 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)
Definir múltiplos acessórios
Para mudanças de acessórios em camadas ou em lote, você pode usar HumanoidDescription:SetAccessories() para fazer atualizações relacionadas a acessórios. O seguinte exemplo de código adiciona um suéter em camadas e uma jaqueta nesta ordem a um HumanoidDescription:
Mudar múltiplos acessórios de uma vezlocal 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)
Aplicar HumanoidDescription
Aplique HumanoidDescription a personagens específicos Humanoid em sua experiência com Humanoid:ApplyDescription() ou Humanoid.LoadCharacterWithHumanoidDescription.
Em um único personagem
ApplyDescription() pode direcionar qualquer Humanoid. Use o seguinte código para adicionar um novo par de óculos de sol e um novo tronco ao personagem do jogador:
Atualizar HumanoidDescription para um personagem jogador específicolocal humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")if humanoid thenlocal descriptionClone = humanoid:GetAppliedDescription()descriptionClone.Torso = 86500008-- Vários ativos de acessórios faciais são permitidos em uma string separada por vírgulasdescriptionClone.FaceAccessory = descriptionClone.FaceAccessory .. ",2535420239"-- Aplicar "descriptionClone" modificado ao humanoidehumanoid:ApplyDescription(descriptionClone)end
Em todos os personagens jogadores
Use o seguinte código de exemplo para aplicar um HumanoidDescription a todos os jogadores atuais no jogo:
Atualizar HumanoidDescription para todos os personagens jogadores atuaislocal Players = game:GetService("Players")for _, player in Players:GetPlayers() dolocal humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")if humanoid then-- Criar um 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
Em todos os personagens que estão surgindo
Use o seguinte código de exemplo para definir um HumanoidDescription específico para todos os personagens jogadores que estão surgindo:
Atualizar HumanoidDescription para todos os personagens que estão surgindo
local Players = game:GetService("Players")
-- Parar o surgimento automático para que possa ser feito no callback "PlayerAdded"
Players.CharacterAutoLoads = false
local function onPlayerAdded(player)
-- Criar um 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)
-- Surgir personagem com o HumanoidDescription
player:LoadCharacterWithHumanoidDescription(humanoidDescription)
end
-- Conectar o evento "PlayerAdded" à função "onPlayerAdded()"
Players.PlayerAdded:Connect(onPlayerAdded)
Se a instância HumanoidDescription foi criada no Explorer e anexada ao espaço de trabalho, use o seguinte código de exemplo em um Script para acessar a instância do espaço de trabalho:
local Players = game:GetService("Players")
-- Parar o surgimento automático para que possa ser feito no callback "PlayerAdded"
Players.CharacterAutoLoads = false
local function onPlayerAdded(player)
-- Surgir personagem com "workspace.StudioHumanoidDescription"
player:LoadCharacterWithHumanoidDescription(workspace.StudioHumanoidDescription)
end
-- Conectar o evento "PlayerAdded" à função "onPlayerAdded()"
Players.PlayerAdded:Connect(onPlayerAdded)
Roupas em camadas em não-R15
Acessórios em camadas, como roupas em camadas, usam WrapTarget e WrapLayer para esticar e envolver sobre um Model alvo. Acessórios em camadas podem funcionar tanto com os personagens R15 do Roblox padrão quanto com modelos não R15.
A implementação personalizada de roupas em camadas, como um modelo usando um mapa UV de gaiola exclusivo, não pode ser carregada e publicada no Marketplace. Para mais informações, veja Especificações de roupas em camadas.
Se você está implementando acessórios em camadas em um rig de avatar R15, ou usando um rig personalizado, certifique-se de que seus acessórios e corpos incluam o seguinte:
- O modelo alvo, tipicamente o corpo, tem um componente WrapTarget nas malhas que modelos adicionais se destinam a envolver.
- O modelo de sobreposição, tipicamente a roupa ou o acessório, tem um componente WrapLayer nas malhas destinadas a envolver o modelo alvo.
- A gaiola externa do modelo alvo, e a gaiola interna e externa do modelo de sobreposição têm mapas UV correspondentes.
- Os vértices correspondentes na gaiola alvo devem ter os mesmos UVs que aqueles vértices na gaiola da camada.
- Se o seu modelo alvo não for R15, ou não incluir um Humanoid, você deve adicionar um objeto Weld ao MeshPart de sobreposição.
- O Weld deve ter Part0 e Part1 definidos para vincular o MeshPart de sobreposição à hierarquia de Part do Modelo. Por exemplo, Part0 refere-se ao acessório e Part1 refere-se à Parte pai.
- Se o seu modelo alvo for tanto R15 quanto incluir um Humanoid, essa solda é criada automaticamente.