GameplayAbility [Effects]——[BUFF执行体]

    Gameplay Effect是修改Gameplay Ability Atributes的方式:
    1.直接修改Attribute的基础值
    2.临时的变化,增益效果,减益效果
    3.随着时间推移持续性的永久性修改,每秒回血之类

    这个是直接与Gameplay Ability System Component组件交互的,可以被组件激活。

    来自官方翻译:

    主要财产

    与游戏性能力系统的大多数其他部分不同,游戏性效果通常不会覆盖基本类,UGameplayEffect无论是本机代码还是蓝图代码。相反,游戏效果被设计为纯粹通过变量进行配置。以下是您可以调整的游戏性效果的些主要属性:

    持续时间:

    游戏效果可以在有游戏效果可以在有限的时间内(例如持续几秒钟的移动速度提升)立即应用(例如受到攻击时生命减少),或无限期(例如角色随着时间的推移自然地重生魔法点)。此外,具有非即时持续时间的效果也可以以不同的间隔应用。这不仅有助于改变效果在游戏玩法方面的工作方式,还可用于设置重复音频或视觉效果等时序。

    修饰符和执行:

    修饰符确定游戏性效果如何与属性交互。这包括与属性本身的数学交互,例如“增加5%的护甲等级”以及执行效果的游戏性标记要求。当游戏效果需要做一些超出Modifiers支持的东西时,Executions可以提供帮助。执行使用它UGameplayEffectExecutionCalculation来定义游戏性效果在执行时将具有的自定义行为。这些对于定义修饰符未充分涵盖的复杂方程特别有用。

    应用程序要求:

    应用程序要求包括为了应用游戏效果而需要(或禁止)存在的游戏玩法标签集,以及不适用游戏玩法效果的随机机会。如果这些要求不足以满足您的游戏需求,您可以从UGameplayEffectCustomApplicationRequirement基类派生数据对象,您可以在其中编写定义任意复杂应用程序规则的本机代码。

    授予能力:

    游戏效果可以在申请时授予能力,而不仅仅是游戏玩法标签。当与Executions结合使用时,这些可用于设置高度特定的游戏玩法组合。例如,一个玩家以火焰为主题的游戏玩法效果,同时拥有游戏玩法标签或属性,表明玩家浸泡在油中可以获得“火上”的能力,被动地伤害附近的演员,并具有粒子和视觉效果动态光,接下来的十秒钟。

    堆叠:

    “堆叠”指的是将buff或debuff(或游戏性效果,在这种情况下)应用于已经携带它的目标的策略,以及处理称为溢出的情况,其中应用了新的游戏效果对于已经完全饱和原始游戏效果的目标(例如构建的毒计,只有在溢出后才会导致一次性损坏)。系统支持各种堆叠行为,例如在阈值被破坏之前构建,保持“堆栈计数”随着每个新应用程序增加到最大限制,在限制时间效果上重置或附加时间,或者只需使用个别计时器独立应用效果的多个实例。

    游戏玩法提示显示:

    游戏玩法提示是一种网络效率的方式来管理你可以用游戏能力系统控制的美化效果,如粒子或声音。游戏性能和游戏性效果可以触发它们,并且它们通过四种主要功能起作用,这些功能可以在本机或蓝图代码中被覆盖:在活动,活动,删除和执行时(仅由游戏效果使用)。所有游戏玩法提示必须与以“GameplayCue”开头的游戏玩法标签相关联,例如“GameplayCue.ElectricalSparks”或“GameplayCue.WaterSplash.Big”

    综合这些,基本就是BUFF,里面可以配置该Effect的特性和规则。

    看一下主要接口:

    
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    UCLASS(Blueprintable, meta = (ShortTooltip="A GameplayEffect modifies attributes and tags."))
    class GAMEPLAYABILITIES_API UGameplayEffect : public UObject, public IGameplayTagAssetInterface
    {
    //buff的主要策略,分为即时,持续,持续可自定义
    UENUM()
    enum class EGameplayEffectDurationType : uint8
    {
        /** This effect applies instantly */
        Instant,
        /** This effect lasts forever */
        Infinite,
        /** The duration of this effect will be specified by a magnitude */
        HasDuration
    };

        /** 配置buff的策略 */
        UPROPERTY(EditDefaultsOnly, Category=GameplayEffect)
        EGameplayEffectDurationType DurationPolicy;
    }
    有帮助就分享一下吧!

    转载请注明:少狼 – 敬畏知识的顽皮狗 » GameplayAbility [Effects]——[BUFF执行体]

    喜欢 1

*

还没有人抢沙发呢~