UE入门 | UE源码编译、安卓项目打包
作业内容:
- 源码编译UE4/5,新建C++工程,进行简单场景编辑和工程设置
- 编译并构建安装包,确保能够用来将游戏工程安装到手机正常运行
下面是我下载编译 UE 5.2.1 源码,并打包安卓项目过程记录。
下载并编译源码
参考官网文档获取源码并下载:下载虚幻引擎源代码
简单流程介绍:
- 准备GitHub账户和Epic Games账户,然后按照 Github上的虚幻引擎 完成绑定;
- 访问 UnrealEngine源码仓库 获取源码。
你可以在分支中找到5.2版本,即为UE5.2.1版。
下载和编译过程参考源码仓库中的 README.md 介绍。
总结几个对我来说比较有用的点:
- 5.2版本基本稳定,可以直接下载zip压缩包;
- 如果使用git,可以选择只获取某一特定分支;
- git clone 速度很慢,可以设置git代理,加速下载。
我最初使用 git clone 直接下载,很慢,所以设置了代理(本机Clash端口:127.0.0.1:7890),设置参考:
Github文档:使用 SSH 代理转发
~/.ssh/config:git通过配置SSH代理访问Github
之后觉得下载内容太多,我们只需要一个分支版本的源码即可,所以我使用ssh只克隆了5.2分支:
git clone -b 5.2 --single-branch [email protected]:EpicGames/UnrealEngine.git
可以看到只下载5.2分支也有13.49G,感觉不如下载 UnrealEngine-5.2.zip,500+MB 再解压缩,很快。
然后就是按照 README.md 介绍,先运行Setup.bat
,再运行GenerateProjectFiles.bat
,最后使用 VS 打开 UE5.sln
。
比如 Windows 操作系统的编译过程:
编译完成后,我们也可以找到源码目录中 \UnrealEngine-5.2\Engine\Binaries\Win64\UnrealEditor.exe
执行文件直接打开UE,而不用 VS 运行。
关于编译过程中可能遇到的问题,我遇到的问题都是 VS 安装不到位导致,以下是我的 VS2022 安装内容:
“工作负荷”中勾选的都是自动安装,另外特别选了“单一组件中”的unreal内容(特别是Unreal Engine安装程序
):
然后进行编译就成功了,下图是编译成功后又生成了一下,所以很快,第一次生成两三个小时大概()。
像 README.md 所说,在 VS 中将 UE5 设置为启动项目,按 F5 可以启动调试;或者找到 UnrealEditor.exe, UE,启动!
关于其他可能的问题(我没遇到,仅供参考):
安装 Android Studio
为了我们能正确打包安卓项目,需要先下载 Android Studio。
参考官方文档 设置虚幻的Android SDK和NDK,有详细的安装流程。
需要注意的是,对应版本最好严格按照文档要求来,这样少折腾一点,可以一次成功。
按照文档流程基本可以成功,虽然我还是遇到了一些问题:
首先按照文档要求,下载了 Android Studio 4.0,启动时遇到的一些更新或下载之类的弹窗可以取消,下面会专门进行安装。
在 Android SDK 系统设置中,我安装的 Android Studio 自动为我安装了最新的 SDK 34,需要将它取消勾选(会进行卸载),并勾选 SDK 32(会进行安装),点击 Apply。
之所以选择 SDK 32 是因为官方文档的 开发要求,如果你是其他版本的UE,需要找到对应的推荐版本(至少编译所需的最低版本)。
然后关于 SDK 工具的下载,一定要勾选 8.0 版本的 Android SDK Command-line Tools,需要将推荐包展开找到 8.0。
之所以选择 8.0 版,是因为 SetupAndroid.bat
文件中默认即为 8.0 ,这点官方文档也有说。
关于上图中这点,我打开 SetupAndroid.bat
文件发现默认设置即可,如果一切按照以上操作来设置,这点不用理会。
然后重启计算机(Windows)后运行了 SetupAndroid.bat
文件,没有看到官网所说的 “接受协议” 这步,但是提示成功即可,再重启便完成了安装。
另外,我在 Android Studio 的欢迎界面收到下图提示:
其实应该是不用理会即可,但强迫症去找了一下解决方案:Android Studio 3.1.4 : ANDROID_SDK_HOME is set to the root of your SDK,简言之就是,ANDROID_SDK_HOME 环境变量已被弃用,只需将其删除即可。(但是后来运行UE好像又自动加上了,。
创建C++工程并打包安卓平台
现在可以启动 UE,创建第一个C++项目,官方文档也有介绍:新建项目,你可以在页面左上角切换到你的UE版本对应的文档介绍。为了打包一个安卓项目,以下是我的新建项目设置:
点击创建后会启动 VS2022,然后运行项目,即可打开虚幻编辑器,点击运行即可在虚幻编辑器内启动当前关卡进行预览:
我们不用做任何操作,直接进行打包即可:
当然你也可以点击上图第一菜单栏中 “打包设置” 看看,官方文档有一些说明:打包项目
最后一切顺利的话,输出日志中会提示 BUILD SUCCESSFUL,这里我没遇到任何严重错误(Error),只有一些警告,大概进行了一个多小时,之后再打包本项目就很快了。
现在需要准备安卓手机,进入开发者模式,并打开USB调试选项,用数据线连接到电脑。
不同手机进行开发者模式的方式可能不同,没找到可以自己搜一下,比如我的华为手机:
然后在我的 “系统与更新” 中出现了 “开发人员选项”,进入打开 “USB调试”(你也可以在这里关闭开发者模式)。
然后在打包时选择的文件目录里,找到以下文件并双击运行(确保上面准备工作完成):
一切顺利的话会成功安装到手机上,找到它就可以在手机上运行了。
可以看到还有一个 apk 文件,如果直接传 apk 文件到手机(注意微信传输会添加 .1 后缀,不能直接安装,可以用 QQ 或其他方式传输),可以安装成功,但是会提示 No Google Play Store Key 而无法运行。
参照群友们的解决方案,我在打包设置中勾选了 “将游戏数据打包到apk中”,如下图:
可以看到apk安装包变大了:
这样就能直接使用 apk 文件安装并运行了,也不用设置手机开发者模式。
最后
git
整个过程下来获取源码的时候最浪费时间,git 折腾了挺久的,最后也是使用压缩包先编译了。接下来的过程一切都比较顺利了,严格按照官方文档和开发要求的版本,没遇到什么问题。
如果你遇到了其他问题,下面可能是一些参考:
UE4学习笔记(1):UE源码下载编译+安卓打包
UE源码下载编译+安卓打包配置及部分补充杂症的解决
UE部署到Android以及杂症的解决
后话:我将上文中 git clone 成功获取到的文件夹(UnrealEngine)中的 .git 目录复制了一份到我的压缩包文件夹中(UnrealEngine-5.2,因为已经用解压缩的源码编译成功并做好了本文内容,所以不想将 git 拉取的内容再编译一遍),然后在压缩包文件夹(UnrealEngine-5.2)中用 git pull 验证了是可行的,这样一来我压缩包获取的源码(并完成编译)也可以快速拉取仓库代码的更新(如果5.2还会更新的话)。
使用 Epic 启动源码编译版本
不是很建议,除非有时间愿意慢慢折腾,我是没弄好,不确定是否可行。。。