UE 打包 Android 概览:命令行参数与纹理压缩
November 28, 2024About 2 min
UE 打包 Android 概览:命令行参数与纹理压缩
这篇是 UE 出 Android 包的入口:打包命令的常用参数,以及 ASTC/DXT/ETC2 三种纹理压缩格式的取舍。环境搭建见 Android 开发环境搭建,报错见 Android 打包踩坑。
打包命令
最精简的打包命令,参数按需加:
...\Engine\Build\BatchFiles\RunUAT.bat -ScriptsForProject=...\Game\game.uproject BuildCookRun -project=...\Game\game.uproject -noP4 -utf8output -platform=Android -target=GameClient -noserver -clientconfig=Development -client -build -cook -pak -stage -package -cmdline=MAP_PreGame -archive -manifests -archivedirectory=...\LocalBuilds
常用参数:
nocompileeditor— 不编译编辑器。unrealexe— 指定 Unreal Editor 可执行文件路径。cookflavor=Multi— cook 模式设为 multi(也可指定具体纹理格式如cookflavor=ETC2)。additionalcookeroptions="-nodev"— 附加 cook 选项。nosound— 不打包声音资源。Android 项目早期一打包,声音资源很吃内存,大概率崩游戏。早期只想让游戏跑起来可以先去掉声音。skipdownloader— 跳过 downloader 直接 build + cook。forceuncompressed— 强制用未压缩资源。特别大的资源在某些情况下用未压缩能提升加载速度。
纹理压缩格式对比
-cookflavor 选 ASTC、DXT 还是 ETC2,直接影响包体、显存和画质。三者区别:
| 维度 | ASTC | DXT(S3TC) | ETC2 |
|---|---|---|---|
| 压缩算法 | 基于块,压缩率和画质都更高 | 固定大小,常见 DXT1/3/5 | 固定大小 |
| 压缩率与画质 | 高压缩率下画质更好 | 较低压缩率,某些情况有伪影/失真 | 较低压缩率,某些情况有伪影/失真 |
| 平台支持 | PC、移动、主机都广泛支持 | 主要 PC 和主机 | 主要移动和 Android |
| 显存与解压 | 解压资源占用少,GPU 上快速解压 | 解压更耗算力,解压时间更长 | 解压资源占用少,GPU 上快速解压 |
需要高压缩率和画质时 ASTC 是更好选择;Android 平台 ETC2 是常规选项。