ゲーム内アセット作成

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

ゲーム内アセット作成機能を使用すると、ユーザーがゲーム内で作成した作品をインベントリに保存できるようになります。ユーザーはこれらのゲーム内作品を他のアセットと同様に使用できます。さらに、これらの作品はRobloxプラットフォーム上で表示される際にあなたのゲームに帰属するため、どのユーザーでも帰属リンクを使用してあなたのゲームにアクセスし、自分の作品を作成することができます。

例えば、ユーザーがゲーム内でペットとしてカスタムクリーチャーを作成できるようにし、お気に入りのペットをインベントリに保存できるようにすることができます。ユーザーがどのオブジェクトを変更して保存できるかを指定する完全なコントロールがあなたにあります。ユーザーはその作品をプロフィールに表示し、あなたのゲームに帰属することで、ゲームの視認性を高めることができます。

対応するアセットタイプと制限事項

他のすべてのプラットフォームのアセットと同様に、ゲーム内作品はアセットのモデレーションの対象となります。現在、ユーザーがあなたのゲームから作成できるのはパッケージのみです。これらのパッケージにはスクリプトやプライベートアセット(音声、動画、ネストされたパッケージなど)を含めることはできません。システムがユーザーが保存可能なパッケージ内にスクリプトまたはプライベートアセットを検出すると、保存プロンプトを隠してゲーム内保存アクションをブロックします。

ゲームを実行またはテストしているときに、ゲーム内作成の一部としてスクリプトやプライベートアセットを追加すると、保存に失敗し、スタジオの出力ウィンドウまたはデベロッパーコンソールにエラーメッセージが表示されます。

ゲーム内アセット作成を有効にする

ユーザーのためにゲーム内アセット作成を有効にするには、サーバーサイドスクリプトで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は、米国並びにその他の国における登録商標および非登録商標です。