見出し画像

Unity ML-Agentsのサンプルゲーム 『Puppo, The Corgi』 を実行してみる

「Unity Blog」で紹介されている「Unity ML-Agents」のサンプルゲーム「Puppo, The Corgi」の実行方法をまとめました。少し古いバージョン(v0.5)で作成されてます。

『Puppo, The Corgi』― Unity ML-Agents Toolkit を活用した可愛さあふれるデモゲーム

1. サンプルプロジェクトのダウンロード

はじめに、サンプルプロジェクトのダウンロードを行います。

(1)「Puppo, The Corgiの紹介ページ」の「プロジェクトをダウンロード」ボタンをクリック。

画像1

(2) zipファイルを解凍。
「PuppoDemo」フォルダができます。

2. Unityのインストール

(1) Unityのサイトで、「Unity Hubをダウンロード」をクリックして、「Unity Hub」をダウンロード。
「Unity Hub」は複数のUnityのバージョンを管理するためのアプリです。

Download - Unity

画像5

(2) 「Unity Hub」のインストーラを実行してインストール。
(3) 「Unity Hub」を起動。
(4) 「インストール」タブの「インストール」ボタンを押す。

画像5

(5) 「Unity 2019.3」を選択して次へボタンを押す。

画像8

(6) WindowsはWindows、macOSはmacOSのモジュールを選択して実行ボタンを押す。
成功すると「Unity 2019.3」がインストールされます。

画像8

3. プロジェクトを開く

次に、「Puppo」のプロジェクトを開きます。

(1) 「プロジェクト」タブの「リストに追加」ボタンを押し、ダウンロードして解凍した「PuppoDemo」フォルダを選択。

画像8

(2) バージョンで「2019.3」(先ほどインストールしたバージョン)を選択後、「PuppoDemo」の行をダブルクリック。

画像8

(3) ダイアログが表示されるので、「確認」ボタンと「Yes」ボタンを押す。

画像8

画像9

(4) シーン「Assets/PuppoTheCorgi/Scenes/Fetch」をダブルクリック。
Puppoのゲーム用のシーンが開きます。

画像10

(5) Unityエディタの実行ボタン(右三角)を押す。
Puppoのゲーム用のシーンが実行されます。

画像11

画像12

4. Anacondaのインストール

Anacondaで手軽にPython 環境を構築します。

(1) Anacondaのダウンロードサイトで対応プラットフォームの「Python 3.7 version」を選択し、インストーラをダウンロード。
「Anaconda Python 3.7 version」は「Python 3.6」も利用可能です。

Anaconda Python/R Distribution - Free Download

(2) インストーラを実行し、インストーラの指示に従ってインストール。

(3) 「macOS」は「ターミナル」、「Windows」では、スタートメニューの「Anaconda(64-bit)」からコマンドプロンプトを起動して、以下のコマンドを入力。
Anacondaのバージョンが表示されたら、インストール成功です。

$ conda --version
conda 4.6.11

1. 学習の実行

(1) Pythonの仮想環境を作成。
Anacondaのコマンドで、Python 3.6の仮想環境を作ります。

$ conda create -n puppo python=3.6 anaconda
$ conda activate puppo

(2)「Unity ML-Agents 0.5.0」のインストール。

$ git clone https://github.com/Unity-Technologies/ml-agents.git -b 0.5.0
$ cd ml-agents/ml-agents
$ pip install .
$ cd ..

(3) 「ml-agents/config/trainer_config.yaml」の最後に以下のパラメータを追加。

DogBrain:
   normalize: true
   num_epoch: 3
   time_horizon: 1000
   batch_size: 2048
   buffer_size: 20480
   gamma: 0.995
   max_steps: 2e6
   summary_freq: 3000
   num_layers: 3
   hidden_units: 512

(4) 学習用のPythonスクリプトの実行。
「Start training by pressing the Play button in the Unity Editor.」と表示されたら準備完了です。

$ mlagents-learn ./config/trainer_config.yaml --train

    
                       ▄▄▄▓▓▓▓
                  ╓▓▓▓▓▓▓█▓▓▓▓▓
             ,▄▄▄m▀▀▀'  ,▓▓▓▀▓▓▄                           ▓▓▓  ▓▓▌
           ▄▓▓▓▀'      ▄▓▓▀  ▓▓▓      ▄▄     ▄▄ ,▄▄ ▄▄▄▄   ,▄▄ ▄▓▓▌▄ ▄▄▄    ,▄▄
         ▄▓▓▓▀        ▄▓▓▀   ▐▓▓▌     ▓▓▌   ▐▓▓ ▐▓▓▓▀▀▀▓▓▌ ▓▓▓ ▀▓▓▌▀ ^▓▓▌  ╒▓▓▌
       ▄▓▓▓▓▓▄▄▄▄▄▄▄▄▓▓▓      ▓▀      ▓▓▌   ▐▓▓ ▐▓▓    ▓▓▓ ▓▓▓  ▓▓▌   ▐▓▓▄ ▓▓▌
       ▀▓▓▓▓▀▀▀▀▀▀▀▀▀▀▓▓▄     ▓▓      ▓▓▌   ▐▓▓ ▐▓▓    ▓▓▓ ▓▓▓  ▓▓▌    ▐▓▓▐▓▓
         ^█▓▓▓        ▀▓▓▄   ▐▓▓▌     ▓▓▓▓▄▓▓▓▓ ▐▓▓    ▓▓▓ ▓▓▓  ▓▓▓▄    ▓▓▓▓`
           '▀▓▓▓▄      ^▓▓▓  ▓▓▓       └▀▀▀▀ ▀▀ ^▀▀    `▀▀ `▀▀   '▀▀    ▐▓▓▌
              ▀▀▀▀▓▄▄▄   ▓▓▓▓▓▓,                                      ▓▓▓▓▀
                  `▀█▓▓▓▓▓▓▓▓▓▌
                       ¬`▀▀▀█▓

       
INFO:mlagents.trainers:{'--curriculum': 'None',
'--docker-target-name': 'None',
'--env': 'None',
'--help': False,
'--keep-checkpoints': '5',
'--lesson': '0',
'--load': False,
'--no-graphics': False,
'--num-runs': '1',
'--run-id': 'ppo',
'--save-freq': '50000',
'--seed': '-1',
'--slow': False,
'--train': True,
'--worker-id': '0',
'<trainer-config-path>': './config/trainer_config.yaml'}
INFO:mlagents.envs:Start training by pressing the Play button in the Unity Editor.

(5) シーン「Assets/PuppoTheCorgi/Scenes/FetchTrainingScene」をダブルクリック。
Puppoの訓練用のシーンが開きます。

(6) Unityエディタの実行ボタン(右三角)を押す。
学習が開始されます。

画像13

(7) 学習完了したい時は、ターミナル(コマンドプロンプト)で「Control-C」。
「ml-agents/models/ppo-0/editor_Academy_ppo-0.bytes」にモデル(学習結果)が生成されます。

(8) モデルを「Fetch-Model.bytes」という名前に変更して、「Assets/PuppoTheCorgi/Fetch/TFModels.bytes」に上書き。
これで、ゲーム用シーンで利用するモデルが更新されます。

この記事が気に入ったらサポートをしてみませんか?