Unity ML-Agents 環境構築(v0.6.0対応)

## **概要**
ML-Agents v0.6.0をWindowsで使うための環境構築方法を解説していきます。(2018/12/21現在)

**※最新情報が欲しい場合は[GitHubの公式リポジトリ](https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Installation.md)(英語)を参照してください。**

## **手順**
**1. Anacondaの導入
2. 環境変数の設定
3. 仮想環境の構築
4. ML-Agents Toolkit v0.6.0の導入
5. TensorFlowSharpプラグインの導入
6. Pythonライブラリのインストール
7. 動作テスト**

## **Anacondaの導入**
まずは[こちら](https://www.anaconda.com/download/#windows)からWindows用Anacondaをダウンロードしてください。

![20181225_advent_anaconda.png](https://qiita-image-store.s3.amazonaws.com/0/228364/898c0304-eb66-c227-f8c1-f8fc31acbc27.png)

ダウンロードが完了したらダウンロード先にexeファイルがあるので、それを実行するとセットアップが始まります。

**※¹** セットアップ途中にAdvanced Optionsという画面が出たとき、
```Register Anaconda as my default Python 3.6``` のチェックボックスにだけチェックを入れてください。もう1つのほうはチェックを外します。

**※²** ```Choose Install Location``` の画面で指定しているインストール先のパスをメモ帳か何かにコピペしておいてください。後で楽できます。

## **環境変数の設定**
次は、Anacondaの ```conda``` コマンドをどこからでも使えるようにするために**環境変数**を設定していきましょう。

まず、PC画面左下の検索窓に ```環境``` と入力し、候補に出てきた**環境変数の編集**という項目を開いてください。

次に、表示されたウィンドウの中から環境変数名 ```Path``` をダブルクリックで編集ウィンドウを開き、新規ボタンをクリックして以下のパスを1つずつ追加します。

```
<Anacondaインストール先パス>\Anaconda3\Scripts
<Anacondaインストール先パス>\Anaconda3\Scripts\conda.exe
<Anacondaインストール先パス>\Anaconda3
<Anacondaインストール先パス>\Anaconda3\python.exe
```

**※¹** ```<Anacondaインストール先パス>``` のところは各自の環境に合わせて置き換えてください。

**※²** システム環境変数とユーザー環境変数がありますが、どちらに追加してもOKです。

## **仮想環境の構築**
次は、Anacondaで仮想環境を作っていきましょう。

まずは、スタート -> すべてのプログラムの中にあるAnaconda3フォルダを開き、AnacondaPromptを起動します。

起動できたら以下のコマンドを実行してください。

```
conda create -n mlagents python=3.6
```

実行途中で確認を求める画面が出てきたら ```y``` を入力してEnterキーを押せばOKです。

仮想環境を有効化するには以下のコマンドを実行します。

```
activate mlagents
```

**(mlagents) C:\Users\user_name** のような表示になれば仮想環境が有効になっています。

## **ML-Agents Toolkit v0.6.0の導入**
次は、ML-Agents Toolkitをダウンロードして使えるように設定していきましょう。

まず、コマンドプロンプトでML-Agents Toolkitをインストールするディレクトリを作成＆移動し、ML-Agentsのリポジトリをダウンロードします。

```
cd <任意のディレクトリパス>
git clone https://github.com/Unity-Technologies/ml-agents.git
```

次に、Unityを起動して**Open**ボタンを押し、ml-agentsフォルダ内の```UnitySDK```フォルダを選択した状態で開いてください。

![20181225_advent_unity_open.png](https://qiita-image-store.s3.amazonaws.com/0/228364/a27102a6-8b82-f769-47c7-1da590483b17.png)

**※¹** バージョン違いの確認ダイアログが表示された場合、ContinueをクリックすればOKです。

**※²** この段階ではUnityのConsoleにエラーが表示されますが、とりあえず無視して進めましょう。

---

プロジェクトが起動したら、**Edit**メニューから**Project Settings -> Player**を選択してください。

プロジェクトの設定画面が出てきたら、```Other Settings```を開いて以下の通り設定します。

- **Scripting Runtime Versionを .NET 4.xに変更**

![20181225_advent_unity_playersettings1.png](https://qiita-image-store.s3.amazonaws.com/0/228364/c53286ff-7b77-38ba-e608-b6364b932449.png)

- **Scripting Defined Symbolsに```ENABLE_TENSORFLOW```を入力する**

![20181225_advent_unity_playersettings2.png](https://qiita-image-store.s3.amazonaws.com/0/228364/f7a1f74b-dfe4-fc45-5d5e-ea05002a9c1f.png)

## **TensorFlowSharpプラグインの導入**
次に、C#用のTensorFlowSharpプラグインを[こちら](https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Basic-Guide.md)からダウンロードしてください。

![20181225_advent_tfsharp.png](https://qiita-image-store.s3.amazonaws.com/0/228364/b5e71f67-e774-9d3f-e7fa-0ba8f8b15853.png)

ダウンロードが完了したら、ダウンロードしたunitypackageファイルをダブルクリックして、プロジェクトにインポートします。

TensorFlowSharpプラグインのインポートまで上手くできていれば、UnityのConsoleに表示されていたエラーが消えるはずです。

## **Pythonライブラリのインストール**

最後に、ML-Agentsを動かすのに必要なPythonライブラリをインストールします。

```
cd ml-agents/ml-agents
pip install mlagents
```

## **動作テスト**
ここまでで必要な設定がすべて終わったので、以下のコマンドを実行して動作するか確認してみましょう。

```
mlagents-learn -h
```

Unityロゴと使い方などが表示されたらML-Agents v0.6.0の環境構築は終了です！

お疲れ様でした！