アセットの使用ガイド

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

Open CloudのAssets APIを使用すると、スタジオに手動でインポートするのではなく、単一のHTTPリクエストでアセットをアップロードおよび更新できます。このAPIは以下をサポートしています:

  • 新しいアセットのアップロード。
  • バージョン管理を使用した既存アセットの更新。
  • 説明、表示名、アイコン、プレビューを含むアセットメタデータの更新。
  • 指定された以前のバージョンにロールバックするなどのアセットバージョンの管理。
  • メタデータ、バージョン、進行中の更新操作を含むアセットの既存情報の確認。

サポートされているアセットタイプと制限

新しいアセットを作成したり、既存のアセットのコンテンツを更新しないエンドポイントには、制限や制約はありません。ただし、Create AssetおよびUpdate Assetエンドポイントによって提供されるアセットコンテンツのアップロード機能は、制限のある限られたタイプのアセットのみをサポートしています。各呼び出しでは、最大20MBのファイルサイズで1つのアセットのみを作成または更新できます。以下の制限があります:

アセットタイプフォーマットコンテンツタイプ制限
アニメーション
  • .rbxm
  • .rbxmx
  • model/x-rbxm
  • model/x-rbxm
  • Roblox Studioの外部で編集された.rbxmまたは.rbxmxファイルは、アップロードまたは機能しない可能性があります。
オーディオ
  • .mp3
  • .ogg
  • .wav
  • .flac
  • audio/mpeg
  • audio/ogg
  • audio/wav
  • audio/flac
  • 最大7分の長さ。
  • ID確認済みの場合、月に最大100回のアップロード。
  • ID確認されていない場合、月に最大10回のアップロード。
  • 更新には利用できません。
デカール、画像
  • .png
  • .jpeg
  • .bmp
  • .tga
  • image/png
  • image/jpeg
  • image/bmp
  • image/tga
  • 8000x8000ピクセル未満である必要があります。
  • 更新には利用できません。
メッシュ

    Robloxのみ

  • model/x-file-mesh-data
  • アセット配信APIからダウンロードされたコンテンツのみが受け入れられます。メッシュをダウンロードして再アップロードしようとしていない場合は、インポーターを使用してメッシュをインポートしてください。
  • 更新には利用できません。
モデル
  • .fbx
  • .gltf
  • .glb
  • .rbxm
  • .rbxmx
  • model/fbx
  • model/gltf+json
  • model/gltf-binary
  • model/x-rbxm
  • model/x-rbxm
  • カスタム3DモデルをModelコンテナとしてインポートし、1つ以上のMeshPartオブジェクトを含みます。
    • 使用ケースに応じて、インポーターを使用してカスタム3Dモデルを手動でアップロードすることを検討してください。
    • インポーターは3Dプレビュー、さまざまなエラーチェック、および多くのカスタマイズ可能なインポート設定を提供します。
  • Roblox Studioの外部で編集された.rbxmまたは.rbxmxファイルは、アップロードまたは機能しない可能性があります。
  • パッケージとしてアップロードされます。
ビデオ
  • .mp4
  • .mov
  • video/mp4
  • video/mov
  • 最大5分の長さ。
  • 最大4096x2160の解像度。
  • 最大3.75 GB。
  • 13歳以上でID確認済みの場合、1日最大20回のアップロード。
  • 更新には利用できません。

セキュリティ権限

APIは、APIキー認証を使用したファーストパーティの使用と、OAuth 2アプリケーションでのサードパーティの使用の両方をサポートしています。各方法には異なるセキュリティ権限設定が必要です。

APIキー

独自のスクリプトやツールでAPIを使用するには、認証とセキュリティのためにAPIキーを作成する必要があります。

APIキーを作成する際は、以下の権限を追加してください:

  1. アクセス権限assetsを追加します。
  2. 呼び出す予定のエンドポイントの必要なスコープに応じて、選択したゲームに読み取りおよび書き込み操作権限を追加します。

APIキーを取得したら、それをx-api-keyリクエストヘッダーにコピーします。すべてのエンドポイントにはx-api-keyリクエストヘッダーが必要です。

APIリクエストヘッダーの例
--header 'x-api-key: ${ApiKey}' \

OAuth 2.0アプリ

サードパーティのOAuth 2.0アプリケーションでAPIを使用するには、アプリを登録する際にasset:readおよびasset:write権限スコープを追加します。これらのスコープは、使用する予定のエンドポイントの要件に基づいて選択してください。

新しいアセットを作成する

HTTPリクエストで新しいアセットをアップロードするには:

  1. Create Assetエンドポイントのx-api-keyリクエストヘッダーにAPIキーをコピーします。

  2. リクエスト内で:

    1. 対象のアセットタイプを指定します。
    2. アセット名と説明を追加します。
    3. 作成者情報を追加します。
      • 自分の名義でアセットを作成したい場合は、ユーザーIDを追加します。ユーザーIDはRobloxプロフィールのURLで確認できます。例えば、https://www.roblox.com/users/1234567/profile,の場合、ユーザーIDは1234567`です。
      • グループアセットとしてアセットを作成したい場合は、グループのグループIDを追加します。グループIDはグループページのURLで確認できます。例えば、https://www.roblox.com/groups/7654321/example-group#!/,の場合、グループIDは7654321`です。
    4. アセットのファイルパスとコンテンツタイプを追加します。
    アセット作成リクエストの例
    curl --location 'https://apis.roblox.com/assets/v1/assets' \
    --header 'x-api-key: ${ApiKey}' \
    --form 'request="{
    \"assetType\": \"Model\",
    \"displayName\": \"Name\",
    \"description\": \"This is a description\",
    \"creationContext\": {
    \"creator\": {
    \"userId\": \"${userId}\" # グループアセットを作成する場合はgroupIdを使用
    }
    }
    }"' \
    --form 'fileContent=@"/filepath/model.fbx";type=model/fbx'

