経験中のアセット作成機能では、ユーザーがエクスペリエンスで作成した作品をインベントリに保存できるようにすることができます。ユーザーは、これらの経験中の作品を他のアセットと同じように使用できます。さらに、これらの作品は Roblox プラットフォームで表示されると、エクスペリエンスに属性が付与されるため、任意のユーザーが属性リンクを使用してエクスペリエンスに到達し、自所有のものを作成できます。
たとえば、ユーザーがエクスペリエンスでカスタムクリーチャーをペットとして作成し、お気に入りのペットをインベントリに保存できるようにすることができます。ユーザーがあなたのエクスペリエンスから変更して保存できるオブジェクトを指定できる完全な制御があります。ユーザーは、自分のプロフィールであなたのエクスペリエンスに言及して作品を表示でき、エクスペリエンスの視認性を高めることができます。
サポートされるアセットタイプと制限
プラットフォーム上のすべてのアセットと同様、経験中の作成は アセットモデレーション に対象となります。現在、ユーザーがエクスペリエンスから パッケージ を作成できるようにすることはできません。これらのパッケージには、オーディオ、ビデオ、ネストされたパッケージなどのスクリプトやプライベートアセットは含まれません。システムがユーザーによって保存できるパッケージにスクリプトやプライベートアセットを検出した場合、ユーザーの保存アクションをブロックして、保存プロンプトを隠すことで経験中の保存アクションをブロックします。
エクスペリエンスを実行またはテストし、経験内の作作品の一部としてスクリプトまたはプライベートアセットを追加すると、保存できずエラーメッセージが Studio 出力ウィンドウ または 開発者コンソール に表示されます。
経験中のアセット作作品を有効にする
ユーザーのためのインエクスペリエンスアセット作成を有効にするには、サーバー側のスクリプトで AssetService:PromptCreateAssetAsync() APIメソッドと他の作成ロジックを使用してください。エクスペリエンス内のどのインスタンスにこの機能を有効にしたいかを指定し、メソッドを呼び出すためのカスタムトリガー (UI アイコンなど) を設定し、アセットの保存のためのクライアントのリモートイベントを聞きます。
AssetService:PromptCreateAssetAsync() は次のパラメータを取ります:
- A Player アセット作作品を提出するユーザーを表すオブジェクト
- 作品成するアセットを表す Instance オブジェクト。
- 現在は Enum.AssetType に制限されている、Enum.AssetType.Model に限定されている。
サーバーが AssetService:PromptCreateAssetAsync() を呼び出すと、クライアント上で パッケージを送信する ダイアログが表示され、保存アクションをトリガーするユーザーがパッケージの名前と説明を入力できます。Roblox は、保存ワークフローがプラットフォームレベルの機能であるため、対話 UI を箱外で提供します。
次のサーバー側のスクリプトは、ユーザーにエクスペリエンスでペイントした車を保存するよう促します:
エクスペリエンス内アセット作成の例スクリプト
-- アセットサービス変数を定義する
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 で場所を編集してデザインを参照できます。
作成後と属性付与
ユーザーがエクスペリエンスからアセットを作成し保存した後、次の場所で見つけることができます:
- 彼らの マイインベントリ ページ。
- 彼らの プロフィール ページの 作成 タブ。
- クリエイターダッシュボードの 開発アイテム タブの下の クリエーション ページ。
- Studio の インベントリ タブの ツールボックス 。
ユーザーが友達のプロフィールまたはインベントリに体験中の作品を見ると、アセットが作成されたオリジナルエクスペリエンスへの評価が表示されます。ユーザーは、属性リンクをクリックしてエクスペリエンスページにリダイレクトし、エクスペリエンスに参加して自所有のものを作成できます。