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

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

Tools

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

UE4PROGRAM

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

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

UE4Launcher

UE4Launcher是一个使用UE的Standalone Application的方式开发的独立程序,用来方便地切换引擎、启动项目、添加启动参数、保存配置,使用命令行通过配置启动,支持关联uproject文件,支持配置列表,是一个功能完备的启动器,可替代Epic Launcher作为本地引擎管理工具。

主界面:

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是我开发的用于UE热更新资源的打包工具,用来管理热更新版本,进行资源的差异分析并打出pak,支持全平台。

详细的介绍见我之前的文章:UE资源热更打包工具HotPatcher,Github地址:hxhb/HotPatcher

以及我关于UE热更新方案的系列文字,详见Unreal Engine#热更新

ResScannerUE

ResScannerUE是一个基于AssetRegistry和反射机制实现的资源扫描工具,具有以下优点:

  1. 名字、路径规则检查无需加载资源
  2. 名字、路径规则提供通配符支持
  3. 可以通过提供属性名的方式检查资源中的选项
  4. 支持属性名、值的直接选择,避免输入
  5. 非常方便自定义拓展检查规则(创建蓝图或C++类实现)
  6. 支持任意资源类型,绝大部分需求都能Zero-Code实现
  7. 支持配置的导入/导出
  8. 支持Commandlet实现自动化
  9. 支持Git提交的版本比对、待提交文件比对

命名、路径、属性可以严格匹配多个,也可以从多个规则中匹配一个,可以实现类似((expression) && (expression || expression),如以T_开头,以_x_d等结尾这种模式的匹配)。

界面预览(与HotPatcher风格保持一致):


详细的用法和介绍可以看以下两篇文章:

ExportNav

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

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

AppCmderUE

AppCmderUE:支持通过命令行启动UE Android App并传递参数。详见文章:高效调试:命令行参数启动UE Android App

用法:

1
2
append_cmd.bat com.imzlp.gworld "-test123" "-test456" "-test789"

运行日志:

1
Final commandline: ../../../Blank426/Blank426.uproject -test123 -test456 -test789

ue-zstd

ue-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库、编辑器优化。

GitControllerUE

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

ue4-protobuf

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

ue4-jwt

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

全文完,若有不足之处请评论指正。

微信扫描二维码,关注我的公众号。

本文标题:UE工具集:我的开源项目介绍
文章作者:查利鹏
发布时间:2020年10月11日 10时33分
本文字数:本文一共有2.7k字
原始链接:https://imzlp.com/posts/21696/
许可协议: CC BY-NC-SA 4.0
文章禁止全文转载,摘要转发请保留原文链接及作者信息,谢谢!
您的捐赠将鼓励我继续创作!