アバターエディタサービス

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

アバターエディタサービスでは、ユーザーのアバターにアクセスして変更し、エクスペリエンス内のユーザーのインベントリにアクセスできます。アバターエディタサービスは、ユーザーのインベントリとマーケットプレイスにアクセスして、服装を保存し、ユーザーのアカウントにアバターアイテムを購入することができます。

ゲーム内のアバターエディターを使用して、完全なキャラクターのカスタマイズ体験を提供するために、アバターエディターサービスを実装することをお勧めします。この機能の詳細は、「Simple Avatar Editor Demo」参照場所を参照してください。

アバターエディタサービスを使用するには、まずユーザーのインベントリにアクセスをリクエストする必要があります。アクセスを許可すると、次のアクションを実行できます:

アクセスをリクエストする

ユーザーのインベントリにアクセスするには、PromptAllowInventoryReadAccess() を通じて、ユーザーにアクセスを許持ち物リストする必要があります。このリクエストは 1 セッションごとに 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 do
print(item)
end
end

マーケットプレイスを検索する

AvatarEditorService には、Roblox カタログを検索できる機能とイベントが含まれています。検サーチするには、 CatalogSearchParams オブジェクトを含む 1つ以上の次のプロパティを含む 1つ以上の次のプロパティを含む、または、次のプロパティを含む 1つ以上の次のプロパティを含む 1つ以上の次のプロパティを含む 1つ以上の次のプロパテ

プロパティ説明
アセットタイプ枚数.アバターアセットタイプ のような配列の 枚数.アバターアセットタイプ.BackAccessory。
バンドルタイプ枚数.バンドルタイプ のような配列を含む 枚数.バンドルタイプ.ボディパーツ。
カテゴリフィルタA Enum.CatalogCategoryFilter は、「特徴」や「コミュニティ製作」などの様々なカタログカテゴリを説明します。デフォルトでは、これは Enum.CatalogCategoryFilter.None に設定されています。
最大価格フィルターに最大価格を記述する整数。
最小価格フィルターする最小価格を表現する整数。デフォルトでは、MinPrice は 0 です。
検索キーワードカタログのアイテムの説明に対する文字列をクエリーする。
ソートタイプ結果の順序を記述する ContainerSortType 。デフォルトでは、これは ContainerSortType.Relevance に設定されています。
オフセールを含める検索の結果にオフセールアイテムが含まれているかどうかを表すブーレット。デフォルトでは、これは偽で設定されています。
クリエイターId指定するクリエイターを指定する整数。ユーザーID またはグループ ID を使用できます。
クリエイター名指定されたクリエーターによって作成されたアイテムを検索するためのストリング。ユーザー名またはグループ名を使用できます。

次のコードサンプルは、CatalogSearchParams オブジェクトを Datatype.Back および Datatype.Shoulder アセットタイプのために構築し、2> Class.AvatarEditorService:SearchCatalog()|SearchCatalog()2> コールを通じてパスします:


local AvatarEditorService = game:GetService("AvatarEditorService")
local catalogSearchParams = CatalogSearchParams.new()
local assetTypes = {
Enum.AvatarAssetType.BackAccessory,
Enum.AvatarAssetType.ShoulderAccessory
}
catalogSearchParams.AssetTypes = assetTypes
local pagesObject =
--この関数は、結果を含むカタログページオブジェクトを返します。
AvatarEditorService:SearchCatalog(catalogSearchParams)
local currentPage = pagesObject:GetCurrentPage()
for _, item in currentPage do
print(item)
end

アバターと衣装を保存する

ゲーム内のアバターエディタと一緒に使用すると、AvatarEditorService は、アバターアイテムや衣装を Roblox プラットフォームに保存および更新できます。ユーザーは、アバターまたは衣装を保存すると、カタログアイテムを受信しないようになります。

任意の HumanoidDescription は、PromptSaveAvatar() でユーザーのアバターに保存できます。これには以下が含まれます:

  • 既存のカタログアイテムを使用して構築したプリデファインされたアバターの設定。
  • ユーザーがゲーム内のアバターエディタを通じて選択した設定。

Class.AvatarEditorService:PromptSaveAvatar() が生成されないので、AvatarEditorService.PromptSaveAvatarCompleted イベントを聞くことで結果を取得できます。

次のコードは、HumanoidDescription を使用して、PromptSaveAvatar() を使用して、お使いのコンピューターに AvatarEditorService.PromptSaveAvatarCompleted の保存を保存し、成功した 2>Class.AvatarCompleted2> イベントをチェックします。


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
-- アバターが保存されました!
end

ユーザーの現在のアバターを上書きせずに、HumanoidDescription を保存するには、AvatarEditorService:PromptCreateOutfit() を使用します。

呼び出されると、AvatarEditorService:PromptCreateOutfit() の結果を取得できます。AvatarEditorService.PromptCreateOutfitCompleted イベントを聞くことで。

次のコードサンプルは、AvatarEditorService:PromptCreateOutfit() というコードで、AvatarEditorService.PromptCreateOutfitCompleted の成功した Class.AvatarEditorService.PromptCreateOutfit イベントをリスニングします:


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
-- 衣装が保存されました!
end

アイテムの購入

カタログアイテムを使用するアバターまたは衣装を保存すると、ユーザーは所有していないアイテムを受け取りません。アバターまたは衣装を保存する前に、ユーザーがアセットを所有しているかどうかを確認してください。アバターまたは衣装を保存する前に、ユーザーにアセットを所有してい

アイテム購入を実装したくない場合は、ユーザーが AvatarEditorService:PromptSetFavorite() で非所有アイテムをお気に入りに追加できます。