경험 내 자산 생성 기능으로 사용자가 경험에서 만든 창작물을 인벤토리에 저장할 수 있도록 허용할 수 있습니다.사용자는 이러한 경험 내 크리에이션을 다른 자산과 마찬가지로 사용할 수 있습니다.또한 이러한 창작물은 Roblox 플랫폼에 표시되면 경험에 기여하므로 모든 사용자가 기여 링크를 사용하여 경험에 도달하고 보유것을 만들 수 있습니다.
예를 들어, 사용자가 경험에서 펫으로 사용자 지정 크리처를 만들고 가장 좋아하는 펫을 인벤토리에 저장할 수 있도록 허용할 수 있습니다.사용자가 경험에서 수정하고 저장할 수 있는 개체를 지정할 수 있는 전체 제어가 있습니다.사용자는 차례로 자신의 프로필에 경험에 대한 공헌을 표시하여 경험의 가시성을 높일 수 있습니다.
지원되는 자산 유형 및 제한
플랫폼의 모든 자산과 마찬가지로, 경험 내 크리에이션은 자산 조정에 대한 영향을 받습니다.현재 사용자가 경험에서 패키지를 생성하도록 허용할 수 있는 것은 없습니다.이러한 패키지에는 오디오, 비디오 및 중첩된 패키지와 같은 스크립트나 개인 자산이 포함될 수 없습니다.시스템이 사용자가 저장할 수 있는 패키지에서 스크립트나 개인 자산을 감지하면, 사용자에게 저장 프롬프트를 숨겨 경험 내 저장 작업을 차단합니다.
경험을 실행하거나 테스트하고 경험 내 생성의 일부로 스크립트 또는 개인 자산을 추가할 때 스튜디오 출력 창 또는 개발자 콘솔 에 오류 메시지가 저장되지 않고 오류가 표시됩니다.
경험 내 자산 생성 작품
사용자를 위한 경험 내 자산 생성을 활성화하려면 서버 사이드 스크립트에서 AssetService:PromptCreateAssetAsync() API 메서드와 다른 생성 논리를 사용하십시오.경험에서 이 기능을 활성화하려는 인스턴스를 지정하고, 메서드를 호출하기 위한 사용자 지정 트리거(예: UI 아이콘)를 설정하고, 자산을 저장하기 위한 클라이언트 원격 이벤트를 수신하십시오.
AssetService:PromptCreateAssetAsync() 는 다음 매개 변수를 사용합니다:
- 자산 작품제출하는 사용자를 나타내는 A Player 개체.
- 생성할 자산을 나타내는 Instance 작품.
- 현재 Enum.AssetType 에 제한되어 있는 Enum.AssetType.Model 입니다.
서버가 AssetService:PromptCreateAssetAsync()를 호출하면 클라이언트에 패키지 제출 대화 상자가 표시되어 저장 작업을 트리거하는 사용자가 패키지의 이름과 설명을 입력할 수 있습니다.저장 워크플로가 플랫폼 수준 기능이기 때문에 Roblox는 대화형 UI를 상자 밖으로 제공합니다. Roblox provides the dialog UI out-of-the-box, as the save workflow is a platform-level functionality.
다음 예제 서버 사이드 스크립트는 사용자에게 경험에서 그린 차를 저장하도록 요청합니다.
경험 내 자산 생성을 위한 예시 스크립트
-- 자산 서비스 변수 정의
local AssetService = game:GetService("AssetService")
-- 제출 대화 상자를 요청하기 위해 PromptCreateAssetAsync() 설정
local function CreateAsset(player, instance)
local complete, result, assetId = pcall(function()
return AssetService:PromptCreateAssetAsync(player, instance, Enum.AssetType.Model)
end)
if complete then
if result == Enum.PromptCreateAssetResult.Success then
print("successfully uploaded, AssetId:", assetId)
else
print("Received result", result)
end
else
print("error")
print(result)
end
end
-- 자동차 페인팅 논리 생략됨
-- 이벤트 처리기 추가
local function onUserPublish(player, promptObject)
-- 사용자가 경험의 기본 색상으로 자동차 인스턴스를 저장합니다
if promptObject.Name == "car" then
CreateAsset(player, car)
elseif promptObject.Name == "CarPaintYellow" or promptObject.Name == "CarPaintBlue" or promptObject.Name == "CarPaintBlack" or promptObject.Name == "CarPaintRed" then
PaintCarColor(promptObject.Name)
end
end
PublishEvent.OnServerEvent:Connect(onUserPublish)
경험 내 생성 데모 아레나에서는 이 기능을 사용하는 방법에 대한 예를 보여줍니다.사용자로서 경험 내 생성 워크플로를 통해 이동하거나 스튜디오에서 장소를 편집하여 디자인을 참조할 수 있도록 데모에 참여할 수 있습니다.
생성 후 및 공여 후
사용자가 경험에서 자산을 만들고 저장한 후에는 다음 장소에서 찾을 수 있습니다:
- 그들의 내 인벤토리 페이지.
- 그들의 프로필 페이지의 창작 탭.
- 그들의 크리에이터 대시보드 개발 아이템 탭 아래에 있는 크리에이션 페이지.
- Studio의 도구 상자 탭의 인벤토리 탭.
사용자가 친구의 프로필이나 인벤토리에서 경험 내 크리에이션을 보면, 자산이 생성된 원래 경험에 대한 공헌도를 볼 수 있습니다.사용자는 공헌도 링크를 클릭하여 경험 페이지로 리디렉션할 수 있으므로 경험에 참여하고 보유경험을 만들 수 있습니다.