[UE]Mod生态个人向分享

    虚幻Mod开发方向/难易程度,以幻兽帕鲁(ue5.1.1)为例介绍

我在2024年1月左右接触mod,此间无任何游戏开发经验/Mod基础,但是我有逆向和算法的基础,对于实现逻辑,分析内容会有一定优势。同时我没有任何美术mod经验,所以我是在这种基础下评估的难易程度,同时,我将以我完成的部分效果做一个参考;当然,给大家一个概念总览,至于具体教程,如果可以未来我会出一些,并带着下面的这些案例。

1.最容易的Mod  配表修改,推荐大家以此入门 【此类mod制作时间大约不超过10分钟】

配表修改的本质是资产替换,UE框架下有一系列的资产,其中数据表格DataTable也属于资产,这类资产的作用让开发更清晰,高度解耦,配置性强,同时作为mod修改也更容易了。

资产替换的本质就是借助ue加载资产的机制,将新的替换后的资产被游戏加载使用。

举个例子,修改帕鲁的种族值,属性,速度等各类属性值,修改技能/被动效果,如上述所说,修改商店出售内容等等等,只要在配表里写了的,都可以修改。网络上有方便的修改工具,例如UassetGui,而对于帕鲁,还有一些更低门槛的帕鲁配表修改框架[Palschema]。如果您和我一样有一定编码能力,也可以使用Cue4Parse等库去实时热更修改,或者快速的静态修改。

2.比较适合入门的Mod  美术资产替换,推荐大家以此入门 【此类Mod制作时间可以几分钟,也可以很长,本质还是资产的准备】

最熟悉的Mod类型,改模即是资产替换,最广为人知的是替换骨骼网格体,也就是所谓的模型,当然你还可以替换贴图,材质,混合空间,动画,静态网格体等一切美术资产,原理和配表其实是一样的,不过你一定要注意好资产的引用关系,尤其是材质可能与游戏本身父类材质相关。 美术资产替换也有一些引擎的限制,大多也体现在材质shader上,目前来看如果对ue理解不深的,适合替换骨骼网格体。 替换几个之后,你会发现是很简单的,工作量基本是在准备资产上,比如你想要替换一个精细的模型,你花很多时间预处理,或者甚至全流程替换【模型,动画等一条龙,但是这个往往需要有编程或蓝图植入的能力,因为触发动画对接游戏也是全流程替换的一部分】

3.比较推荐的逻辑类的Mod  资产植入/蓝图模组【此类Mod制作时间完全根据逻辑难度来,但是作为蓝图模组,实现一个子模块效果并生效,一般1小时左右就能做出一个效果】

蓝图,也是ue的一种资产,此资产专注于游戏的gameplay开发,使得没有编程基础的人异能很快适应(我有编程基础,没学过蓝图直接上手直接会用,是真的) 读到这里的你只需要知道蓝图能实现逻辑,并且学习一下蓝图即可。

学习蓝图后,你会发现不知所措,蓝图怎么加入游戏在游戏中生效呢

我提供3个方案

第一种-动画蓝图植入,ue的骨骼网格体都可以创建动画蓝图,且会在生成后引用,前面说了资产之间有严格的引用关系,在某个骨骼网格体(例如主角一定生成)生效后,动画蓝图也会被加载,这里我更推荐绑定在武器上,武器用骨骼网格体大多是为了和手部绑定。

动画蓝图有事件/动画图表,在事件图表中也是能正常加载蓝图的,在事件图表中完成你的逻辑吧

第二种-Ue4ss ModActor,前者利用资产替换的方法引入自己的蓝图,蓝图在加载新的资产或者逻辑等等,有2个缺陷,1个是依赖骨骼网格体,并修改骨骼网格体的动画蓝图,2是与游戏内部内容难以对接,常见的就是写了一个枪支蓝图,却无法造成伤害,除非黑猴这种am与伤害高度绑定的,但是不可能所有游戏一致,又或者你要对接其他逻辑无能为力。 ue4ss方便你加载自己的蓝图还维护的很清晰,同时他也能在集成sdk的条件下开发,这样一来,你的蓝图可以和游戏内部逻辑相关。


