【UE5】Unreal Pythonの基本的な使い方

プログラマーの尾関です。

今回は、Unreal Pythonの基本的な使い方を紹介します。

  • 動作確認バージョン:Unreal Engine 5.1

Unreal Pythonとは

Unreal Python は、Unreal Engine 内でPythonを使用してエディタのスクリプティングや自動化を行うためのプラグインです。

具体的にはエンジンのエディタ拡張として使い、 Editor Utility Blueprintでは使用できない機能を使えるのがメリットです。

ただ、Unreal Pythonを実行する場合はコマンドを直接指定することとなるので、Editor Utility Widgetから呼び出せるようにしておくと、非プログラマーでも使いやすい機能となります。

Unreal Pythonの環境の作り方

セットアップ

プラグインを設定する

メニューから「編集 > プラグイン」を選びます。

Scripting” から “Editor Scripting Utilities” と “Python Editor Script Plugin” を有効にします。

UE5.1だとすでに有効になっていたので、その場合は設定不要です。

Pythonの動作確認

Pythonが動作するかどうかを確認します。エディタの下部にある “Cmd” をクリックして、”Python” を選びます。

コマンドに 「print(“hello”)」 と入力して Enterキーで決定します。

するとアウトプットログに「hello」と出力されます。

Pythonスクリプトフォルダにパスを通す

これは必須ではないですが、Pythonスクリプト用のフォルダを作っておくと管理しやすくなります。

コンテンツブラウザから「Python」という名前でフォルダを追加します。

メニューから「編集 > プロジェクト設定」を選びます。

プラグイン > Python」から「追加パス」に「/Python」を追加します。

パスを追加すると再起動を促されるので、再起動しておきます。

Pythonスクリプトはコンテンツブラウザから追加できないので、”Python” フォルダを右クリックして「エクスプローラーで表示する」を選びます。

エクスプローラー上で、Pythonスクリプトを追加します。

ここでは “hoge.py” としました。

Pythonスクリプトを実行する

スクリプトは以下のように記述します。

このスクリプトを実行するには “Cmd” に戻して、以下のコマンドを実行します。

なお、”Cmd” でのコマンドは、キーボードの上を押すことで前回の入力を繰り返し使用できます。

VSCodeのオートコンプリートを有効にする

Pythonを編集するエディタとして、VSCodeを使用するとオートコンプリートが使えて便利なので、VSCodeを使う方法についても紹介しておきます。

Pythonスタブファイルの作成

UEのエディタのメニューから「編集 > エディタの環境設定」を選びます。

プラグイン > Python から「デベロッパーモード」にチェックを入れます。

再起動を促されるので、エディタを再起動します。

するとプロジェクトの「Intermediate」フォルダに「PythonStub」が作成されます。

VSCodeの設定

VSCodeを起動してメニューから「ファイル > フォルダーを開く」を選びます。

Pythonスクリプトを格納しているフォルダに移動して「フォルダーの選択」をクリック。

フォルダのアクセス権の設定確認が表示されますが、問題ないので「親フォルダー “Content” 内のすべてのファイルの作成者を信頼します」にチェックを入れて、「はい、作成者を信頼します」をクリックします。

メニューから「ファイル > ユーザー設定 > 設定」を選びます。

「ユーザー」タブの状態で、「拡張機能 > Python > Auto Completes: Extra Paths」のところにある「setting.json で編集」を選びます。

この表示がない場合は Python の拡張機能がインストールされていないので、インストールしておきます。

settings.json が開かれたら以下のように PythonStubファイルのパスを指定します。

この Jsonファイルを保存して VSCode を再起動します。

するとコードの自動補完機能が有効となります。

アセットの操作

ここからは Unreal Python でできることを列挙します。

最初はアセットの操作でよく使いそうな機能について書いていきます。

アセットのプロパティを書き換える

アセットのプロパティを書き換えるサンプルとして、メディアプレイヤーのアセットを作成してみます。

Pythonフォルダに「MP_Test」という名前でメディアプレイヤーのアセットを追加しました。

MP_Testを開くと「Play on Open」にチェックがついているので、これを Pythonスクリプトで 外すようにしてみます。

Unreal Pythyonを記述している hoge.py を以下のように書き換えてみます。

import unreal” は Unrealの機能にアクセスするためのモジュールです。次に “unlreal.load_asset()” でコンテンツからアセットを読み込みます。そして “set_editor_property()” でプロパティを書き換えることができます。

ではコマンドに “py hoge.py” と入力して実行してみます。

“MP_Test” を開くと、“Play on Open” のチェックが外れていることが確認できます。

なお、明示的に型を指定すると、オートコンプリートが有効な場合にプロパティが補完されて入力が便利です。

選択しているアセットを取得する

例えば以下のように “BP_EnemyData” と “DT_EnemyData” を選択しているとします。

以下のように unreal.EditorUtilityLibrary.get_selected_assets() で選択しているアセットのパスのリストを取得できます。

実行結果

レベル

エディタで現在開いているレベルを取得する

unreal.EditorLevelLibrary.get_editor_world() でエディタで開いているレベルを取得できます。

選択しているアクターを取得する

  • 注意:何も選択していない、または「フォルダー」や「ワールド」を選択している場合は何も取得できません

現在開いているレベルにアクターを配置する

AActorを配置して名前(ラベル名)を変更する

アクターにスケール値を設定する

set_actor_scale3d()でスケール値を設定できます。

ブループリントクラスを配置する

“BP_Ball” というブループリントクラスをレベルに配置してみます。

上記コードを実行すると “BP_Ball” がレベルに配置されました。

UI

プログレスダイアログの表示

unreal.ScopedSlowTask() を使うと進捗ダイアログを表示できます。

処理時間がかかるときに表示しておくと良いです。

ファイル読み込み

外部ファイル読み込み

外部ファイルの読み込みは “sys” モジュールを使って読み込みます。

コマンドから引数にファイルパスを渡します(ドラッグ&ドロップではファイルパスが渡せないので、手入力する必要があります)

参考ページ

公式ドキュメント

おしまい

以上、Unreal Python の基本的な使い方の紹介でした。

ここで紹介した以外の機能を探す場合には“unreal” + “python” + “調べたいことの文字” を組み合わせて Google検索するとそれなりに情報が見つかります。

この記事が Unreal Python を活用するのに役立てれば幸いです。

(Visited 1,499 times, 30 visits today)

コメント投稿は締め切りました。