UE4SS项目在《First Dwarf》游戏中的FText构造函数AOB扫描问题分析

UE4SS项目在《First Dwarf》游戏中的FText构造函数AOB扫描问题分析

问题背景

在UE4SS项目(一个用于Unreal Engine游戏脚本扩展的工具)与《First Dwarf》游戏(基于Unreal Engine 5.4.2开发)的兼容性测试中,发现了一个与FText构造函数相关的技术问题。当使用UE4SS的不同版本(包括3.0.1、zDEV-UE4SS_v3.0.1-137及最新构建版本)时,游戏在Lua扫描阶段会出现崩溃现象。

问题表现

测试过程中观察到的具体现象包括:

  1. UE4SS 3.0.1版本直接报告"Engine Version not supported"并退出
  2. 其他版本能够启动Lua扫描,但会立即导致游戏崩溃
  3. 所有测试版本都需要自定义的FText_Constructor.lua文件才能运行

技术分析

通过分析提供的日志和崩溃转储文件,可以确定问题的核心在于FText构造函数的AOB(Array Of Bytes)模式扫描失败。AOB扫描是UE4SS用来定位游戏内存中特定函数的技术手段,对于不同游戏版本或编译选项,这些字节模式可能会发生变化。

在《First Dwarf》这个特定案例中,原始提供的AOB模式与游戏实际内存布局不匹配,导致扫描失败并引发崩溃。这种问题在UE4SS与较新Unreal Engine版本(如5.4.2)的适配过程中较为常见,因为引擎内部实现可能有所变化。

解决方案

问题最终通过修正FText_Constructor.lua文件中的AOB模式得到解决。修正后的AOB模式能够准确匹配《First Dwarf》游戏中FText构造函数的内存特征,使UE4SS能够正常完成初始化过程。

对于遇到类似问题的开发者或用户,建议采取以下步骤:

  1. 使用x64dbg等调试工具分析游戏内存
  2. 确认目标函数的实际字节模式
  3. 更新自定义配置文件中的AOB模式
  4. 逐步测试以确保兼容性

经验总结

这个案例展示了UE4SS项目在实际应用中的几个关键点:

  1. 不同Unreal Engine版本可能需要特定的适配工作
  2. AOB扫描的准确性对工具稳定性至关重要
  3. 自定义配置文件是解决兼容性问题的有效途径
  4. 调试工具与内存分析技术在问题诊断中发挥重要作用

对于希望将UE4SS应用于其他UE5.4.2游戏的开发者,这个案例也提供了有价值的参考经验。建议在遇到类似问题时,优先考虑检查并更新相关的AOB模式定义。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值