サードパーティツール

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

プロの開発スタジオの場合、サードパーティツールの設定と自動化への投資は、開発者の生産性を劇的に向上させることができます。Roblox(ロブロックス)blox のクラウド第一のアプローチには多くのメリットがありますが、開発ワークフローの特定の部分をクラウドの外に移動すると、より大きなチームが変更を追跡したり、コードをレビューしたり、既に熟知している言語やツールを使用したりするのを助けることができます。

同期問題

コアとして、Roblox で外部ツールを使用することは、同期 問題です:

  • Roblox スクリプトをディスク上の .luau ファイルとして存在させ、自分のツールを使って作業できるようにしたい。
  • 作業が終わった後、ファイルを Roblox プロジェクトに戻す必要があります。
  • その間に他の誰かが同じファイルを変更した場合、すべてのコンフリクトを処理する必要があります。

ソリューション全体がスムーズで自動的に感じられるようにするには、a) ファイルの変更を聞き、b) これらの変更をStudioに戻す必要があります。言い換えれば、サーバーと Studio プラグインが必要で、これが Rojo がこの問題を解決する方法です。

Roblox のクラウド第一のアプローチではなく、Rojo は「ファイルシステム第一」のアプローチを許可します。プロジェクト内のすべてのスクリプトファイルを Luau ファイルに抽出します。その後、サーバーを実行します。Rojo プラグインは、サーバーに接続して、これらのファイルを Studio と同期します。

フォーマンでロジョをインストールする

手動で Rojo バイナリをダウンロードして実行できますが、その方法ではチーム内の異なる開発者が異なる Rojo バージョンを使用するリスクがあります。より良い解決策は、フォアマン のようなツールマネージャーを使用し、設定ファイル—リポジトリとバージョンのリスト—を使用して、マシン間でインストールとアップグレードプロセスを一貫させることです。

プロジェクト内のパッケージではなく、ベース開発環境を管理するため、Foreman は nvm よりも npm に近いが、比較は完全ではない単純な foreman.toml ファイルは次のように見えます:


[tools]
rojo = { github = "rojo-rbx/rojo", version = "7.4.1" }
wally = { github = "UpliftGames/wally", version = "0.3.2" }

次に、これらのツールを foreman install でインストールします。グローバルの foreman.toml ファイルに加えて、Foreman はプロジェクトごとのファイルをサポートしているので、異なるバージョンの Rojo、Wally、またはその他のツールを異なるプロジェクトで簡単に使用し、全体のチームを同じバージョンで維持できます。

ツールが新しいバージョンをリリースすると、.toml ファイルのバージョン番号を明示的に上げ、Foreman を使用してアップグレードを実行し、新しいバージョンをテストし、問題が発生した場合はダウングレードします。コマンドとインストール手順については、フォアマン を参照してください。

ロジョを実行

Rojo を Foreman でインストールした後、実際にインストールしたものは Rojo サーバーです。次のステップは、Roblox Studio 用の Rojo プラグインのインストールです:


rojo plugin install

次に、新しいエクスペリエンスのプロジェクト構造を生成し、構築します:


rojo init my-new-experience
cd my-new-experience
rojo build -o my-new-experience.rbxl

代わりに、既存のエクスペリエンスを ポートすることもできます。どちらにしても、プロジェクトがあった後、Rojo サーバーを開始します:


rojo serve

Roblox Studio で、アプリケーションを作成したばかりの .rbxl ファイルを開き、Rojo プラグインを開始し、現在実行中のサーバーに接続して、好ましいテキストエディタで変更を開始し、変更を自動的にスタジオに戻すことができます。

Rojo プロジェクトには、ファイルの名前指定、複数の設定オプション、およびいくつかの制限があり、すべてが Rojo ドキュメント でカバーされています。

パッケージマネージャ

Roblox には包含された API セットが豊富ですが、一貫して再現可能な方法でコミュニティのソフトウェアパッケージを利用したい場合は、パッケージマネージャーが必要です。ウォリー は人気のオプションです。Foreman を通じてインストールできます、同じように Rojo です。