既存のアセットを更新する

HTTPリクエストで既存のアセットを更新するには:

  1. Update Assetエンドポイントのx-api-keyリクエストヘッダーにAPIキーをコピーします。
  2. リクエスト内でアセットタイプとアセットIDを追加します。アセットIDをコピーするには:
    1. クリエイターダッシュボード作成ページに移動します。
    2. 開発アイテムカテゴリを選択します。
    3. アセットのカテゴリを選択し、対象のアセットを見つけます。
    4. 対象アセットのサムネイルにカーソルを合わせ、ボタンをクリックしてオプションのリストを表示し、リストからアセットIDをコピーを選択します。
アセットコンテンツ更新リクエストの例
curl --location --request PATCH 'https://apis.roblox.com/assets/v1/assets/{assetId}' \
--header 'x-api-key: {apiKey}' \
--form 'request={
\"assetType\": \"{assetType}\",
\"assetId\": \"{assetId}\",
\"creationContext\": {
\"creator\": {
\"userId\": {userId}
},
\"expectedPrice\":{expectedPrice}
},
}' \
--form 'fileContent=@"{file-path}"'

アセット操作のステータスを取得する

新しいアセットの作成または既存アセットの更新リクエストが成功すると、{ "path": "operations/${operationId}" }形式の操作IDが返されます。これを使用して、以下の手順でアップロードのステータスと結果を確認できます:

  1. Get Operationメソッドのx-api-keyリクエストヘッダーにAPIキーをコピーし、リクエストを送信します。以下のコードサンプルのように:

    操作取得リクエストの例
    curl --location 'https://apis.roblox.com/assets/v1/operations/{operationId}' \
    --header 'x-api-key: {$ApiKey}'
  2. リクエストが成功すると、Operationオブジェクトが返され、アップロードされたアセット情報を表すresponseを含むか、アセットアップロードが失敗した理由を説明するstatusが含まれます。以下のコードサンプルのように:

    操作取得の例の応答
    {
    "path": "operations/{operationId}",
    "done": true,
    "response": {
    "@type": "type.googleapis.com/roblox.open_cloud.assets.v1.Asset",
    "path": "assets/2205400862",
    "revisionId": "1",
    "revisionCreateTime": "2023-03-02T22:27:04.062164400Z",
    "assetId": "2205400862",
    "displayName": "Name",
    "description": "This is a description",
    "assetType": "ASSET_TYPE_DECAL",
    "creationContext": {
    "creator": {
    "userId": "11112938575"
    }
    },
    "moderationResult": {
    "moderationState": "MODERATION_STATE_APPROVED"
    }
    }
    }
  3. オプション
    作成したアセットをRobloxアカウントで確認します。

    1. Robloxアカウントインベントリページに移動します。
    2. 確認したいアセットのカテゴリを選択します。
    3. 対象アセットを見つけ、そのサムネイルをクリックしてアセットを表示します。

アセットAPIをOAuth 2.0アプリに追加する

ユーザーがRobloxにアセットをアップロードおよび更新できるように、アセットAPIをサポートするOAuth 2.0アプリケーションを作成できます。

アプリケーションでアセットAPIを使用し、ユーザーから権限を要求するには、以下の設定を行います:

  1. アプリケーションを登録する際に、権限の下でasset:readおよびasset:writeスコープを選択します。

  2. 認証フローを実装する際に、ユーザーをアプリケーションにリダイレクトする認証URLのスコープパラメータとしてasset:readおよびasset:writeを含めます。以下の例のように:

    https://apis.roblox.com/oauth/v1/authorize?client_id=819547628404595165403873012&redirect_uri=https://my-app.com/redirect&scope=asset:read+asset:write&response_type=Code&prompts=login+consent&nonce=12345&state=6789
  3. リクエストを送信する際に、アクセストークンを認証ヘッダーに含め、アセットコンテンツを作成または更新するためのフォームデータをリクエストURIに含めます。以下の例は、新しいアセットをアップロードするためのサンプルリクエストを示しています:

    リクエストの例
    curl --location --request POST 'https://apis.roblox.com/assets/v1/assets' \
    --header 'Authorization: Bearer <access_token>' \
    --header 'Content-Type: application/json' \
    --form 'request="{
    \"assetType\": \"Decal\",
    \"displayName\": \"DecalDemo123\",
    \"description\": \"This is a description\",
    \"creationContext\": {
    \"creator\": {
    \"userId\": \"<user_id>\"
    }
    }
    }"' \
    --form 'fileContent=@"/filepath/p1.png"'
©2026 Roblox Corporation。Roblox(ロブロックス)、RobloxロゴおよびPowering Imaginationは、米国並びにその他の国における登録商標および非登録商標です。