UE4 Python 플러그인 (UnrealEnginePython)을 사용해보십시오.

개요



UnrealEngine에서 사용 가능한 Python 플러그인 UnrealEnginePython에 대한 설명입니다.
설치 및 테스트 코드를 실행하고 있습니다.
바이너리 배포판에서 설치가 작동하지 않았습니다.

환경



Windows10
Visual Studio 2017
UnrealEngine 4.22
UnrealEnginePython

참고



이하를 참고로 했습니다. 감사합니다.

UnrealEnginePython 플러그인을 사용해 보았습니다.
UE4에서 Python을 사용해보기
플러그인을 패키징하세요!

준비



플러그인 설치(바이너리)



htps : // 기주 b. 코 m / 20 타 b / 응아 아기 기 Py 부터
UnrealEnginePython_20190508_4_22_python36_embedded_win64.zip
을 다운로드하여 플러그인 폴더로 확장합니다.

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에 추가해 보거나 시도했지만 좋지 않았습니다.

플러그인 설치(소스)



htps : // 기주 b. 코 m / 20 타 b / 응아 아기 기 Py
그대로 다운로드하고 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"
Type을 Runtime에서 Editor로 다시 씁니다.

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

uproject를 마우스 오른쪽 버튼으로 클릭 -> Generate Visual Studio project files를 선택하여 솔루션을 생성하고 빌드합니다.



플러그인 화면에 추가되었습니다.

플러그인 패키징



소스 설치 후 플러그인 패키징을 수행했으며 바이너리 설치와 동일한 오류로 시작할 수 없습니다.
소스라면 C++ 소스가 늘어나 빌드가 느려져 버리는 사정이 나쁘지만, 현재 해결 방법을 모르겠습니다.

기능 메모



파이썬 콘솔



창 -> 개발자 도구 -> Python Console에서 시작할 수 있습니다.



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

1620.0

대화 모드처럼 파이썬을 실행할 수 있습니다.

파이썬 에디터



창 -> Python Editor에서 시작할 수 있습니다.



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()

실행 후 창 오른쪽의 빨간 버튼을 누를 수 있습니다.


선택 버튼을 눌러 파일 선택 후 출력 로그


파이썬에서 로그가 출력됩니다.

PythonAutomation



파이썬 실행을위한 모듈을 관리하는 것?

요약



일단 사용할 수 있지만 에디터 등은 사용하기 어려우므로 별도로 준비하는 것이 좋을 것 같습니다. (코드 완성이 없으면 엉망입니다. 특히 메소드 이름)
Actor 클래스등도 쓸 수 있는 것 같습니다만, Python에 숙련하고 있었다고 해도 정보가 적기 때문에, 사용도로서는 Python 라이브러리를 취급하는 것나 에디터계의 처리에 한정하는 편이 좋을지도 모릅니다.
추가 패키지의 설치에 대해서는 pip 가 붙어 있으므로 할 수 있습니다만, 조사할 수 없습니다.
나중에 바이너리에서 플러그인 추가가 작동하지 않는 문제를 해결할 수 없습니다.

좋은 웹페이지 즐겨찾기