概要
UnrealEngine4用 Pythonのコード作成にPyCharmを利用したいときのドキュメントとなります
- コード補完がとりあえずできればOK
- PyCharm上でデバッグまでやりたい
以上を説明いたします
UE4 Python Editor Script Plugin
UE4 Python APIはこちら
https://docs.unrealengine.com/en-US/PythonAPI/index.html
2020/07/29時点でベータです
名前の通りEditor用で、自動処理をさせるのに便利です
PyCharm
JetBrains製 Python開発統合環境です
https://www.jetbrains.com/pycharm/
このドキュメントはPyCharm Proでの手順となります
準備
Pythonプラグイン インストール
Python Stub ファイル作成 (unreal.py)
コード補完のためのファイルを作成します
Developer Modeにチェック
私の場合はこの状態で再起動することによって Python Stubファイルが生成されました
Compileしても作成されます
出来た場所がログに表示されていますね
PyCharmでの設定
UE4 PythonはVersion2なので、Interpreterを変更します
Python実行はUE4内になります
ここでのInterpreterの設定は主にコード補完のためだけの意味合いが強いです。
UE4でPython実行
UE4からのPython起動方法は Output Logからファイル名指定の方法を前提に説明していきます
Enter Python script or filename to execute
のところにフルパスを入力で実行できます
PyCharmとの連携① お手軽にコード補完
お手軽にコード補完ができるようになるまで
先ほど生成された unreal.pyをPythonプロジェクトにコピーする
以上です
-
PyCharmがコード補完用インデックス作成をやめてしまう
- unreal.pyは12MByteを超えます
- こちらにあるように、Pycharmの読み込みサイズ制限を解除します
-
生成場所のunreal.pyを利用する
- PyCharm interpreterの設定で、unreal.pyが生成される場所を指定します (参考)
- Python用関数をC++で作成すると、unreal.pyも更新されますが、そのファイルがすぐ読み込めて便利です
PyCharmとの連携② デバッグ可能
こちらを参考にしました🙏
http://guillaumepastor.com/programming/debug-unreal-engine-python-using-pycharm/
こちらの内容ままです
PyCharm Pro 2020.2にアップデートした説明します
UE4で実行、Pycharmでデバッグ
- PyCharmがサーバー
- UE4がクライアント
となるよう設定していきます
アンチウィルスソフトのセーフリストにいれたり、アプリのネットワーク接続許可といったセキュリティ設定が必要となるかもしれません
PyCharm側設定(サーバー)
- +ボタンをおして実行環境を追加します 「Python Debug Server」を選択
- Name: お好みでわかりやすい名前を
- IDE host name: localhosot、Portを60058に設定 のちにUE4からの接続ポートになります
- Suspend after connectのチェックを外す
- 実行環境を先ほどの名前のものを選ぶ
- 虫ボタン
を押す - 実行モードになります
PyCharm側スタンバイできました
UE4側
- 参考サイト、4.Attach to the debugger in Unrealにあるコードをテキストに保存します attach_to_debugger.pyとしましょうか
- このファイルの
pydev_path = "D:/PyCharm/PyCharm 2018.3.4/helpers/pydev"
を書き換えます- PyCharmインストールディレクトリから python/helpers/pydev ディレクトリを探してください
- Windows環境 JetBrains Toolboxで PyCharm Pro 2020.2インストールした私の場合は
"C:/Users/ユーザー名/AppData/Local/JetBrains/Toolbox/apps/PyCharm-P/ch-0/202.6397.98/plugins/python/helpers/pydev"
となりました
- UE4 で attach_to_debugger.pyを実行
- 接続されました!
注意点
- 参考サイトにもある通り、UE4オブジェクトの中身は見ることができません
- デバッグ接続が一旦きれたあと、再接続してもブレークポイントが効かないようです
- 対処として、UE4を再起動しています(要検証)
所感
PyCharmから実行できるようになるといいですね
個人的に、コンパイルのいらないスクリプトでブレークポイントが効くのはテンションがめっちゃあがります