##はじめに
LGSVL SIMULATOR (現SVL SIMULATOR) の開発環境を構築するための手順です。
英語を読むのが苦じゃない人は公式のドキュメント↓を見てください。
https://www.svlsimulator.com/docs/archive/2020.03/build-instructions/
注意:2021年3月のアップデート(バージョン2021.1~)で、シミュレータのUIが大きく変更となりました。開発環境の構築手順はほぼ同じですが、記事の画像はすべてバージョン2020.3時点のものですので、ご注意ください。
環境など
- OS:Ubuntu16.04
- シミュレータバージョン:2020.3
準備
UnityHubをインストール
UnityHubは、Unityのプロジェクトなどを管理をするアプリケーションです。
インストール方法をはじめ、日本語のサイトがたくさんあるので、そちらを探してみてください。
Node.jsをインストール (2021.1以降は不要)
こちらを参照してください。バージョン12.16.1LTSを入れてください。
git-lfsをインストール
こちらを参照してください。
Vulkanをインストール
sudo apt-get install libvulkan1
##シミュレータの構築
###ソースのダウンロード
まず、シミュレータのソースをLGSVLのリポジトリからクローンします。
git clone --single-branch https://github.com/lgsvl/simulator.git # 最新バージョンを入れる場合
git clone https://github.com/lgsvl/simulator.git -b release-2020.03 # バージョンを指定する場合
クローンは結構長いので気長に待ちましょう。クローンが完了すると、"simulator"という名前のフォルダができているはずです。
###シミュレータのビルド
次に、UnityHubを起動しましょう。
UnityHubの実行ファイル( UnityHub.AppImage )がある場所でterminalを開いて、次のように実行します。
sudo ./UnityHub.AppImage --no-sandbox
すると、こんな画面が表示されます。まずは、[ リストに追加 ] をクリックしましょう。
ディレクトリを選択するウィンドウが出てくるので、先ほどクローンした "simulator" フォルダを選択して [ OK ]。
すると、プロジェクトに "simulator" が追加されます。
ここで、おそらく「Unity20xxをインストールしてね!」というような感じのメッセージが出ると思いますので、指示に従ってインストールを行ってください。(この画像はすでにUnityをインストールした状態です)
注意点として、途中でオプションを選択する必要があります。
Choose Componentsという画面になったら、必ず
- Linux Build Support
- Windows Build Support
この2つにチェックボックスを入れてください。
Unityがインストール出来たら、上画像の赤い矢印のところをクリックして、プロジェクトをロードします。
ロードが完了すると、このようなUnityのエディタが表示されます。
ここで一旦、terminalを開いて次のコマンドを実行してください。(2021.1以降は不要)
cd simulator/WebUI
npm install
これが終わったら、再びUnityに戻ります。
Simulator > Build WebUI を実行します。(2021.1以降は不要)
WebUIのビルドが完了したら、Simulator > Build からビルド画面を表示します。
Executable Platform のところが、"Linux" になっていることを確認します。
Build Simulator にチェックを入れて、ビルドしたシミュレータの実行ファイルを置く場所を選びます。
確認したら、一番下の [ Build ] をクリックします。
ビルド中はこんなウィンドウが表示されます。最初のビルドはかな~り長いです。気長に待つというより、他の作業をした方が良いでしょう。
ビルドが成功したら、実行ファイルが出来ているはずです。
これをクリックするか、terminalで実行しましょう。
こんな画面が表示されます。画質などを選択して [ OK ]。
そのあと、シミュレータのスタート画面が表示されます。
ここから先の操作はダウンロード版と同じですので、動作確認を行ってください。
##おわりに
以上で、シミュレータ開発環境の構築は完了であります。
あとは好きなようにC#なりなんなりを弄るわけですが、どこを触ると何が起きるのか、さっぱりわかりません。誰か記事にしてくれるとうれしいです。。。
また、ここでは紹介しませんが、シミュレータで使う環境や車も作成できます。こちらは後日記事にするつもりです。
それでは。