Roblox開発にRojoを導入してCodexとつないだら、作業効率が一気に上がった話

不安を減らす暮らしをテーマに、育てている植物の写真 ゲーム制作・個人開発

Roblox Studioでゲーム開発を始めてみました。

最初はRoblox Studio上で直接ブロックを置いたり、ダミーを配置したり、スクリプトを書いたりしていました。

始めたばかりの段階なら、これでも十分です。

ただ、少しずつ作るものが増えてくると、だんだん困ることが出てきました。

  • どのスクリプトを触ればいいか分かりにくい
  • Roblox Studio上だけだとコード管理がしづらい
  • AIに「このファイルを修正して」と頼みにくい
  • 変更した内容を後から追いかけにくい
  • 手作業での修正が増えてきて、だんだんつらい

そこで今回、Roblox開発ツールの Rojo を導入しました。

Rojoを使うと、Roblox Studio内のスクリプトを、PC上のローカルフォルダ側のファイルとして扱いやすくなります。

その結果、Codexにコード修正を依頼しやすくなり、開発効率がかなり上がりました。

この記事では、Roblox初心者の自分がRojoを導入してみて感じたこと、手こずったところ、そして「AIエージェントに作業させる予定なら、Rojoは早めに入れた方がよさそう」と思った理由をまとめます。

Robloxとは

Robloxは、ユーザーがゲームやワールドを作って公開できるオンラインプラットフォームです。

遊ぶ側としては、いろいろな人が作ったゲームを気軽にプレイできます。

作る側としては、Roblox Studioという専用ツールを使って、マップを作ったり、キャラクターを配置したり、Lua系のスクリプトを書いたりしながら、自分のゲームを作れます。

自分はこれまでブラウザゲームや無料ツールを作ってきましたが、Robloxはそれとは少し違います。

最初からオンライン空間やキャラクター操作、マルチプレイっぽい要素を扱いやすいところが面白いと感じました。

特に、AIにコードを書いてもらいながら開発できるなら、個人でも小さなゲームや対戦っぽい試作を作れる可能性がありそうです。

今回作っているのは、まだかなり小さなバトルゲームの試作です。

タンク、剣士、ヒーラーのような役割を持つダミーを置いて、攻撃判定やリスポーン処理を試しています。

まだ完成品ではありませんが、キャラが動いて、攻撃が当たって、倒したらまた出てくるだけでも、かなりゲームっぽく見えるのが面白いです。

Rojoとは何か

Rojoは、Roblox Studioとローカルフォルダをつなぐための開発ツールです。

ざっくり言うと、Roblox Studioの中だけでスクリプトを管理するのではなく、PC上のフォルダにLuaファイルなどを置いて、それをRoblox Studio側と同期できるようにするものです。

Roblox Studioだけで全部作る場合は、Studio上で直接スクリプトを開いて編集します。

一方でRojoを使うと、ローカルフォルダ側に、たとえば次のような形でファイルを整理しやすくなります。

  • ServerScriptService
  • ReplicatedStorage
  • StarterPlayer
  • StarterGui

これによって、VS CodeやCodexのような外部ツールを使ってコードを編集しやすくなります。

特に、AIにコード修正を依頼する時は、スクリプトがローカルファイルとして整理されている方がかなり楽です。

なぜRojoを導入したのか

今回Rojoを導入した一番の理由は、Codexと連携しやすくしたかったからです。

Roblox Studio上だけで作業していると、AIに対して、

  • このスクリプトを直して
  • この処理を追加して
  • このファイルを一括差し替えして

と頼むのが少し面倒です。

コードがローカルファイルとして整理されていないと、毎回Roblox Studio上のスクリプトをコピーして貼り付けたり、どこに戻すのか手動で確認したりする必要があります。

これが地味に大変でした。

Rojoを入れてローカルフォルダで管理できるようにすると、Codexに対して、

  • このLuaファイルを修正して
  • このHUD処理を整理して
  • BattleStateまわりの処理を安全に直して
  • 既存仕様を壊さずに差し替えて

といった依頼がしやすくなります。

Roblox開発をAIと一緒に進めたいなら、Rojoはかなり相性がいいと感じました。

最初はRojo導入を後回しにしようと思っていた

実は、最初からRojoを入れようとしていたわけではありません。

