Luau開発者ツールチェーン完全ガイド — Rojo・Selene・StyLua・Wallyで実現するプロ品質ワークフロー【2026年版】
Luau開発者ツールチェーン完全ガイド。Rojo(Studio同期)、Selene(リンター)、StyLua(フォーマッター)、Wally(パッケージ管理)、Rokit(ツール管理)、luau-lsp(言語サーバー)、TestEZ(テスト)、Lune(スタンドアロンランタイム)を使ったプロ品質ワークフローを解説。
Roblox Studio単体では大規模開発に限界があり、外部ツールチェーンが必須
Roblox Studioは優れたIDEですが、Git管理・静的解析・パッケージ管理といったプロ品質の開発に必要な機能が不足しています。Rojo・Selene・StyLua・Wallyを組み合わせることで、現代的なソフトウェア開発と同等のワークフローが実現できます。
ツールチェーンが重要な理由
Roblox Studio単体での開発が抱える主な課題は以下の通りです。 - バージョン管理: Studioのファイル形式(.rbxl)はGitでの差分管理が困難 - コード品質: バグや非推奨APIの使用をリアルタイムで検出する仕組みがない - チーム開発: 複数人での同時編集・コードレビューが困難 - 依存関係管理: 外部ライブラリの導入・更新が手動作業 外部ツールチェーンはこれらすべての課題を解決し、チーム開発のスケーラビリティを大幅に向上させます。
Rojo:VSCode↔Roblox Studio同期の中核
Rojoはファイルシステム上の`.luau`ファイルをRoblox Studioのオブジェクトツリーにリアルタイム同期するツールです。 主な特徴: - Luauファイルをそのままの階層構造でGit管理できる - `rojo serve`コマンドで起動し、Studioプラグインが自動同期 - `.project.json`でファイルツリーとRobloxツリーのマッピングを定義
# Rojoプロジェクト初期化
rojo init my-game
cd my-game
rojo serveStudioのRojoプラグインから`Connect`を押すだけで、以降はファイルを保存するたびにStudioが自動更新されます。
Selene:Luau専用静的リンター
SeleneはRust製の高速静的解析ツールで、Roblox APIルールをネイティブでサポートしています。 主な機能: - 未使用変数・シャドウイング・非推奨APIの検出 - Roblox標準ライブラリ定義ファイル(`roblox.toml`)内蔵 - カスタムルールの定義が可能
# selene設定ファイル
# selene.toml
[lints]
global_usage = "allow"
roblox = trueVSCode拡張と組み合わせると、コード編集中にリアルタイムで警告が表示されます。
StyLua:Prettierに相当するコードフォーマッター
StyLuaはLua/Luau専用のコードフォーマッターで、チーム全体のコードスタイルを自動統一します。
# stylua.toml
column_width = 120
indent_type = "Spaces"
indent_width = 4
quote_style = "AutoPreferDouble"
call_parentheses = "Always"# フォーマット実行
stylua src/
# Git pre-commitフックに組み込み
stylua --check src/CI/CDパイプラインに`--check`オプションで組み込むことで、フォーマット違反のコードがマージされるのを防げます。
Wally:Luauエコシステムのパッケージマネージャー
Wallyは`wally.run`で公開されているパッケージマネージャーで、npmやCargoに相当します。
# wally.toml
[package]
name = "myorg/my-game"
version = "0.1.0"
registry = "https://github.com/UpliftGames/wally-index"
[dependencies]
Promise = "evaera/promise@4.0.0"
ProfileService = "madstudioroblox/profileservice@1.0.0"
Signal = "sleitnick/signal@1.5.0"wally install`wally install`を実行するとPackagesフォルダが生成され、`require(Packages.Promise)`で利用できます。
Rokit:ツールチェーンマネージャー
Rokitは`rokit.toml`一つでRojo・Selene・StyLua・Wallyのバージョンを統一管理するツールです。
# rokit.toml
[tools]
rojo = "rojo-rbx/rojo@7.4.4"
wally = "UpliftGames/wally@0.3.2"
selene = "Kampfkarren/selene@0.27.1"
stylua = "JohnnyMorganz/StyLua@0.20.0"rokit installチームメンバーは`rokit install`一発で全ツールを同一バージョンでセットアップできます。
luau-lsp:VSCode/Neovim用言語サーバー
luau-lspはLSP(Language Server Protocol)実装で、以下を提供します。 - オートコンプリート: Roblox API・自作クラスのメソッド補完 - 型チェック: `--!strict`モードの静的型エラー表示 - 定義ジャンプ: `F12`でModuleScriptの定義元にジャンプ - ホバー情報: 関数シグネチャ・ドキュメントのインライン表示 VSCode拡張「Luau Language Server」を入れるだけで自動起動します。
TestEZ:ユニットテストフレームワーク
TestEZはRoblox公式のユニットテストフレームワークで、Jest風のAPIを提供します。
-- AnimalSpec.luau
return function()
describe("Animal", function()
it("should have correct name", function()
local animal = Animal.new("Rex", "Woof")
expect(animal:getName()).to.equal("Rex")
end)
end)
endLuneと組み合わせることでRoblox Studio外からも実行でき、CI/CDパイプラインへの組み込みが可能です。
Lune:Rust製スタンドアロンLuauランタイム
LuneはRoblox Studioなしでも動作するLuauランタイムです。ビルドスクリプト・ファイル操作・HTTP通信などをLuauで記述でき、CI/CDツーリングに最適です。
-- build.luau
local fs = require("@lune/fs")
local process = require("@lune/process")
local result = process.spawn("rojo", {"build", "--output", "game.rbxl"})
if result.ok then
print("Build succeeded")
else
error(result.stderr)
endセットアップ手順:ゼロから始めるプロ品質環境
# 1. Rokitのインストール(ツール管理)
curl -sSf https://raw.githubusercontent.com/rojo-rbx/rokit/main/scripts/install.sh | sh
# 2. rokit.tomlを作成してツールをインストール
rokit init
rokit add rojo-rbx/rojo
rokit add UpliftGames/wally
rokit add Kampfkarren/selene
rokit add JohnnyMorganz/StyLua
rokit install
# 3. Rojoプロジェクト初期化
rojo init
# 4. Wallyの初期化とパッケージインストール
wally init
wally install
# 5. Seleneの設定
selene generate-roblox-std
# 6. 開発開始
rojo serveツール比較テーブル
| ツール | カテゴリ | 主な役割 | 必須度 |
|---|---|---|---|
| Rojo | ファイル同期 | VSCode↔Studio間のリアルタイム同期 | 必須 |
| Selene | 静的解析 | バグ・非推奨API・スタイル検出 | 強く推奨 |
| StyLua | フォーマット | コードスタイルの自動統一 | 強く推奨 |
| Wally | パッケージ管理 | 外部ライブラリの導入・更新 | 中〜大規模で必須 |
| Rokit | ツール管理 | 全ツールのバージョン統一 | チーム開発で必須 |
| luau-lsp | 言語サーバー | オートコンプリート・型チェック | 必須 |
| TestEZ | テスト | ユニットテスト実行 | 品質重視プロジェクトで必須 |
| Lune | ランタイム | CIツーリング・ビルドスクリプト | 高度なCI/CDで有用 |
よくある質問(FAQ)
Q1. Roblox Studio単体で十分ではないですか? A. 個人の小規模プロジェクトであれば十分な場合もあります。しかしチーム開発・長期保守・コードレビューが必要な場合は、外部ツールチェーンの導入が開発速度と品質の両面で大きく有利です。 Q2. チーム開発で最低限必要なツールはどれですか? A. Rojo(Git管理)とluau-lsp(コード補完)の2つが最優先です。次にRokit(バージョン統一)とSelene(コード品質)を追加することを推奨します。 Q3. WallyとnpmやCargoと比べて成熟度はどうですか? A. パッケージ数はnpmほど多くありませんが、Roblox開発で必要な主要ライブラリ(Promise、Signal、ProfileService等)は揃っています。2026年現在も活発にメンテナンスされています。 Q4. SeleneとluauLSPの型チェックは重複しますか? A. 役割が異なります。Seleneはコードスタイル・非推奨API・ロジックパターンを検出し、luau-lspは型システムに基づく型エラーを検出します。両方使うことが推奨です。 Q5. Luneはどんな場合に使いますか? A. CI/CDパイプラインでの自動ビルド、テスト実行スクリプト、ファイル生成ツールなど、Roblox外でLuauコードを実行したい場面で活躍します。 Q6. このツールチェーンはRoblox以外のLuauプロジェクトにも使えますか? A. はい。Selene・StyLua・Luneは純粋なLuau/Luaツールであり、Roblox非依存です。RojoとWallyはRoblox専用です。
Oflightによる開発支援
Robloxゲーム開発のツールチェーン導入やCI/CD構築、チーム体制の整備でお困りの際はOflightにご相談ください。プロ品質の開発環境構築から長期保守まで、専門チームが支援します。詳細はソフトウェア開発サービスをご覧ください。
お気軽にご相談ください
お問い合わせ