mcpField
R
roblox-studio-workflow

roblox-studio-workflow

github.com/gamedev-skills開発5.4k4.3k 回インストール1 日前に更新
リポジトリ

roblox-studio-workflow について

StudioまたはRojo連携プロジェクトで既存のRoblox placeを編集する開発者向けのワークフロースキルです。変更前の調査、実行場所、クリーンアップ、根拠に基づく検証を扱い、StudioのMCPサーバーも任意で利用できます。

主な機能

  1. 01正となるソースとプロジェクトの調査
  2. 02互換性を保つ小規模な変更計画
  3. 03Instanceの所有権と実行場所
  4. 04既存システムや規約の再利用
  5. 05Studioでのテストと実験のクリーンアップ
  6. 06Studio MCPツールによる検証

活用シーン

  1. 01既存のRoblox placeへの大きな変更の計画
  2. 02スクリプトの重複や変更の上書きの回避
  3. 03複製やライフサイクル動作のテスト
  4. 04Studioセッションで検証根拠を正確に収集

MCP 対応

Roblox Studioには任意で接続できるMCPサーバーがあり、AIクライアント向けにプロジェクトの調査、編集、実行、プレイテスト用ツールを提供します。このスキルでは対応するワークフローと検証ツールを説明します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/gamedev-skills/awesome-gamedev-agent-skills --skill roblox-studio-workflow

インストール後、Claude Code で/roblox-studio-workflowを入力して読み込まれたか確認します。

同梱ファイルagents/openai.yamlreferences/studio-verification.md

詳細

Roblox Studio ワークフロー

空のテキストリポジトリのようにではなく、既存のプレース内で協力者として作業します。現在の Roblox Studio と継続的に更新されるプラットフォーム API を対象とします。

使用するタイミング

  • Roblox のプレース、Studio DataModel、または Rojo ベースのプロジェクトに大幅な変更を加える前に使用します。
  • 実行場所を計画し、システムを見つけて再利用し、編集可能な Instance を作成し、信頼できる Studio 検証の証拠を集める際に使用します。

使用しない場合: このスキルが担うのはプロジェクトの運用であり、ドメインの実装ではありません。必要に応じて、roblox-ui、roblox-networking、roblox-characters、roblox-physics、roblox-luau、または roblox-datastores と組み合わせてください。

ワークフロー

  1. 信頼できる情報源を特定します。 Studio、Rojo ファイル、パッケージマネージャー、生成されたビルドのうち、各サブツリーの管理元を確認します。生成された出力を直接編集したり、次の同期で上書きされる Studio のみの変更を作成したりしないでください。
  2. 構成を提案する前に棚卸しします。 Explorer を調べ、スクリプト/モジュール/リモート/タグを検索し、プロジェクトのマッピングと命名規則を読み、既存の警告を確認するために一度実行します。機能を現在所有している箇所とその依存関係を特定します。
  3. 互換性を保てる最小限の変更を計画します。 変更する Instance と実行場所を明示します。既存のリモート、コンポーネントモジュール、クリーンアップユーティリティ、タグ、Attributes、フォルダー、設定パターンを再利用します。所有境界が未解決の場合は明示します。
  4. 実体のある意味のあるオブジェクトを作成します。 通常作成する UI、フォルダー、アタッチメント、制約、リモート、設定は Explorer で確認できる状態にします。スクリプトは動作や、本当に動的に繰り返す必要がある場合に使用し、機能全体を実行時の構築処理に隠さないでください。
  5. 実行とレプリケーションを適切に扱います。 権威あるロジックはサーバーコンテナーに、永続的なクライアントロジックは StarterPlayerScripts に、キャラクターごとのクライアントロジックは StarterCharacterScripts に、UI テンプレートは StarterGui に、共有アセット/モジュール/リモートは ReplicatedStorage に、秘密情報/サーバーアセットはサーバー専用コンテナーに配置します。
  6. 実際のリスクをテストします。 動作に応じて、Play、Play Here、Run、Server & Clients、Device Emulator、Controller Emulator、または Studio のスクリプトテストを選択します。ビューポートだけでなく、サーバーとクライアントの Output も確認します。
  7. 実験用のものを片付けます。 一時的なパーツ、テスト用リモート、コマンドバーのスクリプト、デバッグ UI、print、無効化された重複スクリプト、プレースホルダーアセット、診断のみに作成したタグ/Attributes を削除します。セッションを停止し、編集モードの階層がクリーンであることを確認します。
  8. 証拠を正確に報告します。 変更した Instance/ファイル、モードとクライアント数、実施したケース、確認した Output、失敗と修正、未実施の項目を記載します。「それらしく見える」ことや静的な確認を「Studio でテスト済み」と言い換えないでください。

