UE GAS进阶-深入GE

💡 原文中文,约13200字,阅读约需32分钟。
📝

内容提要

本文深入解读了GE的细节,包括Duration Effect、GE的猜测、Stack Effect的原理和扩展GE功能。文章介绍了GE的生成和激活过程,以及GE对特点、标签、技能和Cue的影响。此外,文章还介绍了如何扩展GE的功能,如根据特点条件增加或移除GE。最后,文章讨论了如何使用自定义通道来支持多个通道。

🎯

关键要点

  • 本文深入解读了GE的细节,包括Duration Effect、GE的猜测、Stack Effect的原理和扩展GE功能。
  • Duration Effect是通过ApplyEffect生成实例FActiveGameplayEffect,并存储在ASC的ActiveContainer中。
  • GE的激活与封闭通过InternalOnActiveGameplayEffectAdded函数完成,激活GE会产生实际作用。
  • GE可以通过特定的tag条件激活或封闭,使用TargetTagRequirementGameplayEffectComponent来实现。
  • GE的作用包括影响Attribute、Tag、Ability和Cue,Attribute的current值由多个Mod共同影响。
  • GE的扩展功能可以通过GE Component实现,例如根据特定条件增加或移除GE。
  • GE的堆叠通过ApplyGameplayEffectSpec函数处理,支持overflow和更新堆叠数量。
  • GE的预测机制通过PredictionKey实现,客户端和服务器的GE行为是独立的。
  • 可以通过CustomChannel实现多个Channels的支持,允许更复杂的属性计算。
  • 作者分享了个人经历和对游戏行业的看法,强调了努力和环境的重要性。

延伸问答

Duration Effect是如何产生效果的?

Duration Effect通过ApplyEffect生成实例FActiveGameplayEffect,并存储在ASC的ActiveContainer中,激活后才会产生实际作用。

GE的激活和关闭是如何实现的?

GE的激活和关闭通过InternalOnActiveGameplayEffectAdded函数完成,激活GE会产生实际作用,而关闭则不会移除GE。

GE如何影响角色的属性?

GE通过AddActiveGameplayEffectGrantedTagsAndModifiers函数影响角色的Attribute、Tag、Ability和Cue,修正角色的Attribute的Current值。

如何扩展GE的功能?

可以通过GE Component实现扩展功能,例如根据特定条件增加或移除GE,或激活和关闭GE。

GE的堆叠是如何处理的?

GE的堆叠通过ApplyGameplayEffectSpec函数处理,支持overflow和更新堆叠数量,处理完overflow后会更新StackCount。

如何使用自定义通道支持多个通道?

可以在DefaultGame.ini中配置多个Channels,最多支持10个,通过创建GE时选择Channel来实现不同的属性计算。

➡️

继续阅读