GAS - Gameplay Cue


Overview

gameplay effect的文中提到gameplay cue主要负责释放技能效果时的表现。因为相关资料缺乏,这里只介绍很基础的东西和一种简单的使用方式。

Gameplay Cue Editor

GameplayCueEditor

当勾选Gameplay Abilities插件后,在视窗菜单内会出现GameplayCue Editor项,在这里可以统一管理项目中所有的Gameplay Cue

GameplayCue Tag

注意到上图菜单中的列表(图中为空表)有两列,分别为Tag和Handler。其中Tag是特殊的Gameplay Tag,它必须以"GameplayCue"为根标签。可以直接点击Add New添加tag。也可以到Project Setting的Gameplay Tags窗口中管理Tag。只有是根标签为"GameplayCue"的tag都会被自动识别并添加到Gameplay Cue Editor窗口中。Tag的作用是和Handler关联。使用时依靠tag来确定播放哪一个gameplay cue。

添加一个标签

GameplayCue Handler

添加tag后,我们可以直接点击Handler栏下的Add New创建新的Handler。


Handler主要分为两类:
1、GameplayCue Notifies: 有static和actor,即不可实例化和可实例化之分,它们的区别此处不赘述了,可以参考Gameplay Ability的Instancing Policy理解。但是创建后引擎会提示将该blueprint移动到Game/GameplayCueNotifies文件夹中(就是在Content目录下创建一个GameplayCueNotifies文件夹),这应该涉及到引擎的资源管理,我会再开篇写UE4的资源管理部分,现在照提示移动资源即可。
2、Custom BP Event: 伙伴们自己尝试吧。

使用Gameplay Cue的一个例子:

在ActionRPG中,我们为回血药剂效果添加一个Gameplay Cue播放粒子效果。



在创建好的GC_OnFire中我们重载OnExecute方法并添加简单逻辑:



接着再在GE_PotionHealth设置:

进入游戏,当我们使用回血药剂就会着火了:


注意: Gameplay Cue 可以由 GameplayAbilities 和 GameplayEffects触发。我们主要通过重写四个方法(C++ 或 蓝图都可):On Active、While Active、Removed和Executed(只被Gameplay Effects使用)来实现功能。

The Gameplay Cue Manager executes Gameplay Cues. Actors can respond to Gameplay Cues by implementing the IGameplayCueInterface and having a function whose name matches the Gameplay Cue's tag. Standalone Gameplay Cue Notify Blueprints can also respond to Gameplay Cues.

上面例子就是使用了Gameplay Cue Notify。使用接口的方法有待尝试(应该就是类似BP的Custom Event了)。

补充说明:当按照上面例子使用Gameplay Cue Notify时,Gameplay Cue中各函数的调用,与gameplay effects的时间设置(duration policy)有关。比如effect为Instant时,只会调用OnExecute()。

你可能感兴趣的:(GAS - Gameplay Cue)