AIに相談した時に、

「Rojoの導入は少し実装コストが重いので、最初はRoblox Studioだけで小さく作って、後から必要になったら導入するのもあり」

という話がありました。

その時は、

「まだデータも少ないし、まずはRoblox Studioで触ってみればいいか」

と思っていました。

たしかに、ただブロックを置いたり、簡単な動作確認をするだけなら、最初からRojoを入れなくても進められます。

Roblox Studioだけでも、スポーン地点を置いたり、ダミーを配置したり、スクリプトを直接書いたりできます。

なので、完全な初心者がまず触ってみる段階では、いきなりRojoまで入れなくてもよいと思います。

ただし、これは「Studio上で手作業する前提」の話でした。

自分のように、CodexなどのAIエージェントにスクリプト修正を任せながら開発する予定なら、話が変わります。

後からRojoを入れたら、手動移行がなかなか大変だった

後からRojoを導入してみて感じたのは、

「これ、最初に入れておいた方が楽だったかもしれない」

ということです。

理由はシンプルです。

Roblox Studio上に作ったスクリプトや構成を、後からローカルフォルダ側に移していく必要が出てきたからです。

すでに作っていたものを確認して、

  • どのスクリプトがどこにあるか確認する
  • ローカル側に対応するフォルダを作る
  • ファイル名を付ける
  • 中身を移す
  • Roblox Studio側と対応させる
  • 動くか確認する

という作業が発生しました。

まだ小さいプロジェクトだったので何とかなりましたが、それでも手動移行はなかなかの苦行でした。

AIの助言どおりに「後からでいいか」と思って進めた結果、結局あとで手作業のファイル作成や整理が増えた形です。

もちろん、AIの助言が完全に間違っていたわけではありません。

ただ、前提が大事でした。

Studio上で手作業するだけなら、後からでもよかったかもしれません。

でも、AIエージェントにスクリプト修正を任せる予定なら、ローカルフォルダで作業できる形を早めに作った方が楽でした。

Rojoは「本体」「VS Code拡張」「Studioプラグイン」の関係が少し分かりにくい

初心者が最初に混乱しやすいのは、ここだと思います。

Rojoまわりでは、ざっくり次のような要素が出てきます。

  • PC側で動かすRojo本体
  • VS Code側で使うRojo拡張機能
  • Roblox Studio側で使うRojoプラグイン

この関係が、最初は少し分かりにくかったです。

VS CodeにRojo拡張機能を入れたからといって、それだけで全部終わりではありません。

また、Roblox Studio側でもRojoプラグインが必要になります。

PC側でRojoを使えるようにし、Roblox Studio側にもRojoプラグインを入れ、必要に応じてVS Code側の拡張機能も使う、というイメージです。

そして、PC側でRojoのサーバーを起動し、Roblox Studio側のプラグインから接続します。

イメージとしては、こんな感じです。

ローカルフォルダ
↓
Rojo
↓
Roblox Studio

ローカルフォルダ側でコードを編集し、Rojoを通してRoblox Studioに反映していくイメージです。

ここを勘違いすると、

  • Rojoを入れたはずなのにStudio側で見つからない
  • Connectする場所が分からない
  • 何を起動すればいいのか分からない
  • VS Code側では見えているのに、Studio側でつながらない

となりやすいです。

自分も最初は、PC側のRojo、VS Code拡張、Studioプラグインの役割が少しごちゃつきました。

Rojoのバージョン確認も大事だった

Rojoで少し手こずったところとして、バージョンの確認もありました。

Rojo本体、VS Code側のRojo拡張、Roblox Studio側のプラグインが絡んでくるので、接続がうまくいかない時に、

「どこが原因なのか」
「バージョンが合っているのか」
「古いものが混ざっていないか」

を確認する必要がありました。

自分の場合も、Rojoまわりで迷った時に、バージョンの確認や入れ直しをしながら進めました。

特に初心者の場合、

  • Rojo本体のバージョン
  • VS Code側で使っているRojo関連機能
  • Roblox Studio側のRojoプラグイン
  • どのプロジェクトフォルダで起動しているか

あたりをまとめて確認した方がよさそうです。

完全に原因を切り分けるのは難しいですが、少なくとも「Rojo本体だけ入れた」「VS Code拡張だけ入れた」「Studioプラグインだけ入れた」という状態だと、どこかでつまずきやすくなります。

