Gameplay技能系统

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

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都应具有技能系统组件。

Select Skin
Light
Dark

欢迎来到全新虚幻引擎4文档站!

我们正在努力开发新功能,包括反馈系统,以便您能对我们的工作作出评价。但它目前还未正式上线。如果您对此页面有任何意见与在使用中遭遇任何问题,请前往文档反馈论坛告知我们。

新系统上线运行后,我们会及时通知您的。

发表反馈意见