エクスペリエンスの Rojo ディレクトリ内で、wally init を実行します。次に、必要なパッケージを wally.toml に追加します。ファイルは次のようになります:


[package]
name = "my-home-directory/my-new-experience"
version = "0.1.0"
registry = "https://github.com/UpliftGames/wally-index"
realm = "shared"
[dependencies]
react = "jsdotlua/react@17.1.0"
react-roblox = "jsdotlua/react-roblox@17.1.0"
cryo = "phalanxia/cryo@1.0.3"

その後、wally installを実行します。Wally は Packages ディレクトリを作成し、指定されたパッケージをそこにダウンロードします。最後のステップは、Packages ディレクトリを Rojo に追加して、その内容が RobloRoblox(ロブロックス) に同期されるようにすることです。Open default.project.json を開き、パスを追加します。シンプルさのため、この例では、すべてのディレクトリを ReplicatedStorage に追加して、すべてのパッケージがすべてのスクリプトに利用可能になりますが、特定のパッケージを ServerScriptService または StarterPlayerScripts に追加したい場合があります:


{
"name": "my-new-experience",
"tree": {
"$className": "DataModel",
"ReplicatedStorage": {
"Shared": {
"$path": "src/shared"
},
"Packages": {
"$path": "Packages"
}
},
...
}
}

その後、スクリプト内のパッケージを任意の他の ModuleScript と同じように要求できます:


local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local React = require(ReplicatedStorage.Packages.react)
local ReactRoblox = require(ReplicatedStorage.Packages["react-roblox"])
local handle = Instance.new("ScreenGui", Players.LocalPlayer.PlayerGui)
local root = ReactRoblox.createRoot(handle)
local helloFrame = React.createElement("TextLabel", {
Text = "Hello World!",
Size = UDim2.new(0, 200, 0, 200),
Position = UDim2.new(0.5, 0, 0.5, 0),
AnchorPoint = Vector2.new(0.5, 0.5),
BackgroundColor3 = Color3.fromRGB(248, 217, 109),
Font = Enum.Font.LuckiestGuy,
TextSize = 24
})
root:render(helloFrame)

ほかのほとんどのソフトウェアプロジェクトと同様、目標は、貢献者がリポジトリをクローンし、Foreman をインストールし、いくつかのコマンドを実行し、チームの残りのメンバーと同じ開発環境を持つことです。

バージョン管理

コンピュータ上にプレーンテキストファイルのセットを持つと、多くの機能がアンロックされますが、主なものは バージョンコントロール です。スクリプトと設定ファイルを Git または Mercurial リポジトリに保存できます; リモートリポジトリをホストし、GitHubGitLab、またはBitbucketでコード変更をレビューします; 好きなテキストエディタを使用します。

Visual Studio コード は最も大規模な拡張エコシステムを持っていますが、Sublime TextNotepad++、およびVim はすべて人気の選択肢です。どのエディタを選択しても、Studio スクリプトエディタの機能に合致するためには、いくつかの拡張が必要になります。

追加することも考えるかもしれません:

アセット

このページのツールは、スクリプトに最も適しています;3Dアーティストはすでに Blender や Maya などの外部ツールを使用し、ソースファイルをバージョン管理で保存し、Studio に作品をインポートしています。Studio アセットを持った後、可能な限り パッケージ を使用することをお勧めします。

Roblox のパッケージの実装は、このページのツールと同じ多くの原則に従います:アセットのすべてのコピーを同期する方法を提供する中央リポジトリ、バージョン履歴がある中央化されたリポジトリ。ワークフローを改善する方法に関する詳細情報は、パッケージ を参照してください。

すべてを元に戻す

第三者ツールは、置換するのではなく Roblox Studio に変更を同期するため、このワークフローのどの部分もロックダウンはありません。いつでも、1つまたはすべてのこれらのツールの使用を停止し、Studio でのみエクスペリエンスの編集に戻ることができます。リスクの欠如は、サードパーティのツールで実験することを特に魅力的にします。