Windows で Unity + IronPython 2.7 環境を作る(Chocolatey を利用)(書きかけ)

Windows で,Chocolatey を用いて,Unity + IronPython 2.7 環境を作る手順を説明する.

特記事項: Unity の利用条件、ライセンス条項は,利用者で確認すること

ここで行うこと

目次

注意事項. Chocolatey を使うと、種々のソフトウェアのインストールが楽になる. このとき、インストールしたソフトウェアの利用条件、ライセンス条項は必ず、確認すること.

特に、次のことに気をつけること

* インストールするソフトウェアの利用条件,ライセンス条項を利用者で確認すること

前準備

Windows の 「アプリと機能」で、インストール済みのプログラムを見る。 次のソフトがある場合には、アンインストールする

今からインストールを行うので、混乱を防ぐため

Chocolatey のインストール(Windows 上)

まず,git, cmake, wget, 7zip などのインストールや更新を楽に行えるようにするために、 Chocolatey をインストールする.

注意事項. Chocolatey を使うと、種々のソフトウェアのインストールが楽になる. このとき、インストールしたソフトウェアの利用条件、ライセンス条項は必ず、確認すること.

Chocolatey の Web ページの記載の手順に従う.

  1. Windows で,PowerShell を管理者として実行する.
  2. Web ブラウザで、Chocolatey の Web ページを開く

    https://chocolatey.org/

  3. Get Started」をクリック

    新しい画面に変わるので確認する

  4. 案内を確認する.ライセンス条項も利用者自身で確認すること.
  5. PowerShell を管理者として実行.案内に従い,PowerShell で「Get-ExecutionPolicy」を実行す
  6. その結果が「Restricted」だった場合には,案内に従い,PowerShell で「Set-ExecutionPolicy Bypass -Scope Process」を実行する
  7. 引き続き,案内に従い,Webページに表示されているコマンドをコピーし,PowerShell で実行する
  8. 実行の結果,エラーメッセージが出ていないことを確認する.

Chocolatey を用いて、Git, cmake, wget, 7zip をインストール

  1. Windows で,コマンドプロンプト管理者として実行

    コマンドプロンプトを管理者として実行: 別ページ »で説明

  2. Git, cmake, wget, 7zip をインストール

    実行のとき、エラーメッセージが出ないことを確認すること

    choco install -y git.install cmake.install wget 7zip.install
    
  3. Windowsシステム環境変数 Pathに,C:\Program Files\Git\cmd, C:\Program Files\CMake\bin追加することにより,パスを通す

    Windows で,コマンドプロンプト管理者として実行

    コマンドプロンプトを管理者として実行: 別ページ »で説明

    次のコマンドを実行

    powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"Path\", \"Machine\"); $oldpath += \";C:\Program Files\Git\cmd\"; [System.Environment]::SetEnvironmentVariable(\"Path\", $oldpath, \"Machine\")"
    powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"Path\", \"Machine\"); $oldpath += \";C:\Program Files\CMake\bin\"; [System.Environment]::SetEnvironmentVariable(\"Path\", $oldpath, \"Machine\")"
    
  4. Windowsシステム環境変数 Path の確認

    いまのコマンドプロンプトで次を実行し,エラーメッセージが出ないことを確認.

    refreshenv
    where git
    where git-gui
    where cmake
    where cmake-gui
    where wget
    

Chocolatey を用いて、IronPython 2.7 をインストール

  1. Windows で,コマンドプロンプト管理者として実行

    コマンドプロンプトを管理者として実行: 別ページ »で説明

  2. IronPython 2.7 をインストール

    実行のとき、エラーメッセージが出ないことを確認すること

    choco install -y ironPython dotnet4.5 dotnetcore-sdk
    
  3. インストールできたことを確認

    * エラーメッセージが出なければ OK

    where ipy
    
  4. IronPython のバージョンの確認
    ipy -V
    
  5. ensurepip を用いて pip, setuptools をインストール

    http://ironpython.net/blog/2014/12/07/pip-in-ironpython-275.html の記述に従う

    ipy -X:Frames -m ensurepip
    
  6. IronPython で、インストール済みのパッケージの確認
    ipy -X:Frames -m pip list
    

Chocolatey でインストール済みのパッケージを一括更新

  1. Windows で,新しくコマンドプロンプト管理者として実行する.
  2. 更新の操作

    コマンドプロンプトで,次のコマンドを実行

    choco upgrade -y all 
    

インストールしたソフトウェア類に関する設定

  1. Windowsシステム環境変数 Path の確認

    新しくWindows のコマンドプロンプトを実行する.

    そして、次のコマンドを実行する

    where git
    where git-gui
    where cmake
    where cmake-gui
    

Chocolatey を用いて、Unity, Unity Standard Assets, Unity for Linux をインストール

  1. Windows で,コマンドプロンプト管理者として実行

    コマンドプロンプトを管理者として実行: 別ページ »で説明

  2. Chocolatey を用いて、Unity, Unity Standard Assets, Unity for Linux をインストール

    しばらく待つ

    * Unity などをインストール済みのときは、違った画面になる

    実行のとき、エラーメッセージが出ないことを確認すること

    choco install -y unity unity-standard-assets unity-linux
    

