【python】UnrealEngine5のPythonで自作関数で引数を返り値を設定してみた【UE5】

Unreal Engine 5

はじめに

UnrealEngine5のPythonで自作関数を作成し,引数と返り値の設定して簡易的な計算をやってみます.

環境

  • Unreal Engine 5.0.3
  • Windows11

自作関数の作成~簡易計算関数~

前回作成した自作関数のファイルmy_func.pyを追記していきます.

中身はこんな感じです.

足し算をする関数sample_func2を作成しました.


def sample_func():
    print("this is sample_func in modules !! ")

def sample_func2(a1, a2):
    ans = a1 + a2
    print("a1:{} + a2:{} = {}".format(a1, a2, ans))
    return ans

次に,前回作成したEditor Utility Widgetsを開き,グラフを選択します.

【python】UnrealEngine5のPythonで今のカレントディレクトリを特定してみる【UE5】
UnrealEngine5のPythonがどこで実行されているのか 今のカレントディレクトリを特定してみました.

file

Execute Python Scriptには下記のコードを記載します.importlibで再読み込みしないと変更が更新されませんので注意です.

import py_modules.my_func2 as my_func2 

#############################################
# 自作関数の再読み込み
#
import importlib
importlib.reload(my_func2)

#############################################
# check input variavle 
#
print("input1 is {}".format(input1))
print("input1 is {}".format(type(input1)))
print("input2 is {}".format(input2))
print("input2 is {}".format(type(input2)))

#############################################
# calc in my function
#
ans = my_func2.sample_func2(a1=input1, a2=input2)
print("ans    is {}".format(ans))

引数と返り値の設定

ここで,引数と返り値の設定をしていきます.

Execute Python Scriptをクリックすると,左下に詳細が表示されます.ここでInputsのプラスマークを押すことで引数の変数を定義できます.今回はinput1input2を追加します.

次に,下のOutputsのプラスマークを押すことで返り値の変数を定義できます.今回はansを追加します.

file

入力で使用するBPの変数を定義します.今回はfloatb1b2を作成します.

file

中身はb1が3

file

b2が10にデフォルトの値を設定しておきます.

file

b1b2input1input2につなぎます.

file

描画処理の作成

ここから,計算に使用した変数と結果の描画処理をしていきます.

これで,それぞれの値をString型に変換して表示しています.

file

最終的なBlueprintは下記のようになります.

これを実行すると下記のように無事実行完了です.

file

PIE: サーバーにログインしました
PIE: PIE合計開始時間 0.54 秒。
LogPython: input1 is 3.0
LogPython: input1 is <class 'float'>
LogPython: input2 is 10.0
LogPython: input2 is <class 'float'>
LogPython: a1:3.0 + a2:10.0 = 13.0
LogPython: ans    is 13.0
LogBlueprintUserMessages: [NewEditorUtilityWidgetBlueprint_C_0] 
ans is 13.0
b1 is 3.0
b2 is 10.0

結論

UnrealEngine5のExecute Python Scriptノードを使うにあたり,Pythonの自作関数を作成し,引数と返り値を設定し実行してみたとこと,無事に実行が確認されました.

参考文献

【python】UnrealEngine5のEditor Utility Widgetを使ってpythonを使ってみる~Hello world~【UE5】
UnrealEngine5でpythonを使っていきます.PluginはPython Editor Script Pluginを使っていきます(私の場合は最初から入っていました).その結果,無事にHello worldまでいけました.
【python】UnrealEngine5のpythonでpipを使ってみる~Numpyのインストール~【UE5】
概要UnrealEngine5でpythonのpipを使っていきます.その結果無事にpipを使ってnumpyを入れてnumpyの関数を使うことができました.はじめに記事の背景最近,UnrealEngine5でPythonを使っ...
【python】UnrealEngine5のPythonでCSVを出力してみる【UE5】
UnrealEngine5のPythonでCSVを出力してみます.

コメント

タイトルとURLをコピーしました