UE Toolset: Introduction to my open source project

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

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

Tools

This section mainly introduces the external tools developed and deployed for UE, which can facilitate the development process.

UE4PROGRAM

ue4program is a command-line tool for easily creating UE’s Standalone Application (the official method for creating it is not provided). It allows you to write independent programs using UE without relying on the engine startup process and can conveniently test engine functionalities without creating a game project.

For detailed information, see my previous article: Create A Standalone Application in UE4

UE4Launcher

UE4Launcher is an independent program developed using UE’s Standalone Application method, designed to conveniently switch engines, start projects, add startup parameters, and save configurations. It can be started through command line configuration, supports uproject file association, and has a configuration list, making it a feature-complete launcher that can replace Epic Launcher as a local engine management tool.

Main interface:

uproject file association:

For detailed usage and introduction, see Create A Standalone Application in UE4

UE4_API_FOR_DASH

UE4_API_FOR_DASH is the Dash documentation source for UE4 API that I created. It can be easily used with Dash or Zeal to query UE’s C++ API. The latest documentation source is generated for UE4.25.3, and I will periodically update it with new engine releases.

For downloading and updating the documentation source, see my previous article: 抓取 UE4 API 并生成带索引的 Dash 文档

UE4 Console Help

UE provides help documentation for Console commands, which I have deployed for public access to facilitate online viewing and searching.

Address: consolehelp.imzlp.com

UE4 Wiki Archive

The official wiki of UE4 has undergone significant revisions, and the content from the old Wiki is gone; it’s unfortunate, as there was a lot of excellent content there. Therefore, I deployed a site for the old UE4 wiki as a backup. Address: ue4wiki.imzlp.com

Plugins

This section introduces some plugins I developed in my spare time in UE, briefly explaining their functions and the problems they solve.

HotPatcher

HotPatcher is a packaging tool for UE hot update resources that I developed, used for managing hot update versions, conducting resource difference analysis, and generating pak files, supporting all platforms.

For detailed introduction, see my previous article: UE资源热更打包工具HotPatcher, Github address: hxhb/HotPatcher

And my series of articles on UE hot update solutions can be found at Unreal Engine#热更新 .

ResScannerUE

ResScannerUE is a resource scanning tool based on AssetRegistry and reflection mechanism, with the following advantages:

  1. Name and path rule checks without loading resources
  2. Name and path rules support wildcard
  3. Options in resources can be checked by providing property name and value
  4. Direct selection support for property names and values, avoiding input
  5. Very convenient for custom extension check rules (create blueprint or C++ class)
  6. Supports any resource type, with most needs achievable with Zero-Code
  7. Supports import/export of configurations
  8. Supports Commandlet for automation
  9. Supports Git commit version comparison and pending file comparison

Names, paths, and properties can match multiple strictly or match one from multiple rules, achieving similar to (expression) && (expression || expression) logic, such as matching patterns that start with T_ and end with _x or _d.

Interface preview (maintaining a style consistent with HotPatcher):

For detailed usage and introduction, see the following two articles:

ExportNav

ue4-export-nav-data is a plugin I developed for exporting Recast Navigation pathfinding data from UE4, which can be used on non-DS architecture servers for map synchronization and pathfinding calculations. The plugin is available on the Unreal Marketplace but is still open-source on Github. Detailed documentation can be found in my previous article: Export Recast Navigation Data from UE4

Additionally, for external servers using the exported Recast data, I have also extracted the version of recast-detour used by UE, which can be used for pathfinding on external servers: ue4-recast-detour

AppCmderUE

AppCmderUE: Supports starting UE Android App via command line and passing parameters. See the article: 高效调试:命令行参数启动UE Android App

Usage:

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

Running log:

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

ue-zstd

ue-zstd is a ZSTD compression algorithm that I integrated into UE, using the ModularFeature method for integration. It can replace the default ZLib algorithm in the engine and can be used in conjunction with HotPatcher to replace the compression algorithm of pak files. Detailed documentation can be found in my previous article: ModularFeature:为 UE4 集成 ZSTD 压缩算法

ue4-dtkit

ue4-dtkit is a download library I wrapped based on HTTP, supporting downloading while saving/downloading while calculating MD5, so when the file downloads, it is already saved locally, and the MD5 value can be calculated for verification. It also supports pause/resume/segmented downloads, and you can modify it to support breakpoint resume. It is open-sourced on Github: ue4-dtkit, supporting IOS/Android/Windows/Mac platforms. In this plugin, I also wrapped an MD5Wrapper.hpp for MD5 calculation in other places, using the OpenSSL library.

PlatformUtils

PlatformUtils is a cross-platform plugin for obtaining hardware information on four platforms (Win/Mac/Android/iOS), mainly used to demonstrate UE’s cross-platform writing, how to integrate iOS’s framework and use it, add Java code for Android, and perform native operations unique to specific platforms using JNI.

unreal-pb

unlua-pb is a module that integrates lua-ptorobuf into UnLua. Previously, there was no UnLua version, so I created the integration.

debugable-unlua

debugable-unlua is forked from Tencent’s UnLua, and I modified it based on the original, with the base version being 106fa9c to create a ready-to-use UnLua with debugging capability and some basic lua libraries and editor optimizations.

GitControllerUE

GitControllerUE allows for Git repository operations within UE, which can be used to extend UE’s version control capabilities.

ue4-protobuf

ue4-protobuf is the protobuf integrated in source code form, version 3.5.1.

ue4-jwt

ue4-jwt is a plugin that integrates JWT into UE for cross-domain authentication.

The article is finished. If you have any questions, please comment and communicate.

Scan the QR code on WeChat and follow me.

Title:UE Toolset: Introduction to my open source project
Author:LIPENGZHA
Publish Date:2020/10/11 10:33
Word Count:5.5k Words
Link:https://en.imzlp.com/posts/21696/
License: CC BY-NC-SA 4.0
Reprinting of the full article is prohibited.
Your donation will encourage me to keep creating!