게임 내 자산 생성

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

게임 내 자산 생성 기능을 사용하면 사용자가 게임에서 만든 창작물을 자신의 인벤토리에 저장할 수 있습니다. 사용자는 이러한 게임 내 창작물을 다른 자산처럼 사용할 수 있습니다. 또한 이러한 창작물은 Roblox 플랫폼에서 표시될 때 귀하의 게임에 속하게 되므로, 어떤 사용자든지 귀하의 게임에 오고 자신의 창작물을 만들기 위해 저작권 링크를 사용할 수 있습니다.

예를 들어, 사용자가 게임 내에서 애완동물로 사용할 커스터마이즈된 생물을 생성하고 가장 좋아하는 애완동물을 인벤토리에 저장할 수 있도록 할 수 있습니다. 사용자가 게임에서 수정하고 저장할 수 있는 객체를 지정할 수 있는 완전한 제어권이 있습니다. 사용자는 자신의 프로필에 자신이 만든 창작물을 표시할 수 있으며, 이는 귀하의 게임에 대한 저작권을 부여하여 게임의 가시성을 높입니다.

지원되는 자산 유형 및 제한 사항

플랫폼의 모든 자산과 마찬가지로 게임 내 창작물도 자산 중재의 적용을 받습니다. 현재 사용자가 귀하의 게임에서 패키지만 생성할 수 있도록 허용할 수 있습니다. 이러한 패키지는 스크립트나 오디오, 비디오, 중첩 패키지와 같은 개인 자산을 포함할 수 없습니다. 시스템이 사용자가 저장할 수 있는 패키지에서 스크립트나 개인 자산을 감지하면 저장 프롬프트를 숨겨 사용자가 게임 내 저장 작업을 차단합니다.

게임을 실행하거나 테스트하는 동안 스크립트나 개인 자산을 게임 내 창작물의 일환으로 추가하면 저장하지 못하고 Studio 출력 창 또는 개발자 콘솔에 오류 메시지가 표시됩니다.

게임 내 자산 생성 활성화

사용자가 게임 내 자산 생성을 활성화하려면 서버 측 스크립트에서 AssetService:PromptCreateAssetAsync() API 메서드를 사용하고 다른 생성 로직과 함께 사용합니다. 이 기능을 활성화할 게임 내 인스턴스를 지정하고, 메서드를 호출하기 위한 사용자 정의 트리거(예: UI 아이콘)를 설정하며, 자산 저장을 위한 클라이언트 원격 이벤트를 수신합니다.

AssetService:PromptCreateAssetAsync()는 다음 매개변수를 사용합니다:

서버가 AssetService:PromptCreateAssetAsync()를 호출하면 클라이언트에 패키지 제출 대화상자가 표시되어, 저장 작업을 트리거하는 사용자가 패키지의 이름과 설명을 입력할 수 있습니다. Roblox는 저장 워크플로가 플랫폼 수준의 기능이기 때문에 기본적으로 대화상자 UI를 제공합니다.

다음 예제 서버 측 스크립트는 사용자가 게임에서 페인트하여 자동차를 저장할 수 있도록 프롬프트를 표시합니다:

게임 내 자산 생성 예제 스크립트

-- AssetService 변수 정의
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("성공적으로 업로드됨, AssetId:", assetId)
else
print("결과 수신:", result)
end
else
print("오류")
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)

체험 내에서의 창작 데모 아레나는 이 기능을 사용하는 방법의 예를 보여줍니다. 사용자는 데모에 참여하여 사용자로서 게임 내 창작 워크플로를 체험할 수 있으며, 스튜디오에서 설계를 참조하기 위해 장소를 편집할 수 있습니다.

생성 후 및 저작권

사용자가 귀하의 게임에서 자산을 생성하고 저장한 후, 다음 장소에서 해당 자산을 찾을 수 있습니다:

사용자가 친구의 프로필이나 인벤토리에서 게임 내 창작물을 볼 때, 자산이 생성된 원본 게임에 대한 저작권을 확인할 수 있습니다. 사용자는 저작권 링크를 클릭하여 게임 페이지로 리디렉션되어 게임에 참여하고 자신의 창작물을 만들 수 있습니다.

©2026 Roblox Corporation. Roblox 및 Roblox 로고, 'Powering Imagination'은 미국 및 기타 국가 내 당사의 등록 및 미등록 상표입니다.