Service d'Éditeur d'Avatar

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Le Service d'Éditeur d'Avatar vous permet d'accéder et de modifier l'avatar d'un utilisateur dans un jeu. Le Service d'Éditeur d'Avatar peut également accéder à l'inventaire d'un utilisateur et au Marché pour sauvegarder des tenues et acheter des éléments d'avatar pour le compte de l'utilisateur.

Nous vous recommandons de mettre en œuvre le Service d'Éditeur d'Avatar avec un éditeur d'avatar dans le jeu pour une expérience de personnalisation complète du personnage. Consultez le Démonstration Simple de l'Éditeur d'Avatar comme exemple de cette fonctionnalité.

Pour commencer à utiliser le Service d'Éditeur d'Avatar, vous devez d'abord demander l'accès à l'inventaire de l'utilisateur. Une fois l'accès accordé avec succès, vous pouvez effectuer les actions suivantes :

Demander l'accès

Pour commencer à accéder à l'inventaire d'un utilisateur, vous devez inviter l'utilisateur à permettre l'accès via PromptAllowInventoryReadAccess(). Vous devez effectuer cette demande une fois par session.

Utilisez l'exemple de code suivant pour initier l'invite d'accès et écouter la réponse de l'utilisateur :


local AvatarEditorService = game:GetService("AvatarEditorService")
AvatarEditorService:PromptAllowInventoryReadAccess()
local result = AvatarEditorService.PromptAllowInventoryReadAccessCompleted:Wait()
if result == Enum.AvatarPromptResult.Success then
-- Accès accordé !
end

L'utilisateur reçoit l'invite suivante :

Une fois que l'utilisateur accepte l'invite, AvatarEditorService peut commencer à accéder à l'inventaire de l'utilisateur.

Lire l'inventaire de l'utilisateur

Une fois l'accès accordé par l'utilisateur, vous pouvez lire son inventaire avec la fonction GetInventory(), en fournissant un tableau de AvatarAssetTypes pour filtrer. Cette fonction retourne un objet InventoryPages contenant les objets possédés par l'utilisateur.

Utilisez l'exemple de code suivant pour imprimer une liste d'accessoires spécifiques dans l'inventaire de l'utilisateur :


local AvatarEditorService = game:GetService("AvatarEditorService")
AvatarEditorService:PromptAllowInventoryReadAccess()
local result = AvatarEditorService.PromptAllowInventoryReadAccessCompleted:Wait()
if result == Enum.AvatarPromptResult.Success then
-- Accès accordé !
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

Rechercher sur le Marché

AvatarEditorService inclut des fonctions et des événements qui vous permettent de rechercher dans le catalogue Roblox. Pour rechercher, fournissez votre requête avec un objet CatalogSearchParams qui inclut une ou plusieurs des propriétés suivantes :

PropriétéDescription
AssetTypesUn tableau de Enum.AvatarAssetType tel que Enum.AvatarAssetType.BackAccessory.
BundleTypesUn tableau de Enum.BundleType tel que Enum.BundleType.BodyParts.
CategoryFilterUn Enum.CatalogCategoryFilter décrivant les différentes catégories du catalogue comme "Vedettes" ou "Créations de la Communauté". Par défaut, cela est défini sur Enum.CatalogCategoryFilter.None.
MaxPriceUn entier décrivant le prix maximum pour le filtrage.
MinPriceUn entier décrivant le prix minimum pour le filtrage. Par défaut, MinPrice est 0.
SearchKeywordUne chaîne à interroger contre les descriptions des articles dans le catalogue.
SortTypeUn Enum.CatalogSortType qui décrit comment les résultats sont ordonnés. Par défaut, cela est défini sur Enum.CatalogSortType.Relevance.
IncludeOffSaleUn booléen décrivant si les résultats de la recherche incluent des articles hors vente. Par défaut, cela est défini sur faux.
CreatorIdUn entier pour spécifier un créateur donné. Vous pouvez utiliser soit un UserId soit un GroupId.
CreatorNameUne chaîne utilisée pour rechercher des articles créés par un créateur donné. Vous pouvez utiliser soit un Nom d'Utilisateur soit un Nom de Groupe.

L'exemple de code suivant construit un objet CatalogSearchParams pour les types d'actifs Back et Shoulder, et le passe à un appel SearchCatalog() :


local AvatarEditorService = game:GetService("AvatarEditorService")
local catalogSearchParams = CatalogSearchParams.new()
local assetTypes = {
Enum.AvatarAssetType.BackAccessory,
Enum.AvatarAssetType.ShoulderAccessory
}
catalogSearchParams.AssetTypes = assetTypes
local pagesObject =
--Cette fonction retourne un objet CatalogPages contenant les résultats.
AvatarEditorService:SearchCatalog(catalogSearchParams)
local currentPage = pagesObject:GetCurrentPage()
for _, item in currentPage do
print(item)
end

Sauvegarder des avatars et des tenues

Utilisé avec un éditeur d'avatar dans le jeu, AvatarEditorService peut sauvegarder et mettre à jour les éléments d'avatar et les tenues sur la plateforme Roblox. Les utilisateurs ne reçoivent pas les articles du catalogue qu'ils ne possèdent pas lorsqu'ils sauvegardent un avatar ou une tenue.

Toute HumanoidDescription peut être sauvegardée sur l'avatar actuel de l'utilisateur avec PromptSaveAvatar(). Cela peut inclure :

  • Des configurations d'avatar prédéfinies que vous avez créées en utilisant des articles du catalogue existants.
  • Toute configuration choisie par l'utilisateur via un éditeur d'avatar dans le jeu.

Puisque AvatarEditorService:PromptSaveAvatar() ne produit pas de résultat, vous pouvez obtenir le résultat en écoutant l'événement AvatarEditorService.PromptSaveAvatarCompleted.

Le code suivant sauvegardera une HumanoidDescription actuelle en utilisant PromptSaveAvatar() et vérifie un événement AvatarEditorService.PromptSaveAvatarCompleted réussi :


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 sauvegardé !
end

Pour sauvegarder toute HumanoidDescription en tant que tenue (sans écraser l'avatar actuel de l'utilisateur), utilisez AvatarEditorService:PromptCreateOutfit().

Une fois appelé, vous pouvez obtenir le résultat de AvatarEditorService:PromptCreateOutfit() en écoutant l'événement AvatarEditorService.PromptCreateOutfitCompleted.

L'exemple de code suivant crée une tenue avec AvatarEditorService:PromptCreateOutfit() et écoute un événement AvatarEditorService.PromptCreateOutfitCompleted réussi :


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
-- Tenue sauvegardée !
end

Acheter des articles

Lors de la sauvegarde d'un avatar ou d'une tenue utilisant des articles du catalogue, l'utilisateur ne reçoit aucun article qu'il ne possède pas. Avant de sauvegarder un avatar ou une tenue, vérifiez si l'utilisateur possède l'actif avec MarketplaceService:PlayerOwnsAsset() et offrez-lui une option pour acheter l'article avec MarketplaceService:PromptPurchase().

Si vous ne souhaitez pas mettre en œuvre les achats d'articles, vous pouvez plutôt permettre aux utilisateurs de marquer les articles non possédés comme favoris avec AvatarEditorService:PromptSetFavorite().

©2026 Société Roblox. Roblox, le logo Roblox et Powering Imagination font partie de nos marques déposées aux États-Unis et dans d'autres pays.