iPX社員によるブログ

iPX社員が"社の動向"から"自身の知見や趣味"、"セミナーなどのおすすめ情報"に至るまで幅広い話題を投下していくブログ。社の雰囲気を感じ取っていただけたら幸いです。

最新の AirSim を利用する方法( Windows 環境編)

こんにちわ、 iPX のコクブンです。
前回の記事でご紹介した通り、 Windows 環境で AirSim を利用する場合は公式よりサンプルの走行環境を含んだ実行バイナリが配布されているため非常に容易に導入することが可能です。
しかし、独自コースで利用したいとか別途用意した車種を走らせたいといった用途では、バイナリから AirSim のアドインのみを抽出して Unreal Editor*1 に展開する必要があり、「手軽に利用可能」とは言い難いところがあります。
また、バイナリで提供されている AirSim はリポジトリソースコードよりバージョンが古いことがあるため、一部の最新機能が利用出来なかったり API のインターフェースが変更されていたりする可能性もあります。
そこで今回は、 Windows 環境で AirSim をソースコードからビルドする手順についてご紹介したいと思います。

※ 2018/05/11 追記
2018/04/28 に AirSim のドキュメントが更新され、サポートされる各ツールのバージョンが変更されました。

Unreal Engine
4.16 → 4.18
Visual Studio
2015 Update3 → 2017

本記事中の上記ツールのバージョンについては、適宜読み替えてください。

事前準備

Windows 環境で AirSim をソースコードからビルドして利用する場合、事前に以下の作業を行っておく必要があります。

  • Epic Games Launcher のインストール
  • Unreal Engine 4.16 のインストール
  • Visual Studo 2015 Update3 のインストール
  • CMake のインストール

順に見ていきましょう。

Epic Games Launcher のインストール


AirSim は Unreal Engineプラグインとして作成されているため、ビルドするためには Unreal Engine が必要です。 Unreal Engine のインストールは Epic Games Launcher を通して行う事になるため、まずは Epic Games Launcher のインストールを行います。
Unreal Engine 公式サイト にアクセスして、画面右上の「ダウンロード」をクリックすると、 Epic Games Launcher のダウンロードが行えます。
# Epic Games Launcher のダウンロードに当たっては Epic Games アカウントが必要となります。
アカウントの登録(サインイン)が完了すると、 Epic Games Launcher がダウンロードされますので、実行してローカル環境にインストールしてください。

Epic Games へのアカウント登録


Unreal Engine 公式サイトの「ダウンロード」をクリックすると、 Epic Games アカウントの登録画面が表示されますので、必要事項を入力してアカウントを登録してください*2
# アカウントの登録には氏名とメールアドレスが必要になります。
# 登録を行うと確認のメールが送付されますので、メ-ル受信可能なアドレスで登録してください。

Unreal Engine 4.16 のインストール


Epic Games Launcher を起動*3して、画面上部の「 UNREAL ENGINE 」タブ → 画面左部の「ライブラリ」タブを選択すると、 Engine 選択画面が表示されます。

「 Engine バージョン」メニューの右側にある「+」ボタンをクリックすると Engine のインストール項目が追加されますので、バージョン表示の右側の「▼」をクリックして「 4.16.x*4 」のバージョンを選択してインストールしてください。

複数のバージョンの Unreal Engine がインストールされている場合


Unreal Engine は複数のバージョンをひとつの環境(マシン)にインストールすることが可能です。
複数バージョンがインストールされている場合は、 Epic Game Launcher の「 Engine バージョン」にインストール済のエンジンがリスト表示されるので、 4.16.x の起動ボタン右横にある「 ▼ 」をクリックして表示されるメニューから「このバージョンをデフォルトにする」を選択して 4.16.3 がデフォルトで使用される様にしてください*5

Visual Studo 2015 Update3 のインストール


プラグインのビルドを行うために、 Visual Studio のインストールを行います。
Visual Studio の最新バージョンは 2017 ですが、現状の AirSim は Visual Studio 2017 でのビルドが出来ない様なので、 Visual Studio 2015 (Update 3) を使用してください。
Visual Studio 2015 はVisual Studio サブスクリプションDev Essensials プログラムより入手可能です。*6
なお、 Visual Studio をインストールする際、 VC++ のインストールを忘れずに含めてください。*7

CMake のインストール


AirSim プラグインのビルドでは、サブモジュールのビルドに CMake を利用しているため、 CMake もインストールします。
CMake download ページより、 Windows 向けの CMake をダウンロードし、インストールしてください。

ソースコードの入手

事前準備が整ったら、 AirSim のソースコードをダウンロードします。
AirSim のソースコードGitHub より入手可能なので、Windows に対応した Git ツールを利用するか、 VS2015 x64 Native Tools コマンド プロンプト*8より git clone コマンドを使って取得してください。

> git clone https://github.com/Microsoft/AirSim.git

Unicode 文字化け対策の実施

日本語(等の非アルファベット言語圏)環境の場合、コンパイラ文字コード自動判別の関係から後続のビルド処理でエラーが発生してしまうことがあるため、下記のソースファイルを Visual Studio 等の文字コードを指定可能なエディタで開き、「 BOM 付き UTF-8 」ファイルとして上書き保存してください。(中身の変更は不要です)

  • .\AirSim\AirLib\deps\eigen3\Eigen\src\Core\arch\CUDA\Half.h

ソースのビルド

VS2015 用 MSBuildコマンドプロンプト*9を起動し、取得したソースコードの先頭フォルダ (.\AirSim) へ移動して build.cmd を実行してください。