実行場所のマップ

場所典型的な役割主な制約
ServerScriptService権威あるサーバー Scripts/モジュールクライアントにはレプリケーションされません
ServerStorageサーバー専用のアセット/データクライアントからアクセスできません
ReplicatedStorage共有モジュール/アセット/リモートクライアントから見えるため、秘密情報を保存しないでください
StarterPlayerScriptsリスポーンをまたいで動作するクライアントシステムPlayerScripts にクローンされます
StarterCharacterScriptsキャラクターごとのクライアント動作キャラクターごとに再作成されます
StarterGui作成済み UI テンプレートPlayerGui にクローンされます。ライフサイクルは GUI ポリシーによって異なります
Workspaceレプリケーションされるワールドと現在のキャラクターストリーミング/所有権がクライアントの表示に影響する場合があります

実際の Script RunContext とプロジェクトの慣例を確認してください。クラス/場所の略記は、既存のカスタム設定を調査しなくてよい理由にはなりません。

追加する前に再利用する

RemoteEvent を作成する前に、目的で検索し、両方のエンドポイントを調べます。「manager」やサービスモジュールを追加する前に、現在の機能の所有者を特定します。フォルダーやタグを導入する前に、命名と取得のパターンを調べます。重複したシステムは、両方が動作すると特に危険です。入力のバインドが二重になったり、保存が二重に行われたり、UI クローンが二つ作成されたり、ゲームプレイへの適用が二重になったりします。

Instance に属する、小規模で型付けされたデザイナーが編集可能なメタデータには Attributes を使用します。階層をまたいで Instance の集合を検索するには、CollectionService タグを使用します。フォルダーは所有権やナビゲーションのために使用し、セマンティックタグの代わりとして使わないでください。既存のスキーマを維持し、システムの境界で Attributes の欠落や形式不正を検証します。

local CollectionService = game:GetService("CollectionService")

local function setupDoor(instance: Instance)
    if not instance:IsA("Model") then return end
    local accessLevel = instance:GetAttribute("AccessLevel")
    if type(accessLevel) ~= "number" then
        warn(`Door {instance:GetFullName()} needs numeric AccessLevel`)
        return
    end
    attachDoorBehavior(instance, accessLevel)
end

for _, door in CollectionService:GetTagged("Door") do setupDoor(door) end
CollectionService:GetInstanceAddedSignal("Door"):Connect(setupDoor)

タグ付けされた Instance が削除または破棄されたときに、動作もクリーンアップする必要があります。

Studio MCP サーバー(任意のエージェント経路)

Roblox Studio には MCP サーバーが組み込まれています。AI クライアントに接続されている場合は、手動でクリックする代わりに、そのツールを使って同じ「調査 -> 編集 -> 実行/検証 -> プレイテスト」の手順を進めます。これは任意です。接続されていない場合は、上記および以下の手動の Studio + Rojo ワークフローが完全なデフォルト経路となり、このスキルで MCP、Assistant、その他のツールは必要ありません。Studio で Assistant、次に Manage MCP Servers、次に「Enable Studio as MCP server」を選択して有効にします(クライアントとは stdio 経由で MCP を通信します)。

ワークフローを、ドキュメントに記載されたツールに対応付けます。すべての呼び出しには studio_id も必要です。Studio のウィンドウが複数開いている場合は、list_roblox_studios を使って対象を選択します。

手順MCP ツール
調査/インベントリsearch_game_tree、inspect_instance、script_search、script_grep
編集script_read、multi_edit(パスが新しい場合はスクリプトを作成します)
実行/検証execute_luau(datamodel_type:Edit、Client、Server のいずれかが必要)、get_studio_state、start_stop_play、get_console_output、screen_capture
プレイテストsubagent(タイプ:explore、playtest)、character_navigation、user_keyboard_input、user_mouse_input
Roblox 独自のドキュメント/スキルhttp_get(許可された Roblox ドキュメント URL)、skill(Roblox が作成したリファレンス)

