아바타 편집기 서비스

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

아바타 편집 서비스를 사용하면 경험 내에서 사용자의 아바타에 액세스하고 변경할 수 있습니다. 아바타 편집 서비스는 사용자의 인벤토리에 액세스하고 마켓플레이스에서 의상을 저장하고 아바타 아이템을 구매하여 사용자 계정에 아바타를 저장할 수 있습니다.

완전한 캐릭터 사용자 정의 경험을 위해 게임 내 아바타 편집기를 사용하는 아바타 편집기 서비스를 구현하는 것이 좋습니다. 이 기능에 대한 자세한 내용은 Simple Avatar Editor Demo 참조 장소를 참조하십시오.

Avatar Editor 서비스를 사용하려면 먼저 사용자의 인벤토리에 액세스 요청을 요청해야 합니다. 액세스가 성공적으로 부여된 후 다음 작업을 수행할 수 있습니다.

액세스 요청

사용자의 인벤토리에 액세스하려면 사용자가 Class.AvatarEditorService:PromptAllowInventoryReadAccess()|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 카탈로그를 검색할 수 있는 기능 및 이벤트가 포함되어 있습니다. 검색하려면 다음 속성 중 하나를 포함하는 CatalogSearchParams 개체를 제공하세요.

속성설명
자산 유형Ennum.AvatarAssetType 같은 배열의 Ennum.AvatarAssetType.BackAccessory 등.
번들 유형Enumerate.BundleType 같은 배열은 다음과 같습니다. Enumerate.BundleType.BodyParts
필터Featured 또는 Enum.CatalogCategoryFilter.None과 같은 다양한 카테고리를 설명하는 카탈로그 카테고리 필터입니다. 기본적으로 이는 Enabled.CatalogCategoryFilter로 설정됩니다.
최고 가격필터링할 최대 가격을 설명하는 정수입니다.
최소 가격필터링할 최소 가격을 설명하는 정수입니다. 기본적으로 MinPrice는 0 입니다.
검색 키워드카탈로그에서 항목 설명에 대한 쿼리 문자열입니다.A string to query against item descriptions in the catalog.
정렬 유형결과 정렬 방식에 대해 설명하는 Enum.CatalogSortType입니다. 기본적으로 이는 Enum.CatalogSortType.Relevance로 설정됩니다.
판매 제외 포함검색 결과에 포함된 아이템이 판매 중지 아이템인지 여부를 설정합니다. 기본적으로 이는 false로 설정됩니다.
크리에이터 ID지정할 크리에이터를 나타내는 정수입니다. 사용할 수 있는 식별자는 사용자 아이디 또는 그룹 아이디입니다.
크리에이터 이름지정된 크리에이터가 만든 항목을 검색하는 데 사용되는 문자열입니다. 사용자 이름 또는 그룹 이름을 사용할 수 있습니다.

다음 코드 샘플은 백 및 어깨 자산 유형에 대해 CatalogSearchParams 개체를 생성하고 BackShoulder 자산 유형을 통과하는 1>Class.AvatarEditorService:SearchCatalog()|SearchCatalog()1> 호출을 통해 전달합니다.


local AvatarEditorService = game:GetService("AvatarEditorService")
local catalogSearchParams = CatalogSearchParams.new()
local assetTypes = {
Enum.AvatarAssetType.BackAccessory,
Enum.AvatarAssetType.ShoulderAccessory
}
catalogSearchParams.AssetTypes = assetTypes
local pagesObject =
--이 함수는 결과를 포함하는 CatalogPages 개체를 반환합니다.
AvatarEditorService:SearchCatalog(catalogSearchParams)
local currentPage = pagesObject:GetCurrentPage()
for _, item in currentPage do
print(item)
end

아바타 및 의상 저장

게임 내 아바타 편집기와 함께 사용하면 AvatarEditorService 아바타 아이템 및 의상을 Roblox 플랫폼에 저장하고 업데이트할 수 있습니다. 사용자는 아바타 또는 의상을 저장할 때 소유하지 않은 카탈로그 항목을 받지 않습니다.

Class.HumanoidDescription 을 사용자의 현재 아바타에 저장하려면 PromptSaveAvatar() 을 사용하십시오. 여기에는 다음이 포함될 수 있습니다.

  • 기존 카탈로그 항목을 사용하여 구축한 미리 정의 아바타 구성.
  • 사용자가 게임 내 아바타 편집기를 통해 선택한 모든 구성.

Class.AvatarEditorService:PromptSaveAvatar() 이 생성되지 않으므로 이벤트 AvatarEditorService.PromptSaveAvatarCompleted를 수신하여 결과를 얻을 수 있습니다.

다음 코드는 현재 HumanoidDescription 을 사용하여 저장하고 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

Class.HumanoidDescription 을 의상으로 저장하려면 사용자의 현재 아바타를 덮어쓰지 않고 사용하세요. AvatarEditorService:PromptCreateOutfit() .

호출한 후 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() 를 소유하고 있는지 확인하고 옵션을 제공하여 아이템을

아이템 구매를 구현하지 않으려면 사용자가 소유하지 않은 아이템을 AvatarEditorService:PromptSetFavorite() 와 함께 즐겨찾기로 허용할 수 있습니다.