6
6

More than 1 year has passed since last update.

【画像あり】M1 Mac環境でUnity上で強化学習を可視化する環境構築手順

Last updated at Posted at 2022-03-02

背景

某物理エンジンYoutuber(チャンネル)と同じことをしたかったんですが、
表題の方法がネットで探しても見つかりませんでした。
一人で試行錯誤しながら環境を構築するのが地獄だったので、
後続の人に同じ道を歩ませんとここに手順を残しておきます。
(M1 MacとIntel Macの記事が混じっててまじで地獄でした。。。)

前提

2022年2月6日時点で筆者が下記の手順で環境を構築できることを確認しました。
バージョンの変更などあればご容赦ください。

本稿のゴール

デモプロジェクトでシミュレーション及び学習ができること。

手順

1.ML-Agentsのダウンロード

ML-Agentsとは? Unity上で機械学習の学習環境を構築するフレームワークです。

1.1.下記URLからML-Agentsをダウンロード

https://github.com/Unity-Technologies/ml-agents
f63d72ab-ceb3-4420-88ba-476bb699035d.png

​​​​​1.2.上記でダウンロードしたファイルを解凍する

2.仮想環境の構築

2.1.下記URLからMiniforgeのダウンロード

https://github.com/conda-forge/miniforge
5ecc1c04-cca5-4255-8b03-226b7892bc88.png

2.2.ダウンロードしたフォルダ直下で、下記コマンドを実行

bash Miniforge3-MacOSX-arm64.sh

適宜Enterとyesを入力してください。

2.3.ターミナルを再起動する

2.4.下記コマンドを実行して、仮想環境を作成する

conda create -n 【環境名】 python=3.9.9

2.5.仮想環境をアクティベート

conda activate 【環境名】

2.6.必要なライブラリのインストール

下記コマンドを実施(場所は問わない)

conda install numpy
conda install Pytorch=1.8.0
conda install h5py
conda install grpcio

2.1.でダウンロードしたml-agentsのフォルダ直下で下記コマンドを実施

python -m pip install mlagents==0.28.0

3.Unityの準備

Unityとは?

ユニティ•テクノロジーズ社が提供するゲーム開発プラットフォームです。
下記の要素を備えており、「これがあればゲームが作れますよ」というツールキットになっています。

  • 3D/2D描画
  • サウンド再生
  • UI管理
  • データ管理
  • 物理エンジン(力学的な法則のシミュレーション)

ゲーム画面を作るためにコードを書くのではなく、マリオメーカーのようにオブジェクトを配置してゲーム画面を作成するので、
​​​​​​​プログラミングに明るくない方でも直感的な操作だけで(ある程度の)ゲームを作成できます。

UnityHubとは?

Unityのバージョン管理ツールです。

3.1.下記URLから、UnityHubのダウンロード

https://unity3d.com/get-unity/download
0445ed1a-03ce-4e24-9ab6-7092ff9f0fce.png

3.2.Unityアカウントの作成

ここは各々頑張ってください笑

3.3.(したい人は)言語を日本語に変更

歯車マーク > Appearance > Language >日本語​​​​​​​

3.4.MLagentsのデモプロジェクトをインポート

「開く」から下記を選択
2c05d7e6-b13d-4861-b22f-f00e5cad932e.png

3.5.Unityをインストールして起動

インポートしたプロジェクトをクリックするとエディタの
インストールを進めるポップアップが出てくるため
「他のエディターバージョンを選択」を選択し、最新のバーションをインストールしましょう。
​​​​​​​※2022年2月6日現在ではデモと同じバージョンのApple Siliconエディタがないため
ワーニングが出ますが無視しましょう。
image.png
a227c783-062b-4246-af36-a8b8bfce5260.png

4.デモの実行

今回は「3DBall」というデモを実行してみます。

4.1.デモプロジェクトを開く

プロジェクトウィンドウのAssets\ML-Agents\Examples\3DBall\Scenes\3DBallを開く
5ce33cbf-9f2b-4951-bb34-1ed362f66d4a.png

4.2.学習済みモデルでシミュレーション

上の再生ボタンを押下すると既に学習しているので、
ボールを落とさないようにバランスを取るようにキャラが動きます。
かわいい()
e2a41ab0-e5eb-469d-88fe-7192b710145c.gif

4.3.学習を行う

ターミナルで下記コマンドを実施

mlagents-learn 【2.1.でダウンロードしたml-agentsのフォルダ】¥config¥ppo¥3DBall.yaml --run-id=【任意のID】

この状態で再生ボタンを押すと学習が行われます。
4.2.と異なり学習モードなので、実行速度が速かったりボールを落としまくる姿が見れます。
とてもかわいい()
6363f5e4-c932-4aa6-9f73-34d13802b806.gif

最後に

デモプロジェクトさえ動けば、あとは遊ぶだけです!
今後はこの環境で遊ぶ方法や遊んだ結果などを投稿します。
拙稿をお読みいただきありがとうございました。

6
6
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6