MCP を使っても作業上の規律は変わりません。multi_edit は引き続き、実行時の構築に隠された機能ではなく、通常の調査可能な Script を書き込みます。サーバーが引き続き権限を持ち、生成された出力ではなく信頼できるソースファイルを編集し、実験の後始末も行います。get_console_output と screen_capture は検証手順におけるエージェントネイティブの証拠として扱い、サーバーとクライアントの両方の出力を引き続き確認します。MCP は同じワークフローのための転送手段であり、その手順を省略する許可ではありません。

Roblox は MCP とは独立して、エージェントが読み取り可能なドキュメントも提供しています。インデックスは https://create.roblox.com/docs/llms.txt にあり、すべてのドキュメントページには .md 版があります(URL の末尾に .md を追加します)。接続されたクライアントは http_get/skill を通じてこれらにアクセスできます。オフラインのエージェントは .md ページを直接読み取ります。

検証手順

  1. 静的検証: プロジェクトのマッピング/JSON/XML が解析できること、リンクが解決すること、利用可能であれば Luau の診断/リントを確認します。
  2. 単一セッション: 実行コンテキストと階層が正しいこと、新たな Output エラー/警告がないこと、基本的な正常系とクリーンアップを確認します。
  3. ライフサイクル: 必要に応じて、リスポーン、リセット、再度開く/再参加、ストリーミング、キャラクターの置き換えを確認します。
  4. サーバーとクライアント: RemoteEvent、レプリケーション、所有権、プレイヤー間のやり取り、参加/退出、対象を絞った状態について、少なくとも 2 つのクライアントで確認します。
  5. デバイス/入力: 代表的なデバイスプロファイル、画面の向き、タッチ、コントローラーナビゲーションを確認します。
  6. 負荷/障害: 形式不正な入力、連続入力、空/満杯のコンテンツ、急な状態遷移、同時アクション、切断、クリーンアップを確認します。

変更を網羅できる最小限の段階を使用します。ただし、より高い段階の結果を主張する際に、それより低い段階で代用してはいけません。

よくある失敗

症状考えられる原因対処法
同期後にStudioでの編集内容が消える生成された、またはマッピングされたサブツリーを編集した正本となるファイルを変更して再同期します
機能が2回実行されるScript/リモート/コントローラーが重複しているまず確認し、既存の所有元に統合します
クライアントがモジュール/オブジェクトにアクセスできない実行場所/保存場所が誤っている共有コンテンツを適切に移動し、シークレットはサーバー側のみに保持します
Explorerで作成した画面が読みづらいすべてが1つのLocalScriptによって作成されている名前付きのInstanceのひな形と、小さな動作モジュールを作成します
Playでしかテストが成功しないレプリケーション/ライフサイクルがテストされていないServer & Clientsと適切なエミュレーターを使用します
Outputが「クリーン」なのにクライアントエラーが隠れているサーバーのOutputしか確認していない各クライアントとサーバーのコンテキストを確認します
公開したplaceにDebugFolder/printが残っている実験後のクリーンアップを忘れているクリーンアップリストを用意し、セッション後に階層を確認します
Attribute/タグの動作が何も起きずに失敗するスキーマ/クラスが検証されていないセットアップの境界で検証し、完全なInstanceパスを含む警告を出します

リソース

  • Studioでの検証を報告する前、またはテストモードの選択、一時的なハーネスの構築、自動化の不足点の文書化を行う際は、references/studio-verification.mdをお読みください。

関連スキル

  • roblox-luau — サービス、Instance、イベント、基本的な実行モデル。
  • roblox-ui、roblox-networking、roblox-characters、roblox-physics — この調査・検証の手法を活用する、分野に特化した本番向けワークフロー。

主なリファレンス

  • https://create.roblox.com/docs/studio/testing-modes
  • https://create.roblox.com/docs/projects/data-model
  • https://create.roblox.com/docs/scripting/services
  • https://create.roblox.com/docs/studio/mcp

コメント