Rojoを使う時は、関係するもののバージョンや導入状態をそろえて確認するのが大事だと感じました。

Connectで手こずったところ

Rojoを使うには、PC側でRojoのサーバーを起動してから、Roblox Studio側のプラグインで接続します。

基本的には、プロジェクトフォルダで次のように実行します。

rojo serve

その後、Roblox Studio側でRojoプラグインを開いてConnectします。

ただ、ここで初心者がつまずきやすいポイントがあります。

  • 先に rojo serve を起動していない
  • 違うフォルダで rojo serve を実行している
  • プロジェクト設定ファイルの場所が違う
  • Roblox Studio側でプラグインを開いていない
  • Connectしたつもりでも同期先が想定と違う
  • バージョンやプラグインの状態が合っているのか分かりにくい

自分もこの「Connectするまで」の流れで少し手こずりました。

一度つながってしまえば便利ですが、最初は、

「今どっち側が悪いのか」
「Rojoは起動しているのか」
「Studio側が見えているのか」
「VS Code側とStudio側の状態は合っているのか」

が分かりにくかったです。

AIに画面切り抜きを見せながら進められたのは助かった

今回、Rojo導入で手こずった時に助かったのが、画面切り抜きのスクリーンショットをAIに見せながら進められたことです。

自分の場合はCodexに相談しながら進めました。

文章だけで、

「Rojoがつながりません」
「Connectできません」
「Studio側で見えません」

と説明するより、画面の一部を切り抜いて見せた方が、状況を伝えやすかったです。

たとえば、

  • VS Code側のRojoメニュー
  • ターミナルで rojo serve している画面
  • Roblox Studio側のRojoプラグイン画面
  • エラー表示や接続状態
  • プロジェクトフォルダの構成

このあたりを部分スクリーンショットで投げると、疑問点をかなり早く解消できました。

Rojoは、初心者がひとりで公式ドキュメントだけを見ながら進めると少し迷いやすいです。

ただ、AIに聞きながら進められる環境があると、

「次にどこを確認すればいいか」
「今の画面だと何が足りなさそうか」
「どのコマンドを打てばよさそうか」

を確認しながら進められます。

これがかなり助かりました。

自分の場合は、画面切り抜きで疑問を投げることで、Rojoまわりのつまずきをサクサク解消できた感覚があります。

AIと一緒に開発するなら、コードだけでなく、設定画面やエラー画面も見せながら進めるのがかなり有効だと思いました。

Rojoを入れて変わったこと

Rojoを導入して一番変わったのは、コード修正をCodexに任せやすくなったことです。

ローカルフォルダにLuaファイルが整理されていると、Codexに対して具体的に依頼しやすくなります。

たとえば、

  • このファイルを一括差し替えして
  • この処理だけ追加して
  • このUIを別ファイルに分けて
  • この既存仕様は壊さずに調整して

といった頼み方がしやすくなりました。

Roblox Studio上で手作業していた時よりも、開発の見通しがかなり良くなった感覚があります。

「Roblox Studio上で直接いじる開発」から、「ローカルフォルダにあるコードをCodexと一緒に育てる開発」に近づいた感じです。

これはかなり大きな変化でした。

エージェントに作業させる予定なら、Rojoは早めがよさそう

今回の体験で一番大きな学びはここです。

Roblox Studioだけで手作業するなら、Rojoは後からでもよいかもしれません。

でも、CodexやChatGPTのようなAIエージェントにスクリプトを触らせる予定があるなら、Rojoは早めに入れた方がよさそうです。

理由は、AIエージェントは基本的に「ファイル」と「フォルダ構成」がある方が作業しやすいからです。

ローカルフォルダにコードがあれば、AIに対して具体的に指示できます。

たとえば、

  • ServerScriptService のこのファイルを修正して
  • StarterPlayerScripts にこの処理を追加して
  • 既存のHUD処理を壊さずに整理して
  • このフォルダ構成を前提に一括差し替えして

といった依頼がしやすくなります。

逆に、Roblox Studioの中だけにスクリプトがある状態だと、AIに作業させるたびに、人間側がコピー、貼り付け、配置確認をする必要があります。

これは積み重なるとかなり重いです。

