开源一个虚幻引擎启动器UE Launcher

通常在使用UE进行项目开发时,本地会有多个引擎版本,而Epic Game Launcher只支持安装版引擎的启动,不支持源码编译的引擎。
当本地具有多个引擎版本时,切换不方便,并且没有一种便捷地启动引擎工具、项目以及给项目添加启动参数的方式,在执行Commandlet时需要创建很多脚本,管理非常麻烦。基于这些痛点,我开发了一个UE启动器:UELauncher,用来解决这些问题,同时支持UE4和UE5。

UE Launcher是一个基于UE Standalone Application模式开发的一款工具,使用UE作为基础库,UI使用Slate编写,相关的实现机制可以见我之前的一篇文章:Create A Standalone Application in UE4

UELauncher功能介绍:

  1. 能够扫描出系统中安装的所有引擎版本
  2. 能够选择引擎工具(如UE4Editor/UnrealFrontEnd/IPhonePackager等)
  3. 能够选择uproject项目
  4. 对于源码版引擎能便捷地启动VS打开sln
  5. 能够添加启动参数
  6. 保存引擎、项目、启动参数等配置
  7. 支持全局配置,可以添加配置列表,把常用的配置保存,实现便捷地启动
  8. 支持命令行启动
  9. 支持uproject文件关联
  10. 同时支持UE4和UE5

主界面

具体的功能也是比较直观,后面介绍一下进阶用法。

文件关联

当使用“管理员权限”启动该工具之后,会自动往系统注册表添加uproject的文件关联,类似UE默认的文件关联:

会根据当前项目的引擎版本创建出一个uejson文件,双击即可使用UELauncher打开,编辑启动参数:

编辑配置后可以保存。uejson文件同样具有文件关联,能够使用UELauncher编辑,以及直接不启动窗口来启动配置文件:

这样就可以把UE Launcher当作一个调度器,能够基于配置文件来静默启动。在实现一些commandlet时非常方便。

自定义添加引擎工具

在v0.20版本,我默认集成了以下几个引擎工具:

  1. Editor
  2. Editor-cmd
  3. UnrealFrontEnd
  4. IPhonePackager
  5. NetworkProfiler

但是,如果想要添加其他的工具,如UnrealInsight等,我提供了一种配置文件的方法。在程序启动之后,会在exe目录创建出一个LaunchTools.json文件,里面记录了引擎工具的配置:

可以使用以下格式来添加引擎工具:

1
2
3
4
5
{
"ToolName": "NetworkProfiler",
"PreArgs": "",
"BinPath": "Engine/Binaries/DotNET"
}

注意:ToolName必须要严格匹配exe的名字,BinPath是exe相对于引擎的根路径。

全局配置

在工具启动时,会自动加载Global的配置,该配置文件默认在exe所在路径,命名为Global.json

在新增、删除操作时会自动更新,也可以通过Load Global单独加载其他位置的Global.json

Global.json也是一个文本json文件:

Global.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
{
"613EF17D49C4B6CD93268D9EC7E2740F":
{
"Engine": "C:/build_agent/workspace/FGameEngine/Engine",
"Project": "D:/UnrealProjects/Client/FGame.uproject",
"Tool": "Editor",
"ToolPreArgs": "",
"Params": []
},
"9952A0F144015DC2301F94A82552E378":
{
"Engine": "C:/build_agent/workspace/FGameEngine/Engine",
"Project": "D:/UnrealProjects/Client/FGame.uproject",
"Tool": "IPhonePackager",
"ToolPreArgs": "",
"Params": []
},
"98286E134C9D7BE6A91823A2A6880EED":
{
"Engine": "D:/UGit/Engine_bin/FEngine",
"Project": "D:/UGit/Engine_bin/FClient/FGame.uproject",
"Tool": "Editor",
"ToolPreArgs": "",
"Params": []
},
"GUIDs": [
"613EF17D49C4B6CD93268D9EC7E2740F",
"9952A0F144015DC2301F94A82552E378",
"98286E134C9D7BE6A91823A2A6880EED"
]
}

命令行启动

我为UE Launcher支持了命令行启动,可以把它当作一个调度器,通过配置文件启动,而不用考虑手动指定引擎版本。

具有以下三个参数:

  • -e:Edit,创建窗口编辑配置
  • -c:Commandline,通过命令行方式启动配置
  • -g:Generate Config,通过传递进来的uproject生成uejson
1
2
3
4
5
6
# 编辑配置
UE4Launcher-Win64-Shipping.exe -e LaunchConf_FGame.uejson
# 命令行启动配置
UE4Launcher-Win64-Shipping.exe -c LaunchConf_FGame.uejson
# 生成uejson
UE4Launcher-Win64-Shipping.exe -g D:\UnrealProjects\Client\Client.uproject

基于提供的命令行的方式可以实现基于配置文件启动预设命令。

Update & Download

v0.22

  • 支持拉起UnralBuildTool生成sln(UE4/UE5)
  • SEditableBoxWraper支持选择文件
  • 支持打开引擎目录

v0.21

  • 支持启动rider打开sln
  • 优化布局

下载地址:UE4Launcher_v0.21

v0.20

将UELauncher扩展为了支持配置列表的工具,能够非常方便地在配置间切换,使用预设功能。

  • 支持添加全局配置
  • 支持启动时自动读取全局配置
  • 自适应宽度
  • 支持单独加载全局配置、刷新、删除
  • 重新设计布局
  • 默认添加IPhonePackager工具

下载地址:UE4Launcher_v0.20

v0.18

  • 支持了UE5引擎和项目的启动

下载链接:v0.18

v0.17

Download Link

  • 添加启动工具的配置化
  • 优化配置的json结构

现在可以不用修改代码来添加UE的其他工具了,第一次启动时会在UE4Launcher.exe所在的目录下生成一个LaunchTools.json的文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
"LaunchTools": [
{
"ToolName": "UE4Editor",
"PreArgs": "",
"BinPath": "Engine/Binaries/Win64"
},
{
"ToolName": "UE4Editor-cmd",
"PreArgs": "",
"BinPath": "Engine/Binaries/Win64"
},
{
"ToolName": "UnrealFrontend",
"PreArgs": "",
"BinPath": "Engine/Binaries/Win64"
},
{
"ToolName": "NetworkProfiler",
"PreArgs": "",
"BinPath": "Engine/Binaries/DotNET"
}
]
}

这是默认的四个工具,可以按照相同的格式在这里添加。

参数说明:

  • ToolName:该工具的exe名,去掉后缀;
  • PreArgs:启动时默认传递什么参数;
  • BinPath:相对于引擎的路径;

v0.16

Download Link

  • Fix bugs
  • Support launch project sln with Visual Studio

v0.15

Download Link

  • Fix bugs
  • Ignore project and launch params when just selected program.
  • Support Launch UnrealFrontend and NetworkProfiler and custom additional tools

v0.14

Download Links

  • Fix bugs
  • Add installer icon.
全文完,若有不足之处请评论指正。

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

本文标题:开源一个虚幻引擎启动器UE Launcher
文章作者:查利鹏
发布时间:2021年11月10日 14时17分
本文字数:本文一共有2.1k字
原始链接:https://imzlp.com/posts/3635/
许可协议: CC BY-NC-SA 4.0
文章禁止全文转载,摘要转发请保留原文链接及作者信息,谢谢!
您的捐赠将鼓励我继续创作!