第三种-逆向hook资产读取器,第三种方案门槛高,你要对内存中的函数进行操作,可能需要了解ue的生态,函数地址以及调用它,不过间接的,你也可以用Ue4ss提供的c++,lua框架找到引擎的函数们去使用,不论如何,编码的基础和阅读都是需要的,当你了解这些,热加载也成为了可能,你也可以直接在代码层面结合蓝图,不过这样子难度过高,结合方案也不一定时这一种,后续我会提供更好的方案

在游戏中植入蓝图,把自己做的动画加入游戏里

4.以游戏逆向工程为基础而提供的ue游戏框架模组开发 推荐有代码基础的逻辑mod使用这个方案

大部分时候,大部分逻辑功能3和4都能实现。4的逻辑更清晰,更高效,同时不需要下载引擎准备资产,3更安全,没有代码维护能力使用4的出bug概率过大,很多引擎帮你做的事,在4中需要你维护好。

常见的有ue4ss,根据游戏类型,还可能出现C#,js等语言的工具,因游戏开发使用的架构而定,这些框架由其他开发者提供,而对于逆向困难的朋友,通过这些框架,你只管写逻辑,这里我之前的专栏有提到,比如ue4ss lua入门似乎没有那么困难

在我接触ue4ss lua mod之后,实现一些整活功能会非常快速,没有编码经验的还是建议选择3,有编码经验的可以选择这个,当然你愿意额外学习,ue4ss和蓝图mod适合共同工作,这也是他们官方推荐的。

具体开发难度根据内容而定,有些要翻阅很多函数,结构,有些则很粗暴。越粗爆,越简单,更适合入门,比如风灵类似的功能都更简单,可以优先制作,又比如框架化的,比如帕鲁添加被动,技能,生成帕鲁等等 推荐大家从我举得例子开始玩逻辑mod

5.逆向工程 【当你有执着的需要实现的功能时,才需要选择这个】

一般,绝大多数mod上述都可以实现。当然,在依靠游戏本身的函数,依靠第三方提供,依靠高度封装的蓝图等,一定也有一些特例。我想举几个例子

帕鲁中释放帕鲁,他是一个完整的函数,这个函数包装了收回/释放,切换帕鲁等逻辑,只调用这个函数,你永远也无法让帕鲁多个在场上。

借助蓝图,借助ue4ss dump的函数,你无法实现幻兽帕鲁专属技能的移植,或者更厉害的把两个技能合并在一起,作为某个帕鲁的技能【如我的视频中移植的苍穹·光束彗星】

这时候,你需要逆向工程分析相关函数,根据汇编查看数据的变化等等,网络上也有很多相关工具,例如CE,UE特例的Dumper工具等,分析完毕,如果你了解了原理,可以用上述工具继续实现修改(帕鲁多跟随),实现不了的,就得用第三方程序注入来自己实现功能了(苍穹·光束彗星移植给额外帕鲁)

逆向工程是最彻底的,也是最通用的,不过并不是所有游戏的终极方案选择他。对于黑神话悟空,由于其特性(Usharp实现逻辑),可以看成这是一个UE“前端",C#"后端"的游戏,再由于C#在windows平台上轻松反编译的特性,该游戏有作者提供了属于4的工具C#Loader,也因为此特性,游戏的逻辑函数是全部暴露的,你可以在函数内修改,如果只用ue4ss,那就只能调用固定函数啦,所以特殊游戏,确实有巧题巧解


Mod入门还是很快的,更重要的是多交流。在我很多mod友间互相学习帮助也收获了很多,请不要封闭自己,也不要觉得开发mod有难度!!!

by 祈拉之之影 发布于 2025-02-16
若有附件,打赏后可直接下载 赠人玫瑰 手留余香
默认
最新


1