Gameplay技能系统

对Gameplay技能系统的高层次解读。

Choose your operating system:

Windows

macOS

Linux

Gameplay技能系统 是一个高度灵活的框架,可用于构建你可能会在RPG或MOBA游戏中看到的技能和属性类型。你可以构建可供游戏中的角色使用的动作或被动技能,使这些动作导致各种属性累积或损耗的状态效果,实现约束这些动作使用的"冷却"计时器或资源消耗,更改技能等级及每个技能等级的技能效果,激活粒子或音效,等等。简单来说,此系统可帮助你在任何现代RPG或MOBA游戏中设计、实现及高效关联各种游戏中的技能,既包括跳跃等简单技能,也包括你喜欢的角色的复杂技能集。

技能、任务、属性和效果

Gameplay技能 实为继承自 UGameplayAbility 类的C++类或蓝图类。其定义C++代码或蓝图脚本中技能的实际作用,并建立处理技能的元素,如复制和实例化行为。

在定义技能的逻辑过程中,gameplay技能中的逻辑通常会调用一系列被称为 技能任务 异步编译块。技能任务衍生自抽象 UAbilityTask 类,以C++编写。其完成操作时,会基于最终结果频繁调用委托(C++中)或输出执行引脚(蓝图中)(例如,需要目标的技能需进行"瞄准"任务,将调用一个委托或输出引脚确认目标,并调用另一引脚取消技能)。

除Gameplay技能外,Gameplay技能系统还支持 Gameplay属性 Gameplay效果 。Gameplay属性是存储在 FGameplayAttribute 结构中的"浮点"值,将对游戏或Actor产生影响;其通常为生命值、体力、跳跃高度、攻击速度等值。Gameplay效果可即时或随时间改变Gameplay属性(通常称为"增益和减益")。例如,施魔法时减少魔法值,激活"冲刺"技能后提升移动速度,或在治疗药物的效力周期内逐渐恢复生命值。

与Gameplay技能系统交互的Actor须拥有 技能系统组件 。此组件将激活技能、存储属性、更新效果,和处理Actor间的交互。启用Gameplay技能系统并创建包含技能系统组件的Actor后,便可创建技能并决定Actor的响应方式。

系统设置

由于Gameplay技能系统是一个插件,因此你需要先启用它才能使用。只需两步即可启用它:

  • 编辑(Edit) -> 插件(Plugins) 窗口中启用Gameplay技能系统插件。
    GameplayAbilitySystem_Plugin_00.png

  • 要使用此系统的全部功能,添加"GameplayAbilities"、"GameplayTags"和"GameplayTasks"到项目的"(ProjectName).Build.cs"文件中的 PublicDependencyModuleNames 中。这很容易做到,只需找到公用模块列表:

PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "HeadMountedDisplay" });

要使用Gameplay技能系统,将上述三个模块名称添加到花括号列表中的任意位置,如下所示:

PublicDependencyModuleNames.AddRange(new string[] { "GameplayAbilities", "GameplayTags", "GameplayTasks", "Core", "CoreUObject", "Engine", "InputCore", "HeadMountedDisplay" });

技能系统组件是游戏中的角色访问Gameplay技能系统的主要接口。此组件管理Gameplay属性,运行Gameplay事件,存储Gameplay技能,甚至处理玩家输入到Gameplay技能激活、确认及取消命令的绑定。任何要与Gameplay技能系统交互的Actor都应具有技能系统组件。

欢迎帮助改进虚幻引擎文档!请告诉我们该如何更好地为您服务。
填写问卷调查
取消