LoginSignup
1
0

More than 1 year has passed since last update.

PythonのライブラリをUnrealEngine4上で表示させる

Last updated at Posted at 2022-01-08

はじめに

今回はUnrealEngine4のエディタ上でPythonのライブラリのプログラムを記述したいと思います。
プラグインでのライブラリだとnumpyやsckitlearnが入っていないので使える様にする手引きまで今回は扱います(具体的な用途についてはまだ勉強中です)

環境

UnrealEngine4 4.25
*以下UE4と略します
Python 3.7.0
osはWindowsになります。

プラグイン

UE4上で起動させ,「Scripting」から「Python Editor Script Plugin」を選択

スクリーンショット (921).png

Hello World

「ウインドウ」から「アウトプットログ」を表示させておく。既存のunrealライブラリから呼び出します。その際に左下からPythonのコマンドを選択します。

スクリーンショット (923).png

以下のスクリプトを書きます

import unreal
unreal.log("Hello world")

以下の様に返ってきます。
スクリーンショット (925).png

外部ライブラリのインストール

今回はnumpy,matplotlib,sckitlearnのインストールします。まずはディレクトリはEpic内でPythonにあるディレクトリを探します。今回のosはWindowsなのでコマンドプロンプトで
C:\Program Files\Epic Games\UE_4.26\Engine\Binaries\ThirdParty\Python3\Win64
を見つけて移動します(cd)

そして移動後以下の様にインストールします(pipからだとダメでした)

Python -m pip install numpy
Python -m pip install scikit-learn
Python -m pip install matplotlib

スクリプト

実際に上記のライブラリを用いて,今回はKmeans法を試します。
人工データを生成し,クラスタを割り当てます。以下のファイルを作成

kmeans_Test.py
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans

#正規乱数による生成
np.random.seed(0)
a=np.random.randn(40,2)
b=np.random.randn(40,2)+np.array([1,0])
c=np.random.randn(40,2)+np.array([1,1])

#すべてを結合しシャッフル
abc=np.r_[a,b,c]
np.random.shuffle(abc)


#学習
model= KMeans(n_clusters=3)
result=model.fit(abc)

marks=["x","+","*"]

#表示
for i in range(3):
  p=[result.labels_[j]== i for j in range(len(result.labels_))]
  plt.scatter(abc[p][:,0],abc[p][:,1],marker=marks[i])

plt.show()

実行

ファイル作成後,UnrealEngineの「ファイル」から実行スクリーンショット (927).png

以下の様に表示されたら成功

Figure_1.png

最後に

Unreal内でのアセット管理などでPythonは有効活用出来るみたいなので,色々リサーチしたいと思います。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0