UE 工具集:我的开源项目介绍

工欲善其事必先利其器,本文主要介绍在我在使用 UE 的过程中开发的一些开源的工具和插件,能够方便地在项目中使用,提高开发效率。之前简单罗列在 资源 页面里,今天做一个详细的整理,对各个工具、插件做一些介绍。

Tools

本节主要介绍我开发和部署的 UE 的外部工具,可以方便开发流程。

UE4PROGRAM

ue4program是一个命令行工具,用于方便地创建 UE 的 Standalone Application 的工具(官方没有提供它的创建方法),可以使用 UE 来写一些独立程序而不依赖引擎启动的流程,也可以方便地测试引擎的功能而不用创建一个游戏项目。

详细介绍见我之前的文章:Create A Standalone Application in UE4

UE4Launcher

UE4Launcher是一个使用 UE 的 Standalone Application 的方式开发的独立程序,用来方便地切换引擎、启动项目、添加启动参数、保存配置,使用命令行通过配置启动,支持关联 uproject 文件。

主界面:

uproject 的文件关联:

详细的用法和介绍可以看Create A Standalone Application in UE4

UE4_API_FOR_DASH

UE4_API_FOR_DASH是我制作的 UE4 API 的 Dash 文档源。可以方便地使用 Dash 或者 Zeal 来查询 UE 的 C++ API,目前最新的文档源是生成 UE4.25.3 引擎版本,如果后续有新的引擎版本发布,我也会不定期更新。

文档源的下载和更新,见我之前的文章:抓取 UE4 API 并生成带索引的 Dash 文档

UE4 Console Help

UE 提供了 Console 命令的帮助文档,我把它部署到了公网,可以方便在线查看和搜索。

地址:consolehelp.imzlp.com

UE4 Wiki Archive

UE4 的官方 wiki 经历了很大改版,之前老 Wiki 中的内容都没了,很可惜,老 wiki 中有很多很棒的内容,所以我部署了 UE4 老 wiki 的站点,作为备份。地址:ue4wiki.imzlp.com

Plugins

本节介绍我业余开发的 UE 中的一些插件,简单介绍一下它们的功能和解决了什么问题。

HotPatcher

HotPatcher是我开发的用于 UE4 热更新资源的打包工具,用来管理热更新版本,进行资源的差异分析并打出 pak,支持全平台。

详细的介绍见我之前的文章:UE4 资源热更打包工具 HotPatcher,Github 地址:hxhb/HotPatcher
以及 UE4 热更新的思路:UE4 热更新:需求分析与方案设计

ExportNav

ue4-export-nav-data是我开发的用于从 UE4 导出 Recast Navigation 寻路数据的插件,可以用在非 DS 架构的服务器中用作地图同步以及寻路计算使用。该插件上架了 虚幻商城 ,但是依然在 Github 上开源。
详细的文档介绍见我之前的文章:Export Recast Navigation Data from UE4

另外,针对外部服务器使用导出的 Recast 数据,我也抽出了 UE 所使用的 recast-detour 版本,可以用在外部服务器的寻路:ue4-recast-detour

ue4-zstd

ue4-zstd是我集成到 UE 的 ZSTD 压缩算法,使用 ModularFeature 的方式集成,可以替换引擎中默认的 ZLib 算法,也可以配合 HotPatcher 使用,替换 pak 的压缩算法。
详细的文档见我之前的文章:ModularFeature:为 UE4 集成 ZSTD 压缩算法

ue4-dtkit

ue4-dtkit是我基于 HTTP 封装了一个下载库,支持 边下边存 / 边下边计算 MD5,这样当文件下载完也已经存到本地了,并且还计算出了 MD5 值可以供校验用。还支持暂停 / 继续 / 分片下载,自己改一下也可以改成断点续传的。
开源在 Github 上:ue4-dtkit,支持 IOS/Android/Windows/Mac 四个平台。
在这个插件中我还封装了一个 MD5Wrapper.hpp 可以用来在其他地方的 MD5 计算,使用的是 OpenSSL 的库。

PlatformUtils

PlatformUtils是一个跨平台插件,用于在四个平台(Win/Mac/Android/iOS)获取硬件信息,主要是用作展示 UE 的跨平台写法,如何集成 iOS 的 framework 并使用、Android 添加 Java 代码、使用 JNI 调用等特定平台的原生操作。

unreal-pb

unlua-pb是集成 lua-ptorobufUnLua的 Module,之前没有 UnLua 的版本,我做了集成。

debugable-unlua

debugable-unlua是 Fork 自 Tencent 的 UnLua,我在其基础上修改,基础版本为106fa9c,目的是打造一个开箱即用的 UnLua, 可调试 和一些基础 lua 库、编辑器优化。

ue4-git-controller

ue4-git-controller可以在 UE 中操作 Git 仓库,可以用来拓展 UE 的版本控制功能。

ue4-protobuf

ue4-protobuf是以源码方式集成的 protobuf,版本为 3.5.1。

ue4-jwt

ue4-jwt在 UE 中集成 JWT 的插件,可以用来跨域认证。