見出し画像

Unity『Puppo, The Corgi』 を試して分かったこと

0.はじめに

今回は、ある講座で知りました「npakaさん」の記事で紹介されていた『Puppo, The Corgi』を試しました。しかし、今までやってきたようにやると失敗することがあったので、今回はその失敗した箇所についてまとめていきます。
一応、簡単に私が行ってきた「Anaconda」での操作を載せておきます。Unityについては、「npakaさん」の記事を参考にしてください。
※Unityは、var2019.3.13f1で動きました(5/21現在)


1.環境準備

〇フォルダーの作成
「C:\Users\ユーザー名」に進み、”新規フォルダーの作成”で『Unitypuppo』と名前を付けて作成(※フォルダー名は、英数字であればなんでもいい)。
『Unity0.13.1』フォルダー内に"Unityプロジェクト"と”ml-agentsフォルダー"をまとめて説明しますが、以下の理由があるからです。
・日本語フォルダーや多階層によってうまく動作しない
・"Unity"と”ml-agents"を別々の保存先にするとうまく動作しない
上記の理由を回避するために、『Unitypuppo』フォルダー内に"Unityプロジェクト"と”ml-agentsフォルダー"をまとめます。


2.Pythonの仮想環境の構築

(1)Anacondaプロンプトを開く
(2)次のコード入力
※最近、pythonは3.6以上が推奨されているため、「python=3.7」で環境構築するが、この『Puppo, The Corgi』は、元々のプロジェクトが古く、var3.7でインストールするとエラーになるので、ここではvar3.6でインストールする。

$ conda create -n puppo python=3.6

(3)アクティブ化

$ conda activate puppo

(4)ディレクトリの移動

cd Unitypuppo

(5)「ml-agents-0.5.0」のダウンロード
『var0.13.0』以前のバージョンは、探すと大変なので、入力するほうが早い。

git clone https://github.com/Unity-Technologies/ml-agents.git -b 0.5.0

(6)次の手順でコードを入力し、"ml-agents"をインストールする

cd ml-agents/ml-agents
pip install .
cd ..


3.Unityで実行

(1)Sceneを「FetchTrainingScene」にする
(2)Anacondaプロンプトで次のコードを入力
※アクティブ中であることを忘れないように

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

画像1

(3)上図の赤線のように表示されたらUnityの再生ボタンを押してトレーニングを開始する
(4)トレーニング終了は、下記のどちらかの方法でやる
  ・Unityであれば"再生ボタン"
  ・プロンプト内であれば、"Ctrl + C"


4.トレーニング結果を実行する

「npakaさん」では、名前を変更して上書きするような形で紹介されていますが、今回、オリジナルのモデルを残し、新しくトレーニングした結果を新しく入れて実行する方法を紹介します。

(0)注意点
これまで書いた記事(ml-agents-0.13.1以降のバージョン)は、学習済みモデルは「.nn」形式で保存されていましたが、最初にも述べたように、バージョンの古いml-agentsを使用しているので形式が「.bytes」となっている点に注意してください。

(1)学習済みモデルをUnityにコピー
①「Unitypuppo → models → ppo-0」フォルダー内にある『editor_Academy_ppo-0.bytes』の名前を『ppo-0.bytes』に変更
※短くしただけです
②Unityの「Assets → PuppoTheCorgi → Fetch → TFModels」内に、"ppo-0.bytes"をドラックしてコピーする

コピー

(2)学習済みモデルを組み込む
①Sceneを「Fetch」に変更する
②ヒエラルキーウィンドウにある"Academy"を展開し、「DogBrain」を選択する
③インスペクターウィンドウにある「Brain → Graph Model」に『ppo-0.bytes』をドラッグして入れる

もでる

(3)実行
再生ボタンを押して実行すると、学習したモデルで動作します。

結果3


5.最後に

前の記事でも書きましたが、様座なサンプルがありますので、興味を持った方は色々なサンプルを試してみてください。

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