各種パッケージのインストール

pip を用いて,Python パッケージを、簡単に扱うことができる.

  1. Window でコマンドプロンプトを実行
  2. IronPython で、 のインストール
    ipy -X:Frames -m pip install requests==1.1.0 
    ipy -X:Frames -m pip install firebase -
    ipy -X:Frames -m pip install cython 
    
  3. dll ファイルのコピー





    以下、書きかけ conda install -y numpy scipy h5py scikit-learn scikit-image matplotlib seaborn pandas pandasql pillow conda install -y jupyter pytest docopt pyyaml cython
  4. imutils, mtcnn のインストール

    * mtcnn については https://github.com/open-face/mtcnn

    mkdir c:\ipytools
    cd c:\ipytools
    rmdir /s /q imutils
    rmdir /s /q mtcnn
    
    cd c:\ipytools
    git clone https://github.com/jrosebr1/imutils
    cd imutils
    python setup.py build
    python setup.py install 
    
    cd c:\ipytools
    git clone https://github.com/ipazc/mtcnn
    cd mtcnn
    python setup.py build
    python setup.py install 
    
  5. python-visualization/folium, DinoTools/python-overpy, ianare/exif-py, mapado/haversine, Turbo87/utm のインストール
    mkdir c:\ipytools
    cd c:\ipytools
    rmdir /s /q folium
    rmdir /s /q python-overpy
    rmdir /s /q exif-py
    rmdir /s /q haversine
    
    cd c:\ipytools
    git clone https://github.com/python-visualization/folium
    cd folium
    python setup.py build
    python setup.py install 
    
    cd c:\ipytools
    git clone https://github.com/DinoTools/python-overpy
    cd python-overpy
    python setup.py build
    python setup.py install 
    
    cd c:\ipytools
    git clone https://github.com/ianare/exif-py
    cd exif-py
    python setup.py build
    python setup.py install 
    
    cd c:\ipytools
    git clone https://github.com/mapado/haversine
    cd haversine
    python setup.py build
    python setup.py install 
    
    cd c:\ipytools
    git clone https://github.com/Turbo87/utm
    cd utm
    python setup.py build
    python setup.py install 
    
  6. その他、各種パッケージのインストール

    * 下から必要なものを選んでインストール

    conda install -y chainer
    conda install -y graphviz
    conda install -y pydot
    conda install -y yaml
    conda install -y flask
    conda install -y django
    conda install -y sympy
    conda install -y sqlite
    conda install -y redis
    conda install -y gensim
    conda install -y cython
    conda install -y pylint
    conda install -y bz2file
    conda upgrade -y --all
    

Unity を起動し、Unity ML-Agents の設定を行う

Unity はゲームエンジン.ここでは、Unity を起動し、Unity ML-Agents の設定を行う

https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Basic-Guide.md の記述に従う

  1. Unity を起動する

    スタートメニューを使って起動するのが簡単

  2. サインインする

    Unity ID を持っていないときは、「Sign in with google」などでログインするか、「create one」をクリックして Unity ID を作る

    すでに、「Sign in with google」でログインしたことがある場合は、次のような画面が表示される

  3. 初回起動時には、ライセンス管理の画面が開く. 下の画面では、 「Unity Personal」の方を選んでいる

    Unity の利用条件、ライセンス条項を確認し、利用すること

  4. 初回起動時には、「Please select one of the options below」の画面が開くので、1つ選び、「Next」をクリック
  5. 初回起動時には、「Thank you!」の画面が開くので、1つ選び、「Start Using Unity」をクリック
  6. Unity の画面が開くので確認する
  7. UnitySDK のプロジェクトを開きたいので、「Open」をクリック
  8. c:\tools\ml-agents\UnitySDK」を選ぶ.少し待つ
  9. このとき「Opening Project in Non-Matching Editor Installation」という画面が出る場合がある。 「Continue」をクリック
  10. 設定を行う

    Edit」 →「Project Settings」 →「Player」 と操作する

  11. Other Settings」をクリック
  12. Scripting Runtime Version は、「.NET 4.6 Experimental」か「.NET 4.x Equivalent」にする(どちらかが選べるはず)
  13. Scripting Defines Symbols は、「ENABLE_TENSORFLOW」を設定する
  14. File」 →「Save Project」 と操作して、設定を保存する
  15. TensorFlowSharp プラグインをダウンロードする

    次の URL からダウンロードする

    https://s3.amazonaws.com/unity-ml-agents/0.5/TFSharpPlugin.unitypackage

    うまくダウンロードできないときは、 https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Basic-Guide.md のWebページを開き, 「Setting up the ML-Agents Toolkit within Unity」のところにある 「Download」をクリック

  16. ダウンロードが始まる
  17. ダウンロードしたTensorFlowSharp プラグインをインポートする

    ダウンロードしたファイルを実行する

    次のような画面が開くので「Import」をクリック

    少し待つ

  18. インポートが成功したかの確認

    Unity のプロジェクトの画面で、 「Assets」 →「ML-Agents」 →「Plugins」 →「Computer」のディレクトリに、TensorFlow のファイルがあるのを確認する

