3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

UE4 Pythonプラグイン(UnrealEnginePython)を試してみる

Posted at

概要

UnrealEngineで使用可能なPythonプラグイン UnrealEnginePython についての記述です。
インストールとテストコードの実行を行っています。
バイナリ配布からのインストールはうまくいきませんでした。

環境

Windows10
Visual Studio 2017
UnrealEngine 4.22
UnrealEnginePython

参考

以下を参考にさせて頂きました。ありがとうございます。

UnrealEnginePython プラグインを使ってみた (導入編)
UE4でPythonを使ってみる
プラグインをパッケージ化しよう!

準備

プラグインインストール(バイナリ)

https://github.com/20tab/UnrealEnginePython から
UnrealEnginePython_20190508_4_22_python36_embedded_win64.zip
をダウンロードして[Plugin]フォルダに展開します。

uprojectを右クリック -> [Generate Visual Studio project files]を選択してソリューションを生成。

VisualStudioをビルドした結果、以下のようなエラーになりました。

エラー表示(VisualStudio)
Could not find definition for module 'UnrealEnginePython' (reference via default plugins -> UnrealEnginePython.uplugin)

UEエディタでのエラー表示は以下の様に。

エラー表示(Editor)
ERROR: Could not find definition for module 'UnrealEnginePython' (referenced via default plugins -> UnrealEnginePython.uplugin)

エラーがでて動きません。モジュールが見つからないようです。
.uprojectに追加してみたり、Build.csに追加してみたりを試したのですがダメでした。

プラグインインストール(ソース)

https://github.com/20tab/UnrealEnginePython
そのままダウンロード、[UnrealEnginePython]を[Plugin]フォルダに配置します。

"\Plugins\UnrealEnginePython\Source\UnrealEnginePython\UnrealEnginePython.Build.cs"
の11行目の pythonHome のパスをローカルのPythonがインストールされているパスに修正します。

UnrealEnginePython.Build.cs
// Copyright 1998-2016 Epic Games, Inc. All Rights Reserved.

using UnrealBuildTool;
using System.IO;
using System.Collections.Generic;

public class UnrealEnginePython : ModuleRules
{

    // leave this string as empty for triggering auto-discovery of python installations...
    private string pythonHome = "C:/Python/Python37";  // ←ローカル環境のパスにする
...

エディターだけでの使用なので、
"\Plugins\UnrealEnginePython\UnrealEnginePython.uplugin"
TypeRuntime から Editor に書き換えます。

UnrealEnginePython.uplugin
  "Modules": [
    {
      "Name": "UnrealEnginePython",
      "Type": "Editor",
      "LoadingPhase": "Default"
    },

uprojectを右クリック -> [Generate Visual Studio project files]を選択してソリューションを生成し、ビルド。

plugin_window.png

プラグイン画面に追加されました。

プラグインパッケージ化

ソースインストール後にプラグインパッケージ化を行い、バイナリインストール時と同じエラーで起動できませんでした。
ソースだとC++ソースが増えてビルドが遅くなってしまい都合が悪いですが、現在のところ解決方法がわかりません。:disappointed_relieved:

機能メモ

Python Console

[ウィンドウ] -> [デベロッパーツール] -> [Python Console] から起動できます。

python_console.png

PythonConsole
>>>import platform
>>>print(platform.python_version())
3.7.3
>>>print('1500 * 1.08 = ', 1500 * 1.08)
1500 * 1.08 = 

1620.0

対話モードのようにPythonが実行できます。

Python Editor

[ウィンドウ] -> [Python Editor] から起動できます。

PythonEditor.png

Pythonコードを書いて[Execute]で実行できます。
記述したPythonファイルは Content/Scripts フォルダ以下に保存されます。

Slate使ったファイルピッカーのテストです。

TestScript.py
import unreal_engine as ue
from unreal_engine import SFilePathPicker, SWindow, FLinearColor
from unreal_engine.structs import ButtonStyle, SlateBrush, SlateColor

# ボタンスタイル用意
style = ButtonStyle(Normal=SlateBrush(TintColor=SlateColor(SpecifiedColor=FLinearColor(1.0, 0, 0))))

# ウィンドウ用意
window = SWindow(client_size=(600,400), title='TestWin', modal=True)

# パス表示&ウィンドウ始末
def path_picked(path):
    print(path)            # 'Engine\Binaries\Win64'からの相対パス表示
    window.request_destroy()

# ファイルピッカー設定
picker = SFilePathPicker(browse_title='SelectFile', browse_button_style=style, on_path_picked=path_picked)
window.set_content(picker)

window.add_modal()

実行後のウィンドウ、右の赤いボタンが押せます。
TestScript_Win.png

ピッカーボタンを押下してファイル選択後のアウトプットログ
TestScript_OutputLog.png

Python でのログが出力されています。

PythonAutomation

Python実行用のモジュールを管理するもの?

まとめ

一応使えますがエディタなどは使いにくいので別で用意するほうが良さそうです。(コード補完がないとツラいです、特にメソッド名)
Actorクラス等も書けるようですが、Pythonに習熟していたとしても情報が少ないため、使い道としてはPythonライブラリを扱うものやエディター系の処理に限定したほうが良いかもしれません。
追加パッケージのインストールについては pip がついているのでできそうですが、調査できていません。
あとバイナリでのプラグイン追加がうまくいかない問題が解決できませんでした。:worried:

3
3
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
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?