12.3K Views
February 09, 20
スライド概要
講演動画はこちら
https://www.youtube.com/watch?v=Wbq3KO3ZJaI
発表者:カニパンチ
本スライドは2020年2月6日に行われた勉強会「 第4回 UE4何でも勉強会 in 東京」の講演資料です。
https://ue4allstudy.connpass.com/event/161710/
Unreal Engineを開発・提供しているエピック ゲームズ ジャパンによる公式アカウントです。 勉強会や配信などで行った講演資料を公開しています。 公式サイトはこちら https://www.unrealengine.com/ja/
UE4 ディープラーニング ってやつでなんとかして! 環境構築編 (Python3 + TensorFlow) カニパンチ(@CrabPunch)
※追加部分 動画リンク 口頭での情報の補足などあるため こちらと合わせてお読みください 動画リンク
自己紹介 ネイティブ開発が主なフリーランスプログラマ。 最近はUE4やモバイルでの案件も増えてきました。 本日登壇されているUE4ベテラン勢に比べてのまだまだ入門者です。 (UE4モバイル3年目) 趣味は囲碁と将棋
楽して強いAIを作りたい ・AlphaZero https://science.sciencemag.org/content/362/6419/1140 ・『強い』を作るだけが能じゃない!ディープラーニングで3Dアクションゲームの敵AI を作ってみた https://cedil.cesa.or.jp/cedil_sessions/view/2051
そもそもディープラーニングってなに? 人工知能(AI) 機械学習 (Machine Learning) ニューラルネットワーク (深層学習 DeepLearning)
入力層 中間層 出力層
年収 結婚できる イケメン 結婚できない ギャグのセンス
例:オセロの場合 自駒の位置 1 2 敵駒の位置 先手か後手か 64
深層学習+強化学習 1:はじめは乱数にて適当なパラメーターの基礎AIを作成する(最初はすごく茶弱い) 2:基礎AIと基礎AIで対局を何度もさせる 3:2の過程のデータをもとにパラメーターを調整した調整AIを作成する 4:3で作成された調整AIと基礎AIを何度か対局させる 5:4の結果、成績よいほうを基礎AIとする 6:2~5の手順を繰り返す 。
プログラム言語は別になんでもよい C++であろうとBPであろうとPythonであろうと好きなものでよい ただ、学習に時間がかかる、8時間とか1日とか1月とかかかる なので学習環境は切り離せれるのが望ましい UE4上では学習した結果の反映して実行さえできればよい
Python動けばなんとかなるやろ 機械学習 深層学習のフレームワークがいくつかあり 情報も豊富 クラウド上での無料のGPUやTPUでの学習環境が提供されている (新調したばかりのGPUが故障したら泣けるため)
深層学習用フレームワーク ・TensorFlow ・Keras ・Pytorch ・Chainer (ニューラルネットワークのネットワーク構築や計算をいろいろとサポートしてくれる)
UE4 Python Plugin ・ ①Python Editor Script Plugin ・ ②UnrealEnginePython ・ ③TensorflowPlugin
① Python Editor Script Plugin Epic公式Plugin Python ver2.7 (一応3に上げることもできる) Editorでの自動化などでの用途に使える(Utility Blueprintのpython版のようなもの) Game中に使うものではない デフォルトのままであれば環境構築とかはいらないので楽ではある ※参考 https://www.slideshare.net/EpicGamesJapan/gtmf2019-pythonblueprintunreal-engine
② UnrealEnginePython UE ver 4.22 Python ver3.7まで対応 Python ver2or3 (自分の環境の好きな環境パスを使えるがビルドがいる) embedded版であればpython環境が内包されているのでパスを気にしなくていい Editor上で使用するだけでなくGame中などもBPなどと組み合わせて使うことができる
③ TensorflowPlugin UnrealEnginePythonの拡張版のようなもの UE ver 4.23 CPU版 GPU版あり Pythonライブラリの自動設定などがある
環境構築の問題点 Pythonライブラリの更新がはやい Pythonライブラリの種類が多く、バージョンも多い 各種ライブラリのバージョンごとの組み合わせによって発生するエラーが多い クラウドなどで正常動作する組み合わせであってもUE4がゲフンゲフンする場合がある
環境構築方法 ・ 環境構築A コマンドにてインストール ・ 環境構築B Pluginの機能を利用する ・ 環境構築C Anaconda環境をコピーする(パス変更でもいいがビルドがいる)
環境構築A ・UnrealEnginePython カレントディレクトリを以下に指定し Plugins/UnrealEnginePython/Binaries/Win64 pip install hogehoge (各種お好みのライブラリをインストールする) ※参考 https://qiita.com/simonritchie/items/58fe6d4d3c411c8c062f
環境構築B-1 ・ TensorflowPlugin プラグインとサンプルプロジェクトを取得し プラグインをプラグインフォルダに放り込む ・PluginDL https://github.com/getnamo/tensorflow-ue4/releases ・ExampleDL https://github.com/getnamo/tensorflow-ue4-examples
環境構築B-2 プロジェクトを起動すると Plugins/UnrealEnginePython/Binaries/Win64/Lib/site-packages に必要なライブラリが自動がセットアップされる
環境構築B-3 ライブラリのバージョンなどを指定したい場合 Content/Scripts/upymodule.json
環境構築C-1 Python環境構築に便利なAnacondaNavigator
環境構築C-2 visual studioのpythonプロジェクトでも先ほどの環境を切り替えたりできる
環境構築C-3 AnacondaNavigatorをインストールした場所のenvs以下にファイルがある
環境構築C-4 envs/<target>/Lib を Plugins/UnrealEnginePython/Binaries/Win64/Libへ ※site-packagesだけでいいかも 動きはした
UE4上でのpython起動
PyActorとpythonの紐づけ ※詳細 https://qiita.com/simonritchie/items/58fe6d4d3c411c8c062f
BP>Python
Python>BP
入門教材 ・【キカガク流】人工知能・機械学習 脱ブラックボックス講座 - 初級編 – https://www.udemy.com/course/kikagaku_blackbox_1/ ・【キカガク流】人工知能・機械学習 脱ブラックボックス講座 - 中級編 https://www.udemy.com/course/kikagaku_blackbox_2/ ・【キカガク流】現場で使えるChainerによるディープラーニング入門 https://www.udemy.com/course/kikagaku-chainer/ ・【 TensorFlow・Python3 で学ぶ】深層強化学習入門 https://www.udemy.com/course/tensorflow_reinforce/