アバターエディターサービスでは、エクスペリエンス内でユーザーのアバターにアクセスし、変更を加えることができます。アバターエディターサービスは、ユーザーのインベントリと マーケットプレイス にアクセスし、ユーザーのアカウントに衣装を保存し、アバターアイテムを購入することもできます。
完全なキャラクターカスタマイズエクスペリエンスのために、ゲーム内のアバターエディタでアバターエディタサービスを実装することをお勧めします。この機能の例については、シンプルなアバターエディタデモ 参照場所を参照してください。
アバターエディターサービスを使用開始するには、まずユーザーのインベントリにアクセスをリクエストする必要があります。アクセスが成功して許可された後、次のアクションを実持ち物リストできます:
- ユーザーのインベントリを読み取る ユーザーが所有するアイテムのリストを取得する
- マーケットプレイスを検索する , 多様なプロパティを使用してフィルタリングし排並べ替えする
- アバターアイテムを装備して衣服を保存する ユーザーのアバターに。
アクセスアクセス, 書き込み権限 (write access)リクエスト
ユーザーのインベントリ持ち物リストアクセスを開始するには、ユーザーに PromptAllowInventoryReadAccess() を通じてアクセスを許可するように促す必要があります。セッションごとにこのリクエストを 1 回実行する必要があります。
次のコードサンプルを使用して、アクセスプロンプトを開始し、ユーザーの応答を聞きます:
local AvatarEditorService = game:GetService("AvatarEditorService")AvatarEditorService:PromptAllowInventoryReadAccess()local result = AvatarEditorService.PromptAllowInventoryReadAccessCompleted:Wait()if result == Enum.AvatarPromptResult.Success then-- アクセスが許可されました!end
ユーザーは次のプロンプトを受け取ります:

ユーザーがプロンプトを承認すると、AvatarEditorService はユーザーのインベントリにアクセスできるようになります。
ユーザーインベントリを読持ち物リスト
ユーザーにアクセス権が付与されると、GetInventory() 関数を使用してインベントリを読み込み、フィルターに使用する配列を AvatarAssetTypes 供給できます。この機能は、ユーザーが所有するアイテムを含む InventoryPages オブジェクトを返します。
次のコードサンプルを使用して、ユーザーのインベント持ち物リストに特定のアクセサリのリストを印刷します:
local AvatarEditorService = game:GetService("AvatarEditorService")AvatarEditorService:PromptAllowInventoryReadAccess()local result = AvatarEditorService.PromptAllowInventoryReadAccessCompleted:Wait()if result == Enum.AvatarPromptResult.Success then-- アクセスが許可されました!local assetTypes = {Enum.AvatarAssetType.BackAccessory,Enum.AvatarAssetType.ShoulderAccessory,Enum.AvatarAssetType.WaistAccessory}local pagesObject = AvatarEditorService:GetInventory(assetTypes)local currentPage = pagesObject:GetCurrentPage()for _, item in currentPage doprint(item)endend
市場を検索する
AvatarEditorService には、Roblox カタログを検索できる機能とイベントが含まれています。検サーチするには、次のプロパティの 1つまたは複数を含む CatalogSearchParams オブジェクトをクエリに供給してください:
性質 | 説明 |
---|---|
アセットタイプ | Enum.AvatarAssetType.BackAccessory などの配列 Enum.AvatarAssetType |
バンドル類型 | Enum.BundleType.BodyParts などの配列。 |
カテゴリフィルタ | A Enum.CatalogCategoryFilter 「フィーチャー」または「コミュニティ作成」などの各種カタログカテゴリを説明する。デフォルトでは、これは Enum.CatalogCategoryFilter.None に設定されます |
最大価格 | フィルターする最大価格を記述する整数。 |
最低価格 | フィルターする最低価格を説明する整数。デフォルトでは、MinPrice は 0 です。 |
検索キーワード | カタログのアイテムの説明に対してクエリーする文字列。 |
ソートタイプ | 結果の順序を説明する Enum.CatalogSortType 。デフォルトでは、これは Enum.CatalogSortType.Relevance に設定されます。 |
インクルードオフセール | 検索の結果がオフセールアイテムを含むかどうかを説明するブール。デフォルトでは、これは false に設定されます。 |
クリエイターID | 指定されたクリエーターを示す整数。ユーザーID またはグループID を使用できます。 |
クリエイタ名 | 特定のクリエイターによって作成されたアイテムを検索するための文字列。ユーザー名またはグループ名を使用できます。 |
次のコードサンプルは、 バック および 肩 アセットタイプのオブジェクトを構築し、それを 呼び出しを通じてパスします:
local AvatarEditorService = game:GetService("AvatarEditorService")local catalogSearchParams = CatalogSearchParams.new()local assetTypes = {Enum.AvatarAssetType.BackAccessory,Enum.AvatarAssetType.ShoulderAccessory}catalogSearchParams.AssetTypes = assetTypeslocal pagesObject =--この機能は、結果を含むカタログページオブジェクトを返します。AvatarEditorService:SearchCatalog(catalogSearchParams)local currentPage = pagesObject:GetCurrentPage()for _, item in currentPage doprint(item)end
アバターと衣装を保存
ゲーム内のアバターエディタと一緒に使用すると、AvatarEditorService アバターアイテムと衣装を Roblox プラットフォームに保存し、更新できます。ユーザーは、アバターまたは衣装を保存するときに所有していないカタログアイテムを受け取りません。
どんな HumanoidDescription も、ユーザーの現在のアバターに PromptSaveAvatar() 保存できます。これには以下が含まれる可能性があります:
- 既存のカタログアイテムを使用して構築したプリ定義のアバター構成。
- ゲーム内のアバターエディターを通じてユーザーが選択した構成。

Since AvatarEditorService:PromptSaveAvatar() は生成しないので、AvatarEditorService.PromptSaveAvatarCompleted イベントを聞いて結果を取得できます。
次のコードは、 を使用して現在を保存し、成功した イベントをチェックします:
local AvatarEditorService = game:GetService("AvatarEditorService")local Players = game:GetService("Players")local player = Players.LocalPlayerlocal 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-- アバターを保存しました!end
ユーザーの現在のアバターを上書きせずに、どれか HumanoidDescription を衣服として保存するには、AvatarEditorService:PromptCreateOutfit() を使用します。

呼び出されたら、 イベントを聞いて、結果を取得できます。
次のコードサンプルは、AvatarEditorService:PromptCreateOutfit() と AvatarEditorService.PromptCreateOutfitCompleted の衣装を作成し、成功したイベントをリスニングします:
local AvatarEditorService = game:GetService("AvatarEditorService")local Players = game:GetService("Players")local player = Players.LocalPlayerlocal 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-- 衣装が保存されました!end
アイテムの購入
アバターまたはカタログアイテムを使用した衣装を保存すると、ユーザーは所有していないアイテムを受け取らない。アバターまたは衣装を保存する前に、ユーザーが MarketplaceService:PlayerOwnsAsset() でアセットを所有しているかどうかを確認し、MarketplaceService:PromptPurchase() でアイテムを購入するオプションを提供します。
アイテム購入を実装したくない場合は、AvatarEditorService:PromptSetFavorite() で非所有のアイテムをお気に入りに登録できます。