deploy-scene について
Decentraland Genesis Cityのシーン制作者向けデプロイスキルです。設定の確認、権限のある区画へのコマンドラインまたはCreator Hub経由での公開、よくあるエラーの解決方法を説明します。
主な機能
- 01scene.json設定の確認
- 02コードとシーンプレビューの検証
- 03コマンドラインでのデプロイ
- 04Creator Hubでの公開
- 05デプロイエラーの調査
活用シーン
- 01Genesis Cityの区画へのシーン公開
- 02デプロイ前の設定とアセット確認
- 03ウォレット権限やデプロイ失敗への対処
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ dcl-regenesislabs/ opendcl --skill deploy-sceneインストール後、Claude Code で/deploy-sceneを入力して読み込まれたか確認します。
詳細
Genesis City へのデプロイ
所有している、またはデプロイの許可を得ている特定の区画にデプロイします。
デプロイには /deploy コマンドを使用してください。 npx @dcl/sdk-commands deploy を実行し、デプロイの全プロセスを処理します。
- シーンをビルドします
- アセットを IPFS にアップロードします
- 指定した区画にデプロイします
- LAND またはデプロイ権限を持つウォレットが必要です
代わりに World にデプロイしますか? Worlds へのデプロイについては、
deploy-worldsスキルを参照してください(DCL NAME または ENS ドメインを使用する個人スペース)。
デプロイ前のチェックリスト
デプロイする前に、以下を確認してください。
-
scene.json が有効であること:
ecs7: trueおよびruntimeVersion: "7"- LAND(Genesis City 用)に合致する正しい
parcels - 有効な
base区画 main: "bin/index.js"
-
コードがコンパイルできること:
npx tsc --noEmit -
シーンが正しくプレビューできること:
previewツールを使用してシーンが動作することを確認してください(または手動でnpx @dcl/sdk-commands start --bevy-webを実行してください)。 -
依存関係がインストールされていること:
npm install -
アセットが制限内であること — 区画数ごとの制限の計算式(三角形、エンティティ、マテリアル、テクスチャ、高さ)については、optimize-scene スキルを参照してください。
デプロイの手順
CLI を使用する場合
# Build first
npx @dcl/sdk-commands build
# Deploy (will open browser for wallet connection)
npx @dcl/sdk-commands deploy
Creator Hub を使用する場合
- Creator Hub を開きます
- シーンを選択します
- 「Publish」をクリックします
- ウォレットを接続します
- トランザクションを確認します
デプロイ用の scene.json
{
"ecs7": true,
"runtimeVersion": "7",
"display": {
"title": "My Awesome Scene",
"description": "A description for the marketplace",
"navmapThumbnail": "images/thumbnail.png"
},
"scene": {
"parcels": ["0,0", "0,1"],
"base": "0,0"
},
"main": "bin/index.js"
}
シーンへのチップ(creator)
訪問者がシーンの作成者に MANA のチップを送れるようにします。受取人のウォレットアドレスを指定した creator フィールドを追加してください。
{
"creator": "0x1234567890123456789012345678901234567890"
}
設定すると、訪問者には左上に貯金箱アイコンが表示されます。クリックすると MANA のチップ用モーダルが開きます。アドレスが Decentraland NAME にリンクされている場合、モーダルにその名前が表示されます。作成者にはチップを受け取るたびにアプリ内通知が届きます。Creator Hub → シーンの「Settings」→「Details」→「Creator wallet address」からも設定できます。
スポーン地点
プレイヤーがシーンに入ったときに出現する場所を設定します。
{
"spawnPoints": [
{
"name": "spawn1",
"default": true,
"position": { "x": [1, 5], "y": [0, 0], "z": [2, 4] },
"cameraTarget": { "x": 8, "y": 1, "z": 8 }
}
]
}
位置の範囲(例:[1, 5])を指定すると、範囲内のランダムな場所にプレイヤーが出現します。スポーン時のプレイヤーのカメラの向きは cameraTarget で設定します。
トラブルシューティング
| エラー | 原因 | 解決策 |
|---|---|---|
| "You don't have permission to deploy" | ウォレットが対象の LAND/区画を所有していません | マーケットプレイスで LAND の所有権を確認するか、LAND 所有者からデプロイ権限を取得してください |
| "Scene is too large" | アセットが区画サイズの制限を超えています | 上記の制限表を参照して、三角形の数、ファイルサイズ、テクスチャの数を確認してください。optimize-scene スキルも参照してください |
| ウォレットの接続に失敗する | ブラウザーのポップアップがブロックされているか、MetaMask がロックされています | ポップアップを許可し、MetaMask のロックを解除してから、ページを更新して再試行してください |
| "Invalid scene.json" | 必須フィールドがないか、JSON の形式が正しくありません | ecs7: true、runtimeVersion: "7"、有効な parcels 配列、main: "bin/index.js" を確認してください |
| デプロイは成功するが、シーンが空です | main フィールドがコンパイル済みの出力先を指していません | main が "bin/index.js" であることを確認し、先に npx @dcl/sdk-commands build を実行してください |
| Catalyst による拒否 | コンテンツが Decentraland のコンテンツポリシーに違反しています | docs.decentraland.org のコンテンツガイドラインを確認してください |
Genesis City と Worlds の比較
| Genesis City | Worlds | |
|---|---|---|
| 要件 | LAND 区画の所有 | DCL NAME または ENS ドメインの所有 |
| 区画の制限 | 適用されます(区画ごとのエンティティ/三角形の上限) | LAND による制約はありません |
| 表示場所 | Genesis City のマップに表示されます | Places ページに掲載されます(掲載をオプトアウト可能) |
| デプロイ先 | デフォルトの Catalyst ネットワーク | --target-content https://worlds-content-server.decentraland.org |
| 最適な用途 | 常設設備、アクセス数の多いシーン | テスト、個人スペース、イベント |
代わりに World にデプロイしますか? deploy-worlds スキルを参照してください。
ベストプラクティス
- デプロイ前に必ずローカルでプレビューしてください
- Genesis City のマップ用にサムネイル画像(
navmapThumbnail)を使用してください - 見つけてもらいやすいよう、分かりやすい説明を書いてください
- 複数のブラウザータブでテストし、マルチプレイヤーの動作を確認してください
- シーンの読み込み時間を 15 秒未満にしてください(アセットを最適化してください)