La mayoría de los juegos permiten a los jugadores usar su propio avatar de Roblox, aunque algunos implementan un sistema de personalización en el juego como la plantilla de UGC Homestore. Otros juegos realizan modificaciones limitadas a los avatares de los jugadores, como cascos, alas o accesorios que coinciden con el género.
Para crear un juego único que altere la apariencia de tus usuarios, puedes personalizar las propiedades del personaje predeterminado a través de configuraciones del avatar o modificar la apariencia manualmente.
Configuraciones globales del avatar
La opción de Archivo ⟩ Configuraciones del avatar en Studio te permite configurar rápidamente varias propiedades globales del personaje jugador en tu juego. Estas configuraciones se aplican globalmente a todos los modelos de personajes jugadores que se unan a tu juego. Para modificar personajes específicos, como modelos de personajes no jugadores, consulta modificar la apariencia manualmente.
En esta ventana, puedes establecer varios preajustes para ropa, accesorios, partes del cuerpo, comportamiento de colisión, animaciones y más. Al editar estas configuraciones, se muestra una vista previa de las configuraciones aplicadas en el espacio de trabajo.
Para más información, consulta Configuraciones del avatar.
Modificar la apariencia manualmente
Los modelos de personaje contienen un objeto Humanoid que otorga al modelo características especiales, como caminar, saltar, equipar elementos e interactuar con el entorno.
Puedes modificar programáticamente un Humanoid actualizando HumanoidDescription. Esto incluye modelos de personajes jugadores o modelos de personajes no jugadores en tu juego.
Puedes ajustar las siguientes propiedades del personaje en tu juego utilizando HumanoidDescription:
| Propiedad del personaje | Descripción |
|---|---|
| Escala | Valores numéricos para rasgos físicos altura, ancho, cabeza, tipo de cuerpo y proporción. Esto no afecta a los tipos de cuerpo R6. |
| Accesorios | Los ID de activos de accesorios equipados por un personaje. |
| Ropa Clásica | Los ID de activos de los texturas de imagen Shirt, Pants y ShirtGraphic que puedes aplicar al personaje. |
| Parte del Cuerpo | Los ID de activos de las partes Cara, Cabeza, Torso, BrazoDerecho, BrazoIzquierdo, PiernaDerecha y PiernaIzquierda de un personaje. |
| Colores del Cuerpo | Los BodyColors de las partes individuales del personaje. |
| Animaciones | Los ID de activos de Animaciones que puedes usar en un personaje. |
Personaliza un personaje con HumanoidDescription siguiendo los siguientes pasos:
- Crea una descripción del personaje del usuario, un ID de atuendo específico o de un ID de usuario específico.
- Modifica la descripción para personalizar las propiedades que deseas aplicar al personaje Humanoid.
- Aplica la descripción a un solo personaje, a todos los personajes jugadores o incluso a todos los personajes que aparezcan.
Crear HumanoidDescription
Puedes crear una nueva instancia de HumanoidDescription directamente dentro de la jerarquía de Explorador o dentro de un Script con el siguiente código:
Crear nueva instancia de HumanoidDescriptionlocal humanoidDescription = Instance.new("HumanoidDescription")
En la mayoría de los casos, deberías usar una HumanoidDescription existente en lugar de una HumanoidDescription nueva por defecto, haciendo referencia a un personaje jugador existente, atuendo de avatar o ID de usuario.
Desde el personaje jugador
Utiliza el siguiente ejemplo de código para crear un nuevo HumanoidDescription basado en las propiedades actuales del personaje jugador:
Generar un HumanoidDescription desde un personaje jugadorlocal humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")local humanoidDescription = Instance.new("HumanoidDescription")if humanoid thenhumanoidDescription = humanoid:GetAppliedDescription()end
Desde un atuendo existente
Utiliza el siguiente código de ejemplo para crear un HumanoidDescription desde un ID de atuendo usando Players.GetHumanoidDescriptionFromOutfitID:
Generar un HumanoidDescription desde un ID de Atuendolocal Players = game:GetService("Players")local outfitId = 480059254local humanoidDescriptionFromOutfit = Players:GetHumanoidDescriptionFromOutfitId(outfitId)
Desde un usuario específico
Utiliza el siguiente código de ejemplo para crear un HumanoidDescription desde un ID de usuario usando Players:GetHumanoidDescriptionFromUserId():
Generar un HumanoidDescription desde un ID de usuariolocal Players = game:GetService("Players")local userId = 491243243local humanoidDescriptionFromUser = Players:GetHumanoidDescriptionFromUserId(userId)
Modificar HumanoidDescription
Para personalizar las propiedades de HumanoidDescription, configúralas directamente en HumanoidDescription o utiliza un método específico antes de aplicar HumanoidDescription a un personaje.
El siguiente ejemplo de código proporciona ejemplos de configuración de los diferentes tipos de propiedades de HumanoidDescription:
Actualizar varias propiedades 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)
Establecer múltiples accesorios
Para cambios en accesorios en capas o por lotes, puedes usar HumanoidDescription:SetAccessories() para hacer actualizaciones relacionadas con los accesorios. El siguiente código de ejemplo agrega un suéter en capas y una chaqueta en ese orden a un HumanoidDescription:
Cambiar múltiples accesorios a la 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
Aplica HumanoidDescription a personajes Humanoid específicos en tu juego con Humanoid:ApplyDescription() o Humanoid.LoadCharacterWithHumanoidDescription.
En un solo personaje
ApplyDescription() puede apuntar a cualquier Humanoid. Usa el siguiente código para agregar un nuevo par de gafas de sol y un nuevo torso al personaje jugador:
Actualizar HumanoidDescription para un personaje jugador específicolocal humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")if humanoid thenlocal descriptionClone = humanoid:GetAppliedDescription()descriptionClone.Torso = 86500008-- Se permiten múltiples activos de accesorios para la cara en una cadena separada por comasdescriptionClone.FaceAccessory = descriptionClone.FaceAccessory .. ",2535420239"-- Aplicar el "descriptionClone" modificado al humanoidehumanoid:ApplyDescription(descriptionClone)end
En todos los personajes jugadores
Utiliza el siguiente código de ejemplo para aplicar un HumanoidDescription a todos los jugadores actuales en el juego:
Actualizar HumanoidDescription para todos los personajes jugadores actualeslocal Players = game:GetService("Players")for _, player in Players:GetPlayers() dolocal humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")if humanoid then-- Crear un 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
En todos los personajes que aparecen
Utiliza el siguiente código de ejemplo para establecer un HumanoidDescription específico para todos los personajes jugadores que aparecen:
Actualizar HumanoidDescription para todos los personajes que aparecen
local Players = game:GetService("Players")
-- Detener el inicio automático para que se pueda realizar en el callback "PlayerAdded"
Players.CharacterAutoLoads = false
local function onPlayerAdded(player)
-- Crear un 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)
-- Generar el personaje con el HumanoidDescription
player:LoadCharacterWithHumanoidDescription(humanoidDescription)
end
-- Conectar el evento "PlayerAdded" a la función "onPlayerAdded()"
Players.PlayerAdded:Connect(onPlayerAdded)
Si la instancia HumanoidDescription fue creada en el Explorador y se vinculó al espacio de trabajo, utiliza el siguiente código de ejemplo en un Script para acceder a la instancia del espacio de trabajo:
local Players = game:GetService("Players")
-- Detener el inicio automático para que se pueda realizar en el callback "PlayerAdded"
Players.CharacterAutoLoads = false
local function onPlayerAdded(player)
-- Generar el personaje con "workspace.StudioHumanoidDescription"
player:LoadCharacterWithHumanoidDescription(workspace.StudioHumanoidDescription)
end
-- Conectar el evento "PlayerAdded" a la función "onPlayerAdded()"
Players.PlayerAdded:Connect(onPlayerAdded)
Ropa en capas en modelos no-R15
Los accesorios enjaulados, como la ropa en capas, utilizan WrapTarget y WrapLayer para estirarse y ajustarse sobre un Model objetivo. Los accesorios en capas pueden funcionar tanto con personajes estándar de R15 en Roblox como con modelos no-R15.
La implementación personalizada de ropa en capas, como un modelo que utiliza un mapa UV de jaula único, no puede ser cargada y publicada en el Mercado. Para más información, consulta Especificaciones de ropa en capas.
Ya sea que estés implementando accesorios en capas en un rig de avatar R15, o usando un rig personalizado, asegúrate de que tus accesorios y cuerpos incluyan lo siguiente:
- El modelo objetivo, típicamente el cuerpo, tiene un componente WrapTarget en las mallas que se pretende envolver con modelos adicionales.
- El modelo de capa, típicamente la ropa o accesorio, tiene un componente WrapLayer en las mallas destinadas a envolver el modelo objetivo.
- La jaula exterior del modelo objetivo y la jaula interior y exterior del modelo de capa tienen mapas UV coincidentes.
- Los vértices correspondientes en la jaula objetivo deben tener los mismos UV que esos vértices en la jaula de la capa.
- Si tu modelo objetivo no es R15, o no incluye un Humanoid, debes agregar un objeto Weld a la MeshPart de la capa.
- El Weld debe tener Part0 y Part1 establecidos para conectar la MeshPart de la capa a la jerarquía Part del Model. Por ejemplo, Part0 se refiere al accesorio y Part1 se refiere a la parte padre.
- Si tu modelo objetivo es tanto R15 como incluye un Humanoid, este soldadura se crea automáticamente.