在虚幻引擎中使用python来制作自动化工具,本文让你清楚如何在虚幻引擎中使用python来制作蓝图节点,如果你需要使用到第三方库可以参考以下文章在虚幻引擎中,安装Python依赖。
一、在你的项目中创建如下文件
在项目或者虚幻引擎源码的Content目录下,添加一个Python文件夹,在这个文件夹中添加python文件,文件结构如下:
你的虚幻项目文件夹└── Content└── Python├── init_unreal.py└── ExcelDTImporter.py
一定要有init_unreal.py文件,因为引擎只会自动去读取名为Python的文件夹里面的init_unreal.py,而init_unreal.py一定要import你的python文件。
二、在init_unreal.py文件中导入你写的python代码
init_unreal.py文件结构:
import ExcelDTImporter打开项目时,引擎会自动读取init_unreal.py,然后python文件夹中会多出__pycache__文件夹,这就说明代码已经被读取。
三、写好你要实现的代码
ExcelDTImporter.py文件结构:
import unreal@unreal.uclass()class ExcelImportHelper(unreal.BlueprintFunctionLibrary):# 第一个蓝图节点@unreal.ufunction(static=True, ret=unreal.Array(str), params=[str], meta=dict(Category="Excel Tool"))def get_excel_sheet_names(file_path):pass
ret是返回的类型,params是输入的类型,如果输入和输出有多个值需要用列表表示。函数名就是蓝图节点名称,不过在虚幻引擎中是不显示下划线的,需要注意。
下面是一个完整的示例,实现了一个蓝图节点的功能代码,读取xlsx文件并返回所有工作表列表。
完整代码:
import unrealimport pandas as pd@unreal.uclass()class ExcelImportHelper(unreal.BlueprintFunctionLibrary):@unreal.ufunction(static=True, ret=unreal.Array(str), params=[str], meta=dict(Category="Excel Tool"))def get_excel_sheet_names(file_path):"""读取Excel文件并返回所有工作表的名称"""try:xl = pd.ExcelFile(file_path)# 将pandas的列表转换为unreal.Array格式sheet_names = unreal.Array(str)for name in xl.sheet_names:sheet_names.append(str(name))return sheet_namesexcept Exception as e:unreal.log_error(f"读取Sheet失败: {e}")return unreal.Array(str)
调试:
在虚幻引擎中,点击顶部菜单栏的Window (窗口) -> Output Log (输出日志)。
在弹出的日志窗口底部,有一个输入框,左边有一个下拉菜单(通常默认是Cmd),把它点击切换成Python。
在输入框中输入以下命令并按回车:
import ExcelDTImporter

如果没有任何红字报错,就说明代码成功运行,如果报错则根据报错信息进行修改代码。

打开项目时,在日志中也会有这些内容,通常打改代码需要重启项目。
没有报错就证明代码通过了虚幻引擎的错误检查,就可以在蓝图里面搜索得到这两个蓝图节点,直接搜索函数名,下划线用空格代替,大小写无所谓。
Get Excel Sheet Names
到这里就可以在蓝图中使用我们创建的python蓝图节点。
需要注意:python构建的蓝图节点,只能在编辑器蓝图类中使用,无法在游戏蓝图中使用。