用源码编译虚幻引擎,并打包到安卓平台
前往我的博客,获取更优的阅读体验
作业内容:
- 源码编译UE5.4
- 构建C++项目,简单设置
- 打包到安卓平台
编译虚幻 5
前置内容
这里需要将 Epic
账号和 Github
账号绑定,然后加入 Epic
邀请的组织,即可以参与虚幻5的工程。考虑到这并非本作业的核心内容,这里不过多赘述,如有疑问,参考下列文章;
- 官方文档: 如何下载虚幻引擎源代码
获取完整源码文件
这里下载的版本为课程要求的 5.4
版本
官方已经给出了完整的编译方案,如图:
我们跟随教程,解压文件然后运行 Setup.bat
:
然后运行 GenerateProjectFiles.bat
:
完成后会出现UE5.sln
,然后使用VS2022
运行 UE5.sln
。
这儿我权衡下没有采取克隆的方式,主要是两点:
- Github的网络上个谜,即便挂梯子,也会抽风
- 本地硬盘为
980Pro
,并不害怕解压小文件
编译器环境配置
这里我曾经使用 VS 开发过,所以不需要配置任何 VS 的环境
我的VS配置如下图:
实际上并不需要全部勾选,大家可以参考官方文档,这里只是一个参考。
- 官方文档: 在VS中设置扩展以兼容虚幻5
编译源码
以上配置完成后打开UE5.sln,然后选择 Development Editor
和 Win64
进行编译,如图:
这里我遇到了两个问题:
- 权限问题,临时文件无法创建问题。经典的
C++ Error D8037
- 虚拟内存爆炸问题,这个问题是我本地的问题,解决方案是增加虚拟内存
前者解决方案参考:C++ Error D8037
此外,本过程可能需要消耗几个小时的时间,大家慢慢等待即可。
编译完成后,在VS
中F5
或前往对应路径运行UnrealEditor.exe
我这儿直接创建了一个新的项目,然后进行了简单的设置,并本地运行如图:
安卓打包平台的配置
环境配置
先贴完整的官方文档: 如何进行安卓平台配置
因为我本地已经配置过 NDK
和 SDK
,所以Android Studio
部分没有截图,大家可以参考官方文档。
虚幻 5 的配置
先跟随官方安装虚幻的 NDK,选择对应的 SDK 路径
然后重启虚幻5,选择 Android
平台,如果操作正常,应当可以看到如下图:
配置完成后,不可以出现主动安装等字样,如图,即便有也只能出现强制安装等字样,如果是这样,意味着虚幻5成功的获取了你的 SDK 。
打包,完工
打包
在我环境下虚幻5.4为Gradle 7.5
,而我本地的 JDK
版本为 21
,这两个版本存在兼容问题,所以我需要降级 JDK
版本。
然后开始打包,生成下列文件:
借助 ADB
进行安装,并成功运行,如图:
测试时发现单独的 APK
不能安装,仔细下图观察会发现有一个极大的obb文件,即安卓游戏通用数据包
查询后发现需要勾选打包数据到 apk,如图:
再次打包可以看出数据已经打包到apk中,apk大了很多,如图:
仅借助APK即可安装成功,如图: