Servicio de Editor de Avatar

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

El Servicio de Editor de Avatar te permite acceder y realizar cambios en el avatar de un usuario dentro de un juego. El Servicio de Editor de Avatar también puede acceder al inventario de un usuario y al Marketplace para guardar atuendos y comprar artículos de avatar para la cuenta del usuario.

Recomendamos implementar el Servicio de Editor de Avatar con un editor de avatar en el juego para una experiencia de personalización de personajes completa. Consulta el Demo Simple de Editor de Avatar lugar de referencia para un ejemplo de esta función.

Para comenzar a usar el Servicio de Editor de Avatar, primero debes solicitar acceso al inventario del usuario. Una vez que se concede el acceso con éxito, puedes realizar las siguientes acciones:

Solicitar acceso

Para comenzar a acceder al inventario de un usuario, necesitas solicitar al usuario que permita el acceso a través de PromptAllowInventoryReadAccess(). Debes realizar esta solicitud una vez por sesión.

Utiliza el siguiente ejemplo de código para iniciar el aviso de acceso y escuchar la respuesta del usuario:


local AvatarEditorService = game:GetService("AvatarEditorService")
AvatarEditorService:PromptAllowInventoryReadAccess()
local result = AvatarEditorService.PromptAllowInventoryReadAccessCompleted:Wait()
if result == Enum.AvatarPromptResult.Success then
-- ¡Acceso concedido!
end

El usuario recibe el siguiente aviso:

Una vez que el usuario acepta el aviso, AvatarEditorService puede comenzar a acceder al inventario del usuario.

Leer el inventario del usuario

Una vez que se concede el acceso por parte del usuario, puedes leer su inventario con la función GetInventory(), suministrando un array de AvatarAssetTypes para filtrar. Esta función devuelve un objeto InventoryPages que contiene los artículos propiedad del usuario.

Utiliza el siguiente ejemplo de código para imprimir una lista de accesorios específicos en el inventario de un usuario:


local AvatarEditorService = game:GetService("AvatarEditorService")
AvatarEditorService:PromptAllowInventoryReadAccess()
local result = AvatarEditorService.PromptAllowInventoryReadAccessCompleted:Wait()
if result == Enum.AvatarPromptResult.Success then
-- ¡Acceso concedido!
local assetTypes = {
Enum.AvatarAssetType.BackAccessory,
Enum.AvatarAssetType.ShoulderAccessory,
Enum.AvatarAssetType.WaistAccessory
}
local pagesObject = AvatarEditorService:GetInventory(assetTypes)
local currentPage = pagesObject:GetCurrentPage()
for _, item in currentPage do
print(item)
end
end

Buscar en el Marketplace

AvatarEditorService incluye funciones y eventos que te permiten buscar en el catálogo de Roblox. Para buscar, suministra tu consulta con un objeto CatalogSearchParams que incluya una o más de las siguientes propiedades:

PropiedadDescripción
AssetTypesUn array de Enum.AvatarAssetType como Enum.AvatarAssetType.BackAccessory.
BundleTypesUn array de Enum.BundleType como Enum.BundleType.BodyParts.
CategoryFilterUn Enum.CatalogCategoryFilter que describe las diversas categorías del catálogo como "Destacados" o "Creaciones de la Comunidad". Por defecto, esto está configurado en Enum.CatalogCategoryFilter.None
MaxPriceUn entero que describe el precio máximo para filtrar.
MinPriceUn entero que describe el precio mínimo para filtrar. Por defecto, MinPrice es 0.
SearchKeywordUna cadena para consultar las descripciones de los artículos en el catálogo.
SortTypeUn Enum.CatalogSortType que describe cómo se ordenan los resultados. Por defecto, esto está configurado en Enum.CatalogSortType.Relevance.
IncludeOffSaleUn booleano que describe si los resultados de la búsqueda incluyen artículos que no están a la venta. Por defecto, esto está configurado en false.
CreatorIdUn entero para especificar un creador determinado. Puedes usar un UserId o un GroupId.
CreatorNameUna cadena utilizada para buscar artículos creados por un creador determinado. Puedes usar un Nombre de Usuario o un Nombre de Grupo.

