本文为B站系列教学视频《使用 UnrealEnginPython 插件进行UE4中的Python开发》——《Day 06 使用编译版插件在游戏打包后对内容进行修改》的学习笔记,UP主为腾讯游戏策划、虚幻社区贡献者 世欺子。
本节课将对在虚幻引擎中如何在 Windows(64位)上打包运行使用了 UnrealEnginPython
编译版的工程项目进行讲解,然后在实操中尝试打包一个使用 UnrealEnginePython
编译版并且在游戏运行时(Runtime)调用了 Python
脚本的工程项目。
在Windows(64位)上打包运行 UnrealEnginPython
编译版编写的项目需要注意以下几点:
UnrealEnginePython
编译版插件(参见《使用 UnrealEnginPython 插件进行UE4中的Python开发》学习笔记5 )。Content/Scripts/ue_site.py
文件位于工程项目中(可以是空文件)。Scripts
文件夹在 要复制的额外非自产目录(UE4
是 Additional Non-Asset Directories to Copy
)索引数组中,可以在 项目设置 的 打包(Packaging
) 选项卡中进行设置Python
拷贝至打包后的项目目录 Binaries\Win64
下。笔者以《使用 UnrealEnginPython 插件进行UE4中的Python开发》学习笔记4 中的项目为例,在Windows(64位)上打包该项目。
在编辑主界面窗口上选择“编辑”,点击 项目设置 ,在 打包(Packaging
) 选项卡下取消 “使用pak文件” 选项勾选,这样我们打包的项目就不会生成压缩文件,以便于后续验证项目打包完成之后依然可以修改。
展开 要复制的额外非自产目录选项(UE4
中是Additional Non-Asset Directories To Package
选项),然后在 “0组元素” 右边点击 “+” 号添加元素,可以看到出现一个新选项 “索引0”,点击 “ ⋯ \cdots ⋯”选择目录,选择工程目录 “UEPython_Tutorial\Content
” 下的 Scripts
文件夹。
要复制的额外非自产目录(Directories to Always Staqe as Non UFS):其中包含打包项目时应固定被复制、但不作为.pak文件一部分的文件。这用于传输手动加载的额外文件,而不使用UFS(虚幻文件系统文件)IP API(如执行其自身内部文件的第三方库),注意这些路径相对于用户的项目内容目录。
在 “地图和模式” 中将 “编辑器开始地图”(Editor Startup Map)和 “游戏默认地图”(Game Default Map)都更改为 NewMap。“编辑器开始地图”(Editor Startup Map)表示当编辑器启动时打开的地图,“游戏默认地图”(Game Default Map)表示项目打包后游戏默认加载的地图。
在工具栏中选择 “平台”,接着选择 “Windows”,点击 “打包项目”,出现 “SDK未设置” 错误提示 “Windows的SDK未正常安装,而其是生成数据的必需项。请检查主工具栏中“启动”菜单的SDK部分来更新SDK”,解决办法参见《UE5打包SDK未正确安装的问题》。
问题解决后,重新尝试打包项目,可以看到 “Windows
” 选项前的图标发生了变化,并且可以看到 “SDK管理
” 中显示了安装好的 SDK
版本信息至工程目录。点击“打包项目”,选择目录为工程目录 “UEPython_Tutorial
”。
如果打包失败,出现错误提示 “ERROR: No target name was specified on the command-line.
”,原因可能是因为 C++
项目名称不合法,比如项目名称为 Test
,或者出现了 “%-!
” 等特殊字符以及中文。
打包完成后,可以看到在项目 “UEPython_Tutorial
” 目录下生成了一个 Windows
文件夹,该文件夹中包含 UEPython_Tutorial.exe
程序,点击执行,可以看到游戏成功运行且 “兔子梯”(10
层)成功出现。
尝试修改 UEPython_Tutorial\Windows\UEPython_Tutorial\Content\Scripts
的 Python
脚本 tutorial_using_bp_custom_functions.py
,将 “兔子梯” 的层数由 10 层 改为 5 层,验证项目打包后还能否对项目进行修改。
重新执行 UEPython_Tutorial.exe
程序, “兔子梯” 的层数成功变成了 5 层,这说明使用了 UnrealEnginePython
插件的项目打包后还可以直接通过修改 Python
脚本从而实现对项目的修改。
完结,★,°:.☆( ̄▽ ̄)/$:.°★ ,撒花。