美文网首页
GAS - Gameplay Effect

GAS - Gameplay Effect

作者: 珏_Gray | 来源:发表于2019-03-21 16:34 被阅读0次

    Overview(概览)

    Gameplay Effects are the Gameplay Ability System's way to change Attributes.
    Gameplay Effects是GAS中改变Gameplay Attribute值的方式。包括:

    • 直接改变Attribute的base value,比如扣除Actor的生命值
    • 暂时改变(Buff or Debuff),比如几秒内增加移动速度
    • 一段时间内的持续改变,如每固定数秒(或随机)回复魔法值。

    Gameplay Effect是纯数据(data-only)的(继承自UGameplayEffect),可以高效地replicate,与ability不同,通常我们不会拓展gameplay effect类,因为引擎提供的基本够用了。在代码中,你几乎不会看到gameplay effect的引用,蓝图中则更不可能见到。为了使用GameplayEffect你更常见的GameplayEffectSpec,它包含了使用Effect的上下文信息。通常使用gameplay effect有两种方式:一是直接通过ability应用,二是通过GameplayEffectSpec实例。

    Major Properties(主要属性)

    我们通过配置gameplay effect的各个属性值来实现特定的效果。以下是一些重要的属性:

    • Duration Policy(持续方式): 三种:Instant(瞬间施放,如受到攻击,减少血量)、Infinite(永久的,如随着时间自动回蓝)、HasDuration(有时限的,如暂时性buff)。
      Duration Policy
    • Modifiers(修改符): 配置effect如何修改attribute值。可以修改多个值,配置各种不同的修改符,也可以通过Curve Table来改值。

      Modifiers
    • Executions(修改符): 如果modifier中提供的操作无法满足需求,则自定义UGameplayEffectExecutionCalculation来实现需求,如复杂的计算等行为。

    • Application Requirement(施放条件): 默认提供了application tag requirement和施放概率。可以自己拓展UGameplayEffectCustomApplicationRequirement

    • Granted Abilities(获得技能): Gameplay effect除了可以给actor添加gameplay tag外,还可以使其获得额外ability。比如被火球魔法击中后,你会获得“着火”的能力,该能力会持续伤害到周边的Actor。

    • Stacking & Overflow(叠加和溢出): 技能效果可以叠加,也可能会溢出,可以通过配置进行管理。

    • Gameplay Cue Display(Gameplay Cue展示): gameplay cue具有很高的网络性能,用以播放装饰性效果,如粒子、声音特效。

    例子: Gameplay Effect - Cooldown

    Ability-SayHello

    上图是一个简单的say hello的能力,红箭头处可以添加一个gameplay effect。当该能力执行结束了,会自动应用蓝圈处配置的cooldown gameplay effect,在该effect结束前,不能再使用该能力。


    Gameplay effect - cooldown

    上图红圈部分设置了该冷却效果的时间(时长为5s,Period中的配置不会影响效果,是否会带来优化则不明),蓝圈中则是该效果的核心部分,在效果持续期间,actor会获得一个标签,这个标签可以阻止之前say hello技能的释放。

    相关文章

      网友评论

          本文标题:GAS - Gameplay Effect

          本文链接:https://www.haomeiwen.com/subject/fqkqvqtx.html