El siguiente ejemplo de código construye un objeto CatalogSearchParams para Espalda y Hombro tipos de activos, y lo pasa a través de una llamada a SearchCatalog():


local AvatarEditorService = game:GetService("AvatarEditorService")
local catalogSearchParams = CatalogSearchParams.new()
local assetTypes = {
Enum.AvatarAssetType.BackAccessory,
Enum.AvatarAssetType.ShoulderAccessory
}
catalogSearchParams.AssetTypes = assetTypes
local pagesObject =
--Esta función devuelve un objeto CatalogPages que contiene los resultados.
AvatarEditorService:SearchCatalog(catalogSearchParams)
local currentPage = pagesObject:GetCurrentPage()
for _, item in currentPage do
print(item)
end

Guardar avatares y atuendos

Cuando se usa junto con un editor de avatar en el juego, AvatarEditorService puede guardar y actualizar artículos de avatar y atuendos en la plataforma Roblox. Los usuarios no reciben artículos del catálogo que no poseen al guardar un avatar o atuendo.

Cualquier HumanoidDescription se puede guardar en el avatar actual del usuario con PromptSaveAvatar(). Esto puede incluir:

  • Configuraciones de avatar predefinidas que has creado utilizando artículos existentes del catálogo.
  • Cualquier configuración que el usuario haya elegido a través de un editor de avatar en el juego.

Dado que AvatarEditorService:PromptSaveAvatar() no produce un resultado, puedes obtener el resultado escuchando el evento AvatarEditorService.PromptSaveAvatarCompleted.

El siguiente código guardará una HumanoidDescription actual usando PromptSaveAvatar() y verifica si se ha producido un evento exitoso de AvatarEditorService.PromptSaveAvatarCompleted:


local AvatarEditorService = game:GetService("AvatarEditorService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local currentDescription = humanoid:GetAppliedDescription()
AvatarEditorService:PromptSaveAvatar(currentDescription, humanoid.RigType)
local result = AvatarEditorService.PromptSaveAvatarCompleted:Wait()
if result == Enum.AvatarPromptResult.Success then
-- ¡Avatar guardado!
end

Para guardar cualquier HumanoidDescription como un atuendo (sin sobrescribir el avatar actual del usuario), usa AvatarEditorService:PromptCreateOutfit().

Una vez llamado, puedes obtener el resultado de AvatarEditorService:PromptCreateOutfit() escuchando el evento AvatarEditorService.PromptCreateOutfitCompleted.

El siguiente ejemplo de código crea un atuendo con AvatarEditorService:PromptCreateOutfit() y escucha un evento exitoso de AvatarEditorService.PromptCreateOutfitCompleted:


local AvatarEditorService = game:GetService("AvatarEditorService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local currentDescription = humanoid:GetAppliedDescription()
AvatarEditorService:PromptCreateOutfit(currentDescription, humanoid.RigType)
local result = AvatarEditorService.PromptCreateOutfitCompleted:Wait()
if result == Enum.AvatarPromptResult.Success then
-- ¡Atuendo guardado!
end

Comprar artículos

Al guardar un avatar o un atuendo que utiliza artículos del catálogo, el usuario no recibe ningún artículo que no posea. Antes de guardar un avatar o atuendo, verifica si el usuario posee el activo con MarketplaceService:PlayerOwnsAsset() y ofrécele una opción para comprar el artículo con MarketplaceService:PromptPurchase().

Si no deseas implementar compras de artículos, puedes permitir que los usuarios agreguen a favoritos los artículos no poseídos con AvatarEditorService:PromptSetFavorite().

©2026 Roblox Corporation. Roblox, el logotipo de Roblox y "Powering Imagination" son algunas de nuestras marcas registradas y no registradas en los Estados Unidos y otros países.