自律機械知能 (AMI)をUnity ML Agents環境で実験するための Unity プロジェクト。
- MacOS
- Linux
- Windows (2024/07/14 未検証。動作するはず。)
Unity Hub をインストールし、次のバージョンのUnityをインストールする。
- Version: 6000.0.5f1
実行するOSのプラットフォームに合わせて Build Support
も追加する。
-
Unityプロジェクトのビルド
Unity エディタの
File
->Build Profiles
から、動作するOSプラットフォームに合わせてBuild
する。 -
Pythonと依存関係のインストール
python3.10.1 - 3.10.12 のPythonをインストールし、
mlagents_envs
をインストールする。pip install mlagents-envs==1.0.0
NOTE 2024/7/23: Windowsユーザはnumpyのインストールに失敗するため、次のコマンドでインストールしてください。
pip install git+https://github.com/MLShukai/ml-agents.git#subdirectory=ml-agents-envs
-
実行
Assets/AMI/PythonSampleScript/unity_mlagents_gym_interaction.py
を実行する。実行方法に関してはファイルに記載しているのでそこを確認。
Assets/AMI/Scenes/SampleScene.unity
に最小限の環境を実装した。
DesktopモードでVRChatをプレイするユーザをエミュレートするものである。
Observationは Camera Sensor
コンポーネントを用いて一人称視点で映像をキャプチャしている。
ActionはBehavior Paramters
コンポーネントのActions
に記述されている。Unity 環境上へのアクションの実行については VRChatEmulatedAgent
コンポーネントのスクリプト を読んでほしい。
Decision Requester
のDecision Period
は、Pythonに行動を要求する周期である。Fixed Timestamp
(後述)が最小周期 (Period=1)であるため、指定したFPSで動作させる際は設定に注意が必要である。
使用しているAPIについて詳しくは Unity 公式の ML Agents Toolkitのドキュメンテーションを参照。
基本的な使い方は Toolkit Documentationに記述されている。
その他特に読むと良いものとして、Python API DocsのLow Level API (LLAPI) Documentationと、Gym API Documentationがある。
メニュバーのEdit
-> Project Settings...
から開く。
Fixed Timestampを 0.01
に設定する。この値が Decision Requester
のDecision Period
の最小周期になる。
例えば Decision Period
を10
に設定すると、Python上では10fpsでインタラクションが実行される。
Resolution and Presentation
の中で、次の項目を必ず設定する。
Run In Background
: チェックする。Fullscreen Mode
:Windowed
Standalone Player Options
のResizable Window
もチェックしておくとデバッグを行いやすい。