Python大师!UE5的御用布景师

2022-11-25 19:27:13 浏览数 (1)

Part1前言

虚幻引擎已经拥有了蓝图和C 进行开发,为什么还需要Python呢?python相对蓝图和C 有什么优势呢?我认为有以下几点原因: 1、python语言入门简单 2、在虚幻中引入python,可以把海量python生态的库引入到虚幻,这大大加快了开发效率 3、python可以实现虚幻编辑器中自动化工作流程 4、Python目前已经成为制作流程和3D应用程序之间的互操作性的首选语言

不过目前python只能在编辑器模型下工作,所以特别适合于程序化构建场景,从而降低人力成本。

Part2如何使用python

选择Edit--》Plugins--》开启《Python Editor Script Plugin》即可使用。 将cmd调整为python,即可运行python脚本

查看python版本

代码语言:javascript复制
import sys
print(sys.version)
print('hello ue5 python')

输出如下:

另外如果要执行python文件,可以在Content文件夹中新建一个Python文件夹,里面的python文件可以在命令行输入文件名直接运行。

Part3vscode编写python

虚幻引擎帮我们提供了非常好的编写python代码的环境,可以通过vscode编辑器来编写代码,而且还会自动有代码提示。 不过想要代码提示需要打开python开发者模型,在edit--》Editor Preferences--》Plugins--》python 选中Developer Mode。如下图所示

之后就会在Intermediate文件夹中生成PythonStub文件夹,把里面的unreal.py配置到vscode即可实现代码提升。 在vscode的settings.json中,增加如下配置即可:

代码语言:javascript复制
{
  "python.pythonPath": "C:\Program Files\Epic Games\UE_5.0\Engine\Binaries\ThirdParty\Python3\Win64\python.exe",
  "python.autoComplete.extraPaths": [
  "C:\Users\41132\Documents\Unreal Projects\FirstUE5\Intermediate\PythonStub"
    ],
    "python.analysis.extraPaths": [
      "C:\Users\41132\Documents\Unreal Projects\FirstUE5\Intermediate\PythonStub"
    ]
}

之后调用UE的api即可自动进行代码提示

Part4脚本构建场景

示例展示了通过python读取staticmesh,再通过脚本在UE场景中生成staticmeshactor对象。

代码语言:javascript复制
def SpawnActor2(x):
    world = unreal.EditorLevelLibrary.get_editor_world()
    actor_object = unreal.load_object(
        world, '/Game/MeshCenter/2/Geometries/Box001.Box001')
    actor_location = unreal.Vector(x, 0, 100)
    actor_rotation = unreal.Rotator(0.0, 0.0, 0.0)
    actor_scale = unreal.Vector(3.0, 3.0, 3.0)
    actor = unreal.EditorLevelLibrary.spawn_actor_from_object(
        actor_object, actor_location, actor_rotation)


for i in range(0, 900, 150):
    SpawnActor2(i)

生成的对象如下图所示

后续考虑通过python脚本来开发相关插件,来提升场景制作的效率。

Part5总结

本文主要介绍了如何在UE5中使用python脚本,以及通过python脚本自动创建场景。

0 人点赞