関連ブログ
- [UE4][UE5]開発環境の容量を少しでも減らす 2024.08.14UE
- [UE5] PushModel型のReplicationを使い、ネットワーク最適化を図る 2024.05.29UE
- [UE5]マテリアルでメッシュをスケールする方法 2024.01.17UE
CATEGORY
2018.10.06UE4UE/ Editor拡張
執筆バージョン: Unreal Engine 4.20.3 |
こんにちは、エンジニアです。
今回は、UE4でPythonを使用できる面白そうな「Python Editor Script Plugin」をご紹介します!
BluetilityのようなエディタのスクリプティングでPythonを使用できるようにするプラグインです。
※記事執筆バージョン、UE4.20.3でのPythonのバージョンは2.7となっております。
※このプラグインはまだベータで実験的な機能となっておりますので開発で使う場合はお気を付けください。また、あくまでエディタのスクリプティングを行うためのプラグインになっています。実際のゲーム開発をPythonで行うためのプラグインではございません。
主な特徴としては、
が挙げられます。
やはり、一番の注目ポイントはPythonで記述ができることです。BluetilityはBlueprintなためUE4の機能しか使用できませんが、Pythonでは他APIを使用することで得意なデータ解析や自動化がうまく活用できるかもしれません。もしかしたら、今流行りのディープラーニングで何か面白いことができるかもしれないですね。また、コマンドライン上からスクリプトを実行できるのもJenkinsでの自動化に使いやすく個人的にポイントが高いです。
エディタの「編集」→「Plugins」を開きます。左のメニューから「Scripting」を選択し、「Editor Scripting Utilities」と「Python Editor Script Plugin」のEnableにチェックを入れるだけでOKです。このプラグインにはすでにPythonが入っているため、別でPythonをインストールする必要はありません。
PythonでUnrealAPIを使用するにはAPIをインポートしてあげる必要があります。
1 |
import unreal |
また、APIのドキュメントはコチラです。
Unreal Python API Documentation
エディタがデフォルトで認識しているパスは以下の4つになります。
・プロジェクトのContent/Python/
・エンジンのContent/Python/
・プラグインのContent/Python/
・Windows上のDocuments/UnrealEngine/Python/
です。追加でパスを追加したい場合は、「編集」→「プロジェクト設定」から左のメニューの「プラグイン」→「Python」の「Additional Paths」に追加しましょう。
アウトプットログの左下のCmdと表示されている場所からプルダウンでPythonが選択できるようになっています。Pythonに切り替えるとスクリプトが入力できるようになります。
試しに、「unreal.log(“Hello World :D”)」 と入力してみましょう。アウトプットログにログが表示されます。
Pythonのファイル「.py」を実行する場合は、「py “D:\MyProject\MyPython.py”」でpyファイルを実行できます。
コマンドラインでスクリプトを実行する方法は2種類存在します。
1.エディタを起動して、スクリプトを実行する
この場合、エディタが起動しデフォルト設定されているマップも開き準備が整った後に実行されます。
1 |
UE4Editor-Cmd.exe MyProject.uproject -ExecutePythonScript = "D:\MyProject\MyPython.py" |
2.エディタを起動せずにスクリプトだけ実行する
エディタを起動しないためとても高速に実行されます。しかし、マップ上にアクターをスポーンさせたり、アセットを読み込むなどスクリプトによっては正常に動作しない場合がありますので注意が必要です。
1 |
UE4Editor-Cmd.exe -run = pythonscript -script = "D:\MyProject\MyPython.py" |
実行させる方法は2種類存在します。どちらもエディタが起動しデフォルト設定されているマップも開き準備が整った後に実行されます。
1.init_unreal.pyを使用する
前述した「パスについて」で紹介したパス以下に「init_unreal.py」が存在した場合、自動的に「init_unreal.py」が実行されます。
例:/Content/Python/init_unreal.py
2.Startup Scriptsを設定する
「編集」→「プロジェクト設定」から左のメニューの「プラグイン」→「Python」の「Startup Scripts」にpyファイルを追加します。
お疲れさまでした。一通りざっと紹介しました。導入手順も難しくなく、APIも簡単に使えそうです。正直自分も実際の開発でどう運用すればいいのかまだわかっていませんが、今までできるけどめんどくさかったことが簡単にできるようになる気がします。色々考えてみたいと思います。
また、エディタのスクリプティングを行うには3種類ありますが、簡単にエディタ内で実装したいならBluetility、がっつりエディタ拡張を行いたいならC++、Bluetilityだと難しかったりPythonのAPIを使いたかったらPythonって感じでしょうか。
英語ですが公式ドキュメントはコチラになります。