roblox-studio-workflow について
StudioまたはRojo連携プロジェクトで既存のRoblox placeを編集する開発者向けのワークフロースキルです。変更前の調査、実行場所、クリーンアップ、根拠に基づく検証を扱い、StudioのMCPサーバーも任意で利用できます。
主な機能
- 01正となるソースとプロジェクトの調査
- 02互換性を保つ小規模な変更計画
- 03Instanceの所有権と実行場所
- 04既存システムや規約の再利用
- 05Studioでのテストと実験のクリーンアップ
- 06Studio MCPツールによる検証
活用シーン
- 01既存のRoblox placeへの大きな変更の計画
- 02スクリプトの重複や変更の上書きの回避
- 03複製やライフサイクル動作のテスト
- 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 と組み合わせてください。
ワークフロー
- 信頼できる情報源を特定します。 Studio、Rojo ファイル、パッケージマネージャー、生成されたビルドのうち、各サブツリーの管理元を確認します。生成された出力を直接編集したり、次の同期で上書きされる Studio のみの変更を作成したりしないでください。
- 構成を提案する前に棚卸しします。 Explorer を調べ、スクリプト/モジュール/リモート/タグを検索し、プロジェクトのマッピングと命名規則を読み、既存の警告を確認するために一度実行します。機能を現在所有している箇所とその依存関係を特定します。
- 互換性を保てる最小限の変更を計画します。 変更する Instance と実行場所を明示します。既存のリモート、コンポーネントモジュール、クリーンアップユーティリティ、タグ、Attributes、フォルダー、設定パターンを再利用します。所有境界が未解決の場合は明示します。
- 実体のある意味のあるオブジェクトを作成します。 通常作成する UI、フォルダー、アタッチメント、制約、リモート、設定は Explorer で確認できる状態にします。スクリプトは動作や、本当に動的に繰り返す必要がある場合に使用し、機能全体を実行時の構築処理に隠さないでください。
- 実行とレプリケーションを適切に扱います。 権威あるロジックはサーバーコンテナーに、永続的なクライアントロジックは
StarterPlayerScriptsに、キャラクターごとのクライアントロジックはStarterCharacterScriptsに、UI テンプレートはStarterGuiに、共有アセット/モジュール/リモートはReplicatedStorageに、秘密情報/サーバーアセットはサーバー専用コンテナーに配置します。 - 実際のリスクをテストします。 動作に応じて、Play、Play Here、Run、Server & Clients、Device Emulator、Controller Emulator、または Studio のスクリプトテストを選択します。ビューポートだけでなく、サーバーとクライアントの Output も確認します。
- 実験用のものを片付けます。 一時的なパーツ、テスト用リモート、コマンドバーのスクリプト、デバッグ UI、print、無効化された重複スクリプト、プレースホルダーアセット、診断のみに作成したタグ/Attributes を削除します。セッションを停止し、編集モードの階層がクリーンであることを確認します。
- 証拠を正確に報告します。 変更した 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 ページを直接読み取ります。
検証手順
- 静的検証: プロジェクトのマッピング/JSON/XML が解析できること、リンクが解決すること、利用可能であれば Luau の診断/リントを確認します。
- 単一セッション: 実行コンテキストと階層が正しいこと、新たな Output エラー/警告がないこと、基本的な正常系とクリーンアップを確認します。
- ライフサイクル: 必要に応じて、リスポーン、リセット、再度開く/再参加、ストリーミング、キャラクターの置き換えを確認します。
- サーバーとクライアント: RemoteEvent、レプリケーション、所有権、プレイヤー間のやり取り、参加/退出、対象を絞った状態について、少なくとも 2 つのクライアントで確認します。
- デバイス/入力: 代表的なデバイスプロファイル、画面の向き、タッチ、コントローラーナビゲーションを確認します。
- 負荷/障害: 形式不正な入力、連続入力、空/満杯のコンテンツ、急な状態遷移、同時アクション、切断、クリーンアップを確認します。
変更を網羅できる最小限の段階を使用します。ただし、より高い段階の結果を主張する際に、それより低い段階で代用してはいけません。
よくある失敗
| 症状 | 考えられる原因 | 対処法 |
|---|---|---|
| 同期後に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-modeshttps://create.roblox.com/docs/projects/data-modelhttps://create.roblox.com/docs/scripting/serviceshttps://create.roblox.com/docs/studio/mcp