SuperAPI AI 工具集

unreal-systems

编程与开发

查看项目

更新于 11-01 17:15

技能介绍

用途:该技能用于指导 Unreal Engine 5 游戏玩法系统的架构与实现,重点覆盖 C++/Blueprint 分工、Gameplay Ability System、Nanite 几何和 Lumen 全局光照。资料说明其适用场景是使用 C++、Blueprint 或 GAS 开发 Unreal Engine 玩法时使用。 主要能力:资料围绕三大技术支柱展开。其一为 Nanite(虚拟化微多边形几何),其二为 Lumen(实时动态全局光照与反射),其三为 Gameplay Ability System(GAS)。在 C++ 与 Blueprint 的分工上,资料给出的原则是:数学、算法逻辑、数据结构、多人网络、文件 I/O、基础 Actor 类和 Gameplay Ability Task 放在 C++;视觉组装、动画状态机挂钩、音频/粒子表现绑定和快速迭代调参放在 Blueprint。资料强调不要使用纯 Blueprint Actor,所有生产用 Blueprint Actor 都应派生自自定义 C++ 基类(如 AMyGameCharacter -> BP_MyGameCharacter),而不要直接从引擎原生类派生。 GAS 架构:资料列出核心组件:UAbilitySystemComponent(ASC)挂在能使用能力的角色上;UAttributeSet 管理数值属性(如 Health、Stamina、Armor),并带钳制与修改钩子 PreAttributeChange() 与 PostGameplayEffectExecute();FGameplayTag 提供层级化标识用于状态与分类(例如 State.Debuff.Stunned、Ability.Melee.HeavyAttack);Gameplay Effect 是数据驱动的属性修改(即时伤害、持续增益、周期中毒);Gameplay Ability 是通过 Ability Task 执行的动作(如 PlayMontageAndWait)。资料附带一个 AttributeSetBase 的 C++ 头文件示例,使用 ATTRIBUTE_ACCESSORS 宏声明 Health 与 MaxHealth 等属性,并重写上述两个钩子。 Nanite 规范:资料建议直接导入高模 ZBrush 雕刻(100 万至 1000 万三角面)而无需手动生成 LOD;同时指出约束:早期 UE5 版本的 Nanite 不支持非刚性形变的骨骼网格(角色),因此应保留给静态网格与刚性植被;Nanite 几何上应避免复杂的遮罩/半透明材质,否则会触发软件光栅化回退。 Lumen 优化:资料区分软件光追(默认,使用网格距离场与全局距离场,在主机上性能较好)与硬件光追(需要 DX12 与支持光追的 GPU 硬件)。网格距离场卫生方面,要求所有静态网格具备流形、双面几何且无开放背面,以防止光从墙体泄漏。 案例:资料给出一个 4 人合作动作 RPG 的例子:陨石风暴能力在客户端造成 14ms 掉帧。在 Unreal Insights 中定位到该能力完全由 Blueprint 编写,生成 80 个 Blueprint Actor,各自执行 Tick 和大量 Cast 操作。优化方式是把陨石风暴迁移为 C++ UGameplayAbility 并使用异步 UAbilityTask,用批量 Gameplay Effect 经由 Gameplay Tag 直接作用于敌人 ASC,替代 Actor 生成。结果为能力激活帧时间从 14ms 降至 0.18ms,无卡顿。 验证清单与反模式:清单包括:所有玩法类继承自定义 C++ 基类而非原生引擎类型;属性使用 ATTRIBUTE_ACCESSORS 宏并安全钳制数值;状态转换通过层级化 GameplayTag 编排;高模静态环境网格启用 Nanite;网格距离场在 Lumen 可视化视图中干净生成且无漏光。反模式包括:在高频 Blueprint Tick 中使用 Cast(如在 Event Tick 里 Cast To BP_Character,破坏 CPU 缓存局部性);在 Blueprint 中硬引用重资产(如直接引用大纹理或音频,导致打开关卡时整棵资产树被加载进内存);绕过 Ability System Component 直接用 Setter 改生命值,从而跳过增益、护盾与减伤规则。 使用方式与限制:资料以架构原则、步骤、代码片段与检查清单形式呈现,未提供安装命令、工具调用方式或平台收费信息,这些暂未提供。