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

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

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

完全なキャラクターカスタマイズエクスペリエンスのために、ゲーム内のアバターエディタでアバターエディタサービスを実装することをお勧めします。この機能の例については、シンプルなアバターエディタデモ 参照場所を参照してください。

アバターエディターサービスを使用開始するには、まずユーザーのインベントリにアクセスをリクエストする必要があります。アクセスが成功して許可された後、次のアクションを実持ち物リストできます:

アクセスアクセス, 書き込み権限 (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 do
print(item)
end
end

市場を検索する

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 = assetTypes
local pagesObject =
--この機能は、結果を含むカタログページオブジェクトを返します。
AvatarEditorService:SearchCatalog(catalogSearchParams)
local currentPage = pagesObject:GetCurrentPage()
for _, item in currentPage do
print(item)
end

アバターと衣装を保存

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

どんな HumanoidDescription も、ユーザーの現在のアバターに PromptSaveAvatar() 保存できます。これには以下が含まれる可能性があります:

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

Since AvatarEditorService:PromptSaveAvatar() は生成しないので、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
-- アバターを保存しました!
end

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

呼び出されたら、 イベントを聞いて、結果を取得できます。

次のコードサンプルは、AvatarEditorService:PromptCreateOutfit()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
-- 衣装が保存されました!
end

アイテムの購入

アバターまたはカタログアイテムを使用した衣装を保存すると、ユーザーは所有していないアイテムを受け取らない。アバターまたは衣装を保存する前に、ユーザーが MarketplaceService:PlayerOwnsAsset() でアセットを所有しているかどうかを確認し、MarketplaceService:PromptPurchase() でアイテムを購入するオプションを提供します。

アイテム購入を実装したくない場合は、AvatarEditorService:PromptSetFavorite() で非所有のアイテムをお気に入りに登録できます。