> cd path-to-airsim
> build.cmd


ビルドが成功すると、 .\Unreal\Plugins フォルダ内に AirSim プラグインが生成されます。
このフォルダを Unreal プロジェクトの Plugins フォルダにコピーする事で利用可能になります。

サンプル環境 (Blocks) の実行

AirSim プラグインが正しくビルド出来たか確認するために、ソースコードに同梱されている Blocks 環境を実行してみます。

必要なファイルのコピー


.\Unreal\Environments\Blocks フォルダ内の update_from_git.bat をダブルクリックで実行すると、ファイルのコピーが実行されます。

Visual Studio の起動


update_from_git.bat の実行が完了したら、同階層に生成された Blocks.sln を Visual Studio 2015 で実行します。

ビルド設定の変更

Visual Studio 2015 のソリューションエクスプローラで (Blocks Solution)\Games 内にある Blocks プロジェクトを選択し、メニューから「プロジェクト」→「スタートアップ プロジェクトに設定」を選択して Blocks プロジェクトをスタートアッププロジェクト*10にします。
また、ソリューション構成を「 DebugGame_Editor | Win64 」に設定します。

Blocks の実行(デバッグ

この状態で F5 キーを押す(またはメニューから「デバッグ」→「デバッグの開始」を選択する)と*11Unreal Editor が起動します。
後は Unreal Editor で Play をクリックすれば、 Blocks の動作確認が可能になります。

任意の環境( Unreal プロジェクト)で AirSim プラグインを利用する

最後に、任意の Unreal プロジェクトで AirSim プラグインを利用する方法をご紹介します。

Unreal プロジェクトのビルド

まず、 AirSim プラグインを利用したいプロジェクトを Unreal Editor で開いた状態で、メニューから「ファイル」→「新規 C++ クラス」を選択し、「親クラスなし」のクラス(クラス名は任意で構いません)を作成します*12

AirSim プラグインのコピー


次に、 AirSim プラグインのビルド時に生成された .\Unreal\Plugins フォルダを、プラグイン利用対象の Unreal プロジェクトフォルダ直下にコピーします。

プラグイン情報の追記

Visual Studio 2015 で Unreal プロジェクトの uproject ファイルを開き、以下の様にプラグイン情報を追記します。

{
  "FileVersion": 3,
  "EngineAssociation": "4.16",
  "Category": "",
  "Description": "",
  "Modules": [
    {
      "Name": "SampleUE416",
      "Type": "Runtime",
      "LoadingPhase": "Default",
      "AdditionalDependencies": [
        "AirSim"
      ]
    }
  ],
  "Plugins": [
    {
      "Name": "AirSim",
      "Enabled": true
    }
  ]
}
追加点
  • "Modules" キー内の "AdditionalDependencies" キー(なければ追加)に "AirSim" を追加
  • "Plugins" キー(なければ追加)に AirSim 項目を追加

uproject ファイルを保存したら、 Visual StudioUnreal Editor を終了します。

Visual Studio プロジェクトファイルの作成

エクスプローラで、 Unreal プロジェクトの uproject ファイル の Extension メニュー*13から「 Generate Visual Studio project files 」を選択します*14
これにより、プロジェクト内の全てのソースとプラグインを含む Visual Studio のソリューションが生成されます。

デバッグ実行

Unreal プロジェクトファイルと同階層にある Visual Studio ソリューションファイル (*.sln) をダブルクリックして Visual Studio を起動します。
ソリューション構成を「 DebugGame Editor | Win64 」に設定して F5 キーを押す(またはメニューから「デバッグ」→「デバッグの開始」を選択する)と*15Unreal Editor が起動します。
これで Unreal エディタで AirSim を利用することが出来る様になります。

*1:Unreal Engine を利用したアプリケーションを開発する際に利用する IDE です。 Unreal Engine をインストールする際に一緒にインストールされます。

*2:既に Epic Games のアカウントを所持している方は、登録画面の一番下にある「サインイン」のリンクをクリックしてサインインしてください。

*3:起動時に Epic Games アカウントでのサインインが求められますのでダウンロード時に作成・使用したアカウントでサインインしてください。

*4:3 つ目の数字は環境によって異なる場合があります。

*5:デフォルトに指定されているバージョンの項目は枠が別色で囲まれます。

*6:AirSim プラグインのビルドは Visual Studio Community でも可能ですが、 Visual Studio Community の利用には一定の制約があるので注意してください。

*7:Windows 向け Git ツールをインストールしていない方は Git for Windows のインストールも含めてください。

*8:スタートメニューの 「 Visual Studio 2015 」内にショートカットがあります

*9:スタートメニューの 「 Visual Studio 2015 」内にショートカットがあります

*10:スタートアッププロジェクトに設定されているプロジェクトは、ソリューションエクスプローラ-上で太字で表示されます。

*11:再ビルドを求めるダイアログが表示された場合は「はい」をクリックします。

*12:この操作が Unreal プロジェクトをコンパイルするトリガーとなり、 Visual Studio ソリューションが開かれます

*13:右クリックメニュー

*14:もし Extension メニューに該当するメニューが表示されていない場合は、 Unreal Shell 拡張を有効にするために端末の再起動を行ってみてください。再起動しても表示されない場合は、対象の uproject を一旦 Unreal Editor で開き、メニューから「ファイル」→「 Visual Studio プロジェクトを更新」を選択してください。

*15:再ビルドを求めるダイアログが表示された場合は「はい」をクリックします。