UnityのML-agentsの導入は、多くのゲーム開発者や機械学習エンジニアにとって、新しい可能性を切り拓くための重要なステップです。
この記事では、初心者がUnityを使用してML-agentsを導入する方法に焦点を当てました。
『ML-agentsを導入・環境構築する方法は?』
『Pythonのバージョン違いで動かない時は?』
こんな疑問に答えます。
【ざっくり】Unity ML-Agentsを導入する手順
Unity ML-Agentsによる強化学習を利用したゲームAIの開発には、適切な環境設定が必要です。
必要なソフトウェアのインストールとセットアップ手順をステップバイステップで紹介します。
以下が、ざっくりの手順です。
ステップ 1: 開発環境の確認と決定
- Unity 2020.3.48f1
- Unity ML-Agents Release 19
- Python 3.8
ステップ 2: Unityのインストール
- Unity Hubをダウンロードし、インストール。
- Unity Hubを起動し、Unity 2020.3を選択してインストール。
ステップ 3: Pythonのインストール (Windows)
- “Microsoft Store”から “Python 3.8″をインストール
- コマンドプロンプトでPythonのバージョンを確認
- Python仮想環境を作成
ステップ 4: Unity ML-AgentsのPythonパッケージをインストール
- Unity ML-Agents Release 19のリリースノートからZipファイルをダウンロード。
- Zipファイルを解凍して必要なパッケージを含むフォルダを取得。
- パッケージ”ml-agents-env”をインストール
- パッケージ”ml-agents”をインストール
ステップ 5:UnityのプロジェクトにML-Agentを組み込む
- Unityプロジェクトの新規作成
- プロジェクトを開いて、ML-Agentsパッケージ を追加
この5ステップで簡単にUnity ML-Agentsの開発環境をセットアップできます。
エラーが発生した場合でも焦らず、問題を解決できるので安心してください。
『そもそもml-agentsって何?』という記事はこちら
ml-agentsを超ざっくり紹介した記事はこちら(Release3です)
【Python&Unity】ml-agentsでAI強化学習
【ステップ 1】 開発環境の選定
強化学習による AI ゲームの開発を行うために、以下の3つのインストー ルとセットアップが必要です。
- Unity
- Unity ML-Agents
- Python
「Unity ML- Agents」 を利用するには、 「Unity 2020.3 以降」 が必要になります。
セットアップするバージョンによっては、うまく動作しないこともあるのです。
確実に動作するバージョンを選定して、セットアップする必要があります。
ここが最も重要といっても過言ではありません。
今回は確実に動作する環境をお伝えします(筆者にて動作確認済です。バッチリOK)
選定したバージョンは以下の通り。
- Unity: 2020.3.38f1
- Unity ML-Agents Release: 19
- Python: 3.8
バージョンの選定にあたり、次の書籍を元にバージョンを決めて動作を確認しました。
Unityのバージョンは、筆者が導入したバージョンと微妙に違いますが動作は確認済です。
ご安心ください。
Unityではじめる機械学習・強化学習 Unity ML-Agents 実践ゲームプログラミング v2.2対応版
【ステップ2】 Unityのインストール
「Unity」は、世界で愛用されている3Dのゲーム開発環境の1つ。
Unityにはバージョンがたーくさんあるので、
バージョン管理するUnityHubからUnity本体をインストールするのが一般的です。
<インストール手順>
- Unity Hubのダウンロード
- Unityの公式サイトからUnity Hubをダウンロードします。
- Unity Hubのインストール
- ダウンロードしたUnity Hubのインストーラを実行して、Unity Hubをインストールします。
- Unity Hubを起動
- インストールが完了したら、Unity Hubを起動します。
- Unity本体のインストール
- Unity Hubの「インストール」タブから、「エディターをインストール」をクリックします。
- 「Unity 2020.3」を選び、「インストール」ボタンをクリックします。
- 利用するOS(WindowsまたはmacOS)のビルドモジュールを選択し、「インストール」ボタンをクリックします。
【ステップ3】Pythonのインストール
Python をローカルマシン (Windows、 またはmacOS) にインストールします。
WindowsとmacOSでインストール方法が異なるケースがあります。
(筆者はWindows環境で構築したため、Windowsメインで書きました)
- Python3.8のインストール
- Windowsの場合
Microsoft Storeで「Python 3.8」を検索してインストールします。
バージョンごとに別アプリとして配布されているので「Python3.8」を選んでください。コマンドプロンプトを起動して、Pythonのバージョンが表示されたら成功です。
次のコマンドで確認しましょう。python -–version
Python 3.8.xx
- macOSの場合
HomeBrewを使用してインストールします。
HomeBrewはmacOS用のパッケージマネージャです。
windowsと同様にPythonのバージョン3.8をインストールします。
すみません、HomeBrewを使用したインストールの詳細は割愛します。
- Windowsの場合
- Pythonの仮想環境の作成
Python を使って開発を行う際は、用途に応じてプロジェクト毎の環境を作成して、 切り替えて使用するのが一般的です。
これによって、 プロジェクト毎に異なるバージョンの Python パッケージを利用できるようになります。このプロジェクト毎に作成する環境を、 「仮想環境」と言います。- プロジェクトフォルダの作成
「unity-ml-agents」 という名前のプロジェクトフォルダを作成します。
(作成したらプロジェクトフォルダへ移動)mkdir unity-ml-agents cd unity-ml-agents
- プロジェクトフォルダ内に仮想環境「env」を作成します。
python -m venv env
- プロジェクトフォルダの作成
- Pythonの仮想環境の有効化
仮想環境を有効化します。
- Windows:
env\Scripts\activate
プロンプトの左端に 「(env)」 と表示されるとOKです。
(env) c:\python\unity-ml-agents>
- macOS:
source env/bin/activate
- Windows:
Python関係のコマンド(python やpip) は、すべてこの仮想環境内で実行してください。
【ステップ4】PythonへUnity ML-Agentsをインストール
「Unity ML-Agents」は、Unityで「強化学習」の学習環境を構築するための Unity パッ ケージです。
バージョンは「Unity ML-Agents Release 19」を使用します。
- 「Unity ML-Agents Release 19」のリリースノートを開く
リリースノートを開きます。
- Zipファイルをダウンロード
リリースノートの下部にある「Assets」から「Source code (zip)」をクリックしてZipファイルをダウンロードします。
- Zipファイルを解凍
ダウンロードしたZipファイル(ml-agents-release_19.zip)を解凍し、「ml-agents-release_19」フォルダが生成されます。
- フォルダ「ml-agents-release_19」へ移動
Pythonの仮想環境を有効化した状態で、先ほど解凍した「ml-agents-release_19」フォルダに移動します。
- PyTorchのインストール(Windowsのみ)
※macOSの場合、PyTorchはml-agentsパッケージのインストール時にいっしょにインストールされるので次へ進んでください
Windowsの場合、PyTorchのインストールが必要です。以下のコマンドを実行します。
pip install torch==1.7.1 -f https://download.pytorch.org/whl/torch_stable.html
MicrosoftのVisual C++ Redistributable」 のインストールを要求される場合もあります。
- ML-Agentsの Python パッケージをインストール
「Unity ML-Agents」 の Python パッケージには、 「ml-agents-env」 「ml-agents」の2つがあり、この順番でインストールする必要があります。
- ml-agents-envパッケージのインストール
pip install -e ./ml-agents-envs
- ml-agentsパッケージのインストール
pip install -e ./ml-agents
- ml-agents-envパッケージのインストール
- Pythonパッケージ一覧を確認
pip list
「Unity ML-Agents Release 19」 には、以下のパッケージ群が含まれています。
パッケージ≒フォルダと思ってください。.(ドット)が階層です。
- Unityパッケージ (基本)
com.unity.ml-agents (C#) v2.2.1-exp.1 - Unityパッケージ (拡張)
com.unity.ml-agents.extensions (C#) v0.6.1-preview - Python パッケージ(基本)
ml-agents (Python) v0.28.0 - Python パッケージ(Unity-Python 間の通信)
ml-agents-envs (Python) v0.28.0 - OpenAl Gym と連携するためのパッケージ
gym-unity (Python): v0.28.0 - その他のパッケージ
Communicator (C#/Python) v1.5.0
パッケージではないけど、フォルダに含まれるもの
- 学習設定ファイル
config - Unityプロジェクトのサンプル
Project - Pythonスクリプトのサンプル
colab - ドキュメント
docs
「Release 19」の「19」という番号は、 Unityパッケージのバージョンではなく、複数の Unityパッケージをまとめたパッケージセットのバージョンで、リリース毎に増える連番です。
【ステップ5】UnityのプロジェクトにML-Agentを組み込む
必要な開発環境の準備が整いました。
新規のプロジェクトに 「Unity ML-Agent」のパッケージを組込みましょう。
以下、手順です。
Unityプロジェクトの追加
- Unity Hub を起動
- 「プロジェクトタブ」 の 「新しいプロジェクト」ボタンを押す
- テンプレート 「3D」を選択
- プロジェクト名 (任意の名前) を入力
- 保存先を確認・選択
- 「プロジェクトを作成」ボタンを押す
ml-agentsパッケージの追加
- プロジェクトのメニュー 「Window Package Manager」 を開く
- 「+」をクリック
- 「Add package from disk」を選択
- 「ml-agents-release_19/com.unity.ml-agents/package.json」を選択
上記の手順で
Project ウィンドウの 「Packages/ML Agents」 に 「ML-Agents パッケー ジ」が追加されたら成功です。
UnityプロジェクトでML-agentを利用したプロジェクトを行いましょう。
プログラミングも行って、いざPythonのmlagents-learnコマンドで学習しようとしたときにエラーが発生することもあります。
その時はこちらの記事を参考にしてください。
「記事を読んでもわからないトコがある」「内容が変だよ」
という時は、お気軽にコメントください♪
「もっとSEおっさんに詳しく聞きたい。何かお願いしたい!」
という時は、ココナラまで。メッセージもお気軽に♪
LINEでのお問合わせも受付中!
LINE公式アカウント
メッセージをお待ちしています!
- 応用情報技術者
- Oracle Master Gold
- Java SE Gold
- Java EE Webコンポーネントディベロッパ
- Python エンジニア認定データ分析
- 簿記2級