事前学習済みのモデルを実行してみる

  1. Unity のプロジェクトウインドウ (Project window) で、 「Assets」 →「ML-Agents」 →「Examples」 →「3DBall」のディレクトリを開く
  2. ここの「Scene」下にある、3DBall のシーンファイルを、ダブルクリックして開く
  3. 画面が変わるので確認
  4. 上にある画面をクリック。

    マウスの右ボタンを押しながらマウスを動かすと、回転する

    マウスのホイールで、前後移動するする

  5. 階層の画面(Hierarchy window)で、 Ball3DAcademy ゲームオブジェクトにある Ball3DBrain をクリック

    * 階層の画面(Hierarchy window)は、ゲームオブジェクトの階層構造が表示される画面

  6. インスペクタの画面(Inspector window)に、プロパティが表示されるので確認する
  7. Ball3DBrain ゲームオブジェクトのプロパティである Brain 要素は、 Player, Heuristic, External, Internalから選ぶことができる
  8. Brain 要素を、 Player から Internalに変更する
  9. Unity のプロジェクトウインドウ (Project window) で、 「Assets」 →「ML-Agents」 →「Examples」 →「3DBall」 →「TFModels」 のディレクトリを開く
  10. このディレクトリにある「3DBall」という名前のモデルファイルを、

    Ball3DBrain ゲームオブジェクトのプロパティである Brain 要素Graph Modelフィールドにドラッグする

    *すでに設定済みの可能性があるが念のため

    これで、事前学習済みのモデルが設定できた。

  11. 実行を開始する。

    Play ボタン」をクリックして、実行を開始する。

    事前学習済みのモデルでバランスをとる様子を確認できる

  12. もう1度「Play ボタン」をクリックして、実行を停止する。

学習を行ってみる

  1. もし実行中のときは、「Play ボタン」をクリックして、実行を停止しておく.
  2. 階層の画面(Hierarchy window)で、 Ball3DAcademy ゲームオブジェクトにある Ball3DBrain をクリック

    * 階層の画面(Hierarchy window)は、ゲームオブジェクトの階層構造が表示される画面

  3. インスペクタの画面(Inspector window)で、 Ball3DBrain ゲームオブジェクトのプロパティである Brain 要素を、 Externalに変更する
  4. External」に設定されていることを確認する
  5. Play ボタン」をクリックして、実行を開始する。

    うまくボールを受け止めることができていないことを確認する

  6. もう1度「Play ボタン」をクリックして、実行を停止する。
  7. File」 →「Save Project」 と操作して、設定を保存する.

    * 実行中のときは保存できないので、実行を停止してから保存する

    これで、学習を始める準備ができた.Unity の画面は閉じないこと

  8. Windows でコマンドプロンプトを実行
  9. Python の仮想環境を有効にする

    次のコマンドを実行.

    activate ml-agents
    
  10. カレントディレクトリを、ML-Agents ツールキットのディレクトリに移動
    cd c:\tools\ml-agents
    
  11. mlagents-learn コマンドを用いて学習
    • 使用する設定ファイル: config/trainer_config.yaml
    • 今回の学習に付ける ID : 1

    「\」でなく「/」を使う

    mlagents-learn config/trainer_config.yaml --run-id=1 --train
    

    セキュリティ警告が出た場合には許可する

  12. training by pressing the Player button in the Unity Editor」と表示されるので、Unity の「Play ボタン」をクリック
  13. 学習が進む
  14. 学習が終わる
  15. 学習済みのデータを Unityの配下にコピーする
    copy c:\tools\ml-agents\models\1-0\editor_Ball3DAcademy_1-0.bytes c:\tools\ml-agents\UnitySDK\Assets\ML-Agents\Examples\3DBall\TFModels
    
  16. 階層の画面(Hierarchy window)で、 Ball3DAcademy ゲームオブジェクトにある Ball3DBrain をクリック

    * 階層の画面(Hierarchy window)は、ゲームオブジェクトの階層構造が表示される画面

  17. インスペクタの画面(Inspector window)に、プロパティが表示されるので確認する
  18. Brain 要素を、 Player から Internalに変更する
  19. Unity のプロジェクトウインドウ (Project window) で、 「Assets」 →「ML-Agents」 →「Examples」 →「3DBall」 →「TFModels」 のディレクトリを開く
  20. このディレクトリにある「editor_Ball3DAcademy_1-0.bytes」という名前のモデルファイルを、 Ball3DBrain ゲームオブジェクトのプロパティである Brain 要素Graph Modelフィールドにドラッグする
  21. File」 →「Save Project」 と操作して、設定を保存する

    * 実行中のときは保存できないので、実行を停止してから保存する

  22. これで、学習済みのモデルが設定できた。 「Play ボタン」をクリックして、実行を開始する。

    結果を確認する

  23. もう1度「Play ボタン」をクリックして、実行を停止する。