UE4の勉強記録

UE4の勉強の記録です。個人用です。

12章9節 GameplayAbilities API – アクターのゲームプレイアビリティ(gameplay abilities)をゲームコントロール(game controls)から引き起こす。Part5

<前文>

f:id:kazuhironagai77:20190127220352p:plain

今回は特になしです。

<本文>

今週は今まで勉強した事を整理します。

SetupPlayerInputComponent関数の整理>

2週に渡ってこの関数について勉強したため、かなり取り散らかった内容になってしまいました。これをまず整理したいと思います。

このレシピのPart3で以下のように述べていましたが、

f:id:kazuhironagai77:20190127220509p:plain

先刻、教科書を読み直したら、以下に示すようにSetupPlayerInputComponent関数の実装部がテップの後にしっかり載ってました。

まず、気が付いたのですが、SetupPlayerInputComponent関数自体を調べていなかったです。UE4C++のAPIによると

f:id:kazuhironagai77:20190127220530p:plain

CreatePlayerInputCompoent()関数で作成したinputCompnentを使用してPawnがカスタムなインプットバイントをセットする事を許可します。

とありました。この関数自体は何回も教科書のレシピで使用していました。

サラッとサンプルコードと比較した結果、教科書の方が更にシンプルなので教科書に沿ってまとめました。

f:id:kazuhironagai77:20190127220632p:plain

手順4から7は手順8,9のための準備、手順3は変数のチェック、手順2はForLoopなので、実際のコードは手順1、8、9の3つです。

ちなみにその3つの手順は全て、AbilitySystemComponentクラス(インターフェイス)のメンバー関数を使用しています。

f:id:kazuhironagai77:20190127220705p:plain

つまり、SetupPlayerInputComponent関数の目的は、究極的には以下の3つです。

f:id:kazuhironagai77:20190127220820p:plain
<全体のまとめ>

このレシピを行うために4つのクラスを作成します。

f:id:kazuhironagai77:20190127220753p:plain

それぞれのクラスの目的も追加しました。

f:id:kazuhironagai77:20190127220853p:plain

作成の流れは、

C++でGameplayAbility_Attackクラスを作成―>作成したGameplayAbility_AttackクラスからBPを作成―>GameplayAbilitySetからWarriorGameplayAbilitySetを作成し、GameplayAbility_Attackクラスから作成したBPを選択―>キャラクタークラスからWarriorクラスを作成してUGameplayAbilitySetクラスやUAbilitySystemComponentクラスから作成した変数をバインドします。

と成ります。

<結果>

残念ながら教科書のレシピはこれで終わりです。どのように使用するかが全く書かれていません。どのように使用するか何となくは想像出来ますが、Gameplay Ability Systemについてのサイトを参考にした方がより良いテストが出来るような気がしますので、先にこの教科書にある全てのGameplayAbilities APIのレシピを終わらせてからまとめてテストします。