GameplayAbilitiesの使い方(セットアップ編) - おかわりのアンリアルなメモ
上記ブログを参考にして移して、理解したことを自分向けに再説明する。
C++前提であること
まず、デフォルトでプラグインは入っていないのでプラグインの設定
そのうえで、Build.csに"GameplayAbilities"を追記
任意の(ブログではCharacter)クラスに"AbilitySystemInterface"を多重継承させる
クラスにAbilitySystemComponentのメンバを追加し、ゲッターも追加
このAbilitySystemがタグ等を管理している本体か
AbilityListと名前が付けられたメンバはスキル一覧のようなもの。
ゲーム起動時にBeginPlayによって登録が行われるとのこと。
作り方によっては後付けもできるんちゃうかなこれ
Abilityの作成
GameplayAbilityクラスを継承して作成。
ActivateAbilityイベントで始まり、OnEndAbilityイベントで終了する
始めるときにCommitAbilityノードを呼び出して開始し
終了したいときはEndAbilityノードを呼び出す
CommitAbilityは後に出てくるEffect等の反映という理解でいいのかな
たしかデータアセットがどうとかの話もあったし、それのリアルタイム反映がコレか
そのへんはここで
UE4 GameplayAbility Pluginについてのメモ - Qiita
GameplayAbilityクラスでアニメーションをさせる場合、専用のモンタージュ再生ノードがある
使い方は普通のPlayMontageノードとほぼ同じ
他の要因でこのアビリティをキャンセルされた場合に出てくるノードっぽいのがある
ただ、通知が出たときに実行されるノードがないのが大きな違い。
あとで出てくるノードによってこれを補完している。
とにかくアビリティの発動が終わったらEndAbilityして終了
アビリティを作成したら、キャラクターに登録
TryActivateAbilityByClassノードでアビリティを実行
トライと書いてある通り、できない状況ならやらないというノード。
できるかできないかはタグで決定。
X.Y.Zの形式で追加できる。
ちなみに、SendGameplayEventtoActorノードを使うことで
アビリティのWaitGameplayEventノードにデータをディレイをかけて送ることができる
これを使ってMontageで当たり判定を生成
当たり判定がSendGameplayEventtoActorを実行し当たった対象を送る
送られてきたときにこのノードが起動し、何らかの処理を実行する。といったことができる。
とりあえずここまで