根据 UHT 头文件创建类

根据 UHT 头文件创建类

取得 UHT 头文件后,可以在 Unreal Engine 项目中重建相关类,再在蓝图 Mod 中使用其类、变量、方法和数据对象。本指南展示一个类及其变量和方法的基本处理方式,不涵盖所有情况。

本译文将原教程的游戏事件示例改写为中性的角色属性示例;类名和技术步骤保留原文。具体字段和调用方式应以目标项目为准。

查找所需的类

先确定 Mod 要使用的类、方法和变量。查看玩家蓝图后,可以发现示例中的角色属性来自父类 BaseCharacter。

在 FModel 中查看玩家蓝图

查看角色父类的声明

假设已经导出 UHT 头文件,查找该类对应的 BaseCharacter.h。如果还没有头文件,先参考使用 UE4SS 导出 UHT 头文件。在头文件中查找需要的获取和设置方法,例如获取属性上限与设置属性的方法。

在头文件中查找方法

在 Unreal Engine 中创建类

如果无法查看或添加 C++ 类,原文提示需要重新创建启用 C++ 的项目。

  1. 打开 UE 项目,选择 File → New C++ Class。
  2. 将父类设为 Character。父类可从头文件的类声明中查看;如果列表中没有该父类,沿继承关系向上查找,直到找到原生 UE 类。
  3. 点击 Next,类名必须与头文件完全一致。
  4. 选择 Public,点击 Create Class。

选择 Character 作为父类

根据项目规模,可以重建完整继承链,也可以直接连接到原生基类。例如完整重建 ClassA → ClassB → Character,或跳过中间类,使用 ClassA → Character。选择哪种方式取决于项目对中间类的依赖。

编辑头文件并编译

  1. 创建类后,Visual Studio 会打开,并生成与类名对应的 .cpp 和 .h 文件,如 BaseCharacter.cpp 与 BaseCharacter.h。
  2. 原文要求在 .cpp 中只保留 #include "BasePlayer.h"。这里的名称与前面的 BaseCharacter 不一致,实际操作时应核对生成的文件与包含路径,避免照搬错误名称。
  3. 在 .h 文件中移除创建类时自动添加、此处不需要的方法和变量。

整理新建类的头文件

  1. 按导出的头文件添加相同的类标签,注意每个声明的字段和标签。

对照导出头文件添加类标签

  1. 添加需要使用的方法和变量。

对照头文件添加方法和变量

原文的占位实现示例是:布尔值返回 {return false;};,浮点数或整数返回 {return 0;};,void 方法使用 {};。如果涉及自定义类型,需要先重建该类型。这些只是占位实现,不能替代目标游戏的真实逻辑。

在 Solution Explorer 中右键项目名称,选择 Build Solution。若构建成功,输出窗口会显示成功结果;构建失败可能有多种原因,需要检查具体错误。

在 Visual Studio 中构建解决方案

构建成功的输出

在蓝图中使用

回到 Unreal Engine 编辑器,打开 Mod 蓝图。现在可以在对应类中访问重建的变量和方法。示例将玩家角色转换为 BaseCharacter,随后访问该类的 C++ 成员。

在蓝图中转换角色并访问类成员

原文在特定游戏事件中根据可配置百分比调整角色属性;此处为符合站点内容要求,仅保留通用实现思路。实际行为要在项目中单独验证。

来源:Dmgvol / UE_Modding 原文。