[UE5] GASやGameplay Tagについてのメモ
(学習の傍らにとっているノートです)
Gameplay関連システムを用いた全体的な流れ
C++/ブループリント
- UE5.1(2023年1月22日)の時点ではGameplay Tag、Ability、Cue、Taskの主要機能がブループリントノードのみで扱える(C++を書かなくても機能の恩恵を受けられる)ようです。
- AttributesとEffectsについてはC++などで一部定義を書く必要があるようです。
- また、Abilityなどのブループリントノードに対応しているものであってもC++側でしか実装されていないメソッドなどがあるようです。
- 4系など昔のUEバージョンではAbility System Componentが持っているGameplay Tags Containerを使わない(当時実装されていなかった?)解説動画や記事などが多く存在しているようです。
- 5系はGameplay Tags Containerおよびそれを取り扱うノードの起点はAbiitySystemから引っ張ってこれるのでそれを組み合わせた解説が多い。
Get Actor Info
=> Gameplay Ability Actor Info構造体
Gameplay Cue
デバッグ用
Tags Containerの中身を見る
「Master.Child,Master.Child2」のような文字列に一発変換してくれる
ノード
Get Owned Gameplay Tags
特定のGameplay Tag Assets Interfaceを引数にGameplay Tags Containerを得ることができる。
Gameplay Tag Assets InterfaceはAbilitySystemが持っている。
AbilitySystemを引数にするため「Owned」というのはActorにセットされたAbilitySystemの中にあるTags Containerのことを指しているようです。
Add/Remove Gameplay Tag
特定のGameplay Tags Containerに対して、指定したタグを追加/削除する。
タグの親子関係によっては上書きされたようになる。
Add/Remove Loose Gameplay Tags
特定のアクターに対してゲームタグを紐づける。
AbilitySystemComponentを付与されたActorに対して実行するようです。
Wait Gameplay Tag
Ability
TryActivateAbility
アビリティを実行する際に使用
ActivatableAbilities
ここから「GameplayAbilitySpec」を取り出して現状を把握する
Give Ability
アビリティを授ける
OnlyAbilitiesThatSatisfyTagRequirements
今すぐ実行できるアビリティのみを引き出す
Gameplay Event
SendGameplayEventToActor
データのペイロードを含むイベントでGameplayAbilityをアクティベートする。イベントのペイロードは、ローカルで予測されるGameplayAbilityのために、クライアントからサーバーへ複製されます。既存のどの変数にも当てはまらない任意のデータには、2つのOptional ObjectまたはTargetData変数を使用します。
Gameplay Task
PlayMontageAndWaitForEvent
PlayMontageAndWaitと WaitGameplayEventの AbilityTasksを組み合わせたものです。これにより、アニメーション・モンタージュは、AnimNotifiesからゲームプレイ・イベントを、それを開始したGameplayAbilityに送り返すことができます。これを使用して、アニメーション モンタージュ中の特定の時間にアクションをトリガーします。
WaitGameplayEvent
Gameplay Tag
Get Owned Gameplay Tags
AbilitySystemから生やす
Add/Remove Loose Gameplay Tags
特定のアクターに対してゲームタグを紐づける
Wait Gameplay Tag
クールダウン
期限切れまでゲームプレイアビリティの再アクティブ化を防ぐタイマー
コスト
インスタント・ゲームプレイ・エフェクト(コストGE)で実装されたゲームプレイ・アビリティを起動するためにASCが持つべき、あらかじめ定義された属性の量のこと
Abilityのメンバー変数
(機械翻訳)
Ability Tags
能力タグ
GameplayAbilityが所有するGameplayTags。これらは、GameplayAbilityを説明するためのGameplayTagsに過ぎません。
Cancel Abilities with Tag
タグでアビリティをキャンセルする
このゲームプレイアビリティが発動すると、アビリティタグにこれらのゲームプレイタグが設定されている他のゲームプレイアビリティはキャンセルされます。
Block Abilities with Tag
タグでアビリティをブロック
このゲームプレイアビリティが有効な間は、アビリティタグにこれらのゲームプレイタグを持つ他のゲームプレイアビリティの発動がブロックされます。
Activation Owned Tags
アクティベーション 所有タグ
これらのGameplayTagsは、GameplayAbilityが有効な間、GameplayAbilityの所有者に付与されます。これらは複製されません。
アクティベーションが必要なタグ このゲームプレイアビリティは、所有者がこれらのゲームプレイタグを 全て持っている場合にのみ、発動することができます。
Activation Required Tags
アクティベーション・ブロックのタグ
このゲームプレイアビリティは、所有者がこれらのゲームプレイタグの いずれかを持っている場合、発動できません。
Source Required Tags
ソース必須タグ
このGameplayAbilityは、SourceがこれらのGameplayTagsを 全て持っている場合にのみ、有効にすることができます。Source GameplayTagsは、GameplayAbilityがイベントによってトリガーされた場合のみ、設定されます。
Activation Blocked Tags
ソースブロックのタグ
このGameplayAbilityは、SourceがこれらのGameplayTagsの いずれかを持っている場合、有効にすることができません。Source GameplayTagsは、GameplayAbilityがイベントによってトリガーされた場合のみ、設定されます。
Target Required Tags
対象必須タグ
このGameplayAbilityは、TargetがこれらのGameplayTagsを 全て持っている場合のみ、発動することができます。Target GameplayTagsは、GameplayAbilityがイベントによってトリガーされた場合のみ、設定されます。
Target Blocked Tags
ブロックされているタグを対象とする
このGameplayAbilityは、TargetがこれらのGameplayTagsを持って いる場合、発動することができません。Target GameplayTagsは、GameplayAbilityがイベントによってトリガーされた場合のみ、設定されます。
Discussion