自分の結論としては、こうです。

  • ただRoblox Studioを触ってみるだけなら、RojoなしでもOK
  • 小さな試作をStudio上で確認するだけなら、後回しでもOK
  • AIエージェントにスクリプト修正を任せる予定なら、Rojoは早めに入れた方がいい
  • 後から移行すると、手動でファイルを作る数が増えてつらい

今回、自分は少し作ってからRojoを入れました。

その結果、Rojoの便利さは実感できましたが、同時に「最初から入れておけばよかったかも」とも思いました。

特に、Roblox開発をCodexと一緒に進めたい人には、Rojoはかなり早い段階で検討していいツールだと思います。

今作っているもの

今は、Robloxで小さなバトルゲームの試作を進めています。

現時点では、

  • 攻撃判定
  • ダミー撃破
  • リスポーン
  • タンク、剣士、ヒーラーの役割行動
  • 3体の敵がそれぞれ動く処理

あたりを試しています。

まだ超試作ですが、キャラが動いて、攻撃が当たって、倒したらまた出てくるだけでも、かなりゲームっぽさが出てきました。

ゲームデザインも少しずつ考え始めた

開発を進めながら、ゲームデザインも少しずつ考え始めています。

最初はかなり小さいテストのつもりでした。

ただ、タンク・剣士・ヒーラーのような役割を入れ始めたことで、少しずつパーティバトルっぽい方向に育ってきました。

正直、やりたいことを考え始めると、ゴールは少し詰め込み気味になりつつあります。

ただ、いきなり完成を目指すと挫折しそうなので、まずは小さく動くものを積み上げていく方針です。

初心者がRojoを入れるなら早めがよさそう

今回の一番の学びは、Rojoは早めに入れた方がいいということです。

特に、次のような人は早めに入れておく価値があると思います。

  • Roblox開発をこれから続けたい人
  • CodexやChatGPTにコード修正を頼みたい人
  • VS Codeなどの外部エディタでコードを触りたい人
  • Gitで管理したい人
  • Studio上だけの手作業に限界を感じている人

逆に、ただブロックを置いて遊ぶだけなら、最初から無理に入れなくてもいいと思います。

でも、スクリプトを書いてゲームとして育てていくなら、早めに入れた方が後で楽になりそうです。

特に、AIエージェントと一緒に開発する予定がある人は、プロジェクトが小さいうちにRojoを検討しておくとよさそうです。

まとめ

Roblox開発にRojoを導入して、Codexと連携しやすい環境にしたことで、作業効率はかなり上がりました。

今回の学びは、Rojoそのものの便利さだけではありません。

一番大きかったのは、

AIエージェントにスクリプトを触らせる予定なら、ローカルフォルダで作業できる形を早めに作った方がいい

ということです。

最初は、Rojoは導入コストが少し重そうなので、後から入れればいいと思っていました。

ただ、実際に後から移行してみると、Studio上に作ったスクリプトをローカル側へ移したり、手動でファイルやフォルダを作ったりする作業が発生しました。

まだ小さいプロジェクトでも、なかなか大変でした。

今回の結論はこうです。

  • Roblox Studioを少し触るだけなら、Rojoなしでも始められる
  • ただし、CodexやChatGPTにコード修正を任せたいなら、Rojoは早めに導入した方がよい
  • 後から移行すると、手動でファイルを作ったり整理したりする作業が増える
  • Rojoを入れると、ローカルファイルとしてコードを管理できるので、AIに作業を任せやすくなる
  • Rojo本体、VS Code拡張、Studioプラグインの関係やバージョン確認で初心者は迷いやすい
  • 画面切り抜きをAIに見せながら進めると、疑問を解消しやすい
  • 初心者ほど、プロジェクトが小さいうちに開発環境を整えておくと後が楽になる

Roblox開発はまだ始めたばかりですが、Rojoを入れたことで、Roblox Studio上で手作業するだけの状態から、Codexと一緒にコードを育てていく形に近づきました。

まだ超試作ですが、タンク、剣士、ヒーラーの役割行動や、攻撃判定、リスポーン処理も少しずつ動き始めています。

ゴールは少し詰め込み気味になりつつありますが、焦らず小さく動くものを積み上げていきます。

少しずつ、N猫の作品として育てていきます。

タイトルとURLをコピーしました