虚幻引擎已经拥有了蓝图和C++进行开发,为什么还需要Python呢?python相对蓝图和C++有什么优势呢?我认为有以下几点原因: 1、python语言入门简单 2、在虚幻中引入python,可以把海量python生态的库引入到虚幻,这大大加快了开发效率 3、python可以实现虚幻编辑器中自动化工作流程 4、Python目前已经成为制作流程和3D应用程序之间的互操作性的首选语言
不过目前python只能在编辑器模型下工作,所以特别适合于程序化构建场景,从而降低人力成本。
选择Edit--》Plugins--》开启《Python Editor Script Plugin》即可使用。 将cmd调整为python,即可运行python脚本
查看python版本
import sys
print(sys.version)
print('hello ue5 python')
输出如下:
另外如果要执行python文件,可以在Content文件夹中新建一个Python文件夹,里面的python文件可以在命令行输入文件名直接运行。
虚幻引擎帮我们提供了非常好的编写python代码的环境,可以通过vscode编辑器来编写代码,而且还会自动有代码提示。 不过想要代码提示需要打开python开发者模型,在edit--》Editor Preferences--》Plugins--》python 选中Developer Mode。如下图所示
之后就会在Intermediate文件夹中生成PythonStub文件夹,把里面的unreal.py配置到vscode即可实现代码提升。 在vscode的settings.json中,增加如下配置即可:
{
"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即可自动进行代码提示
示例展示了通过python读取staticmesh,再通过脚本在UE场景中生成staticmeshactor对象。
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脚本来开发相关插件,来提升场景制作的效率。
本文主要介绍了如何在UE5中使用python脚本,以及通过python脚本自动创建场景。