[UE4/UE5] GASでオンラインゲーム Part6 雪の上だけで雪玉を作れるようにする

Post 2022年3月26日土曜日

GameplayAbility GASでオンラインシリーズ UE4 UE5 Unreal Engine

Part 1の一部になります。

前回の続き

今回はGameplay Ability System (通称GAS)を使って、雪玉を雪の上だけで作れるようにします。

お約束
この記事作成にあたって使用した主なUnreal Engine バージョンUE4.27.2 / UE5 Preview1

本日のゴール

雪の上だけで雪玉を作れるようにする


参考文献

https://pafuhana1213.hatenablog.com/entry/2015/05/20/002301 by おかずさん


実装

これは基本的におかずさんのページの通り実装するだけです。GA_Generateの中身を編集して、雪玉を作成するGEを実行する前に地面が雪かどうかを判定するだけです。

まずはおかずさんのページの後半側を参照して、Physical Surfaceを設定して、PhysicsMaterialを用意して、地面のアクターに設定します。

あとはこんな感じです。


前半では空中にいるかどうかを取得して、空中ならAbilityをキャンセルします。

自分の座標を入手して、自分の向いている方向の上方向のベクトルを入手します。この上方向のベクトルは長さが1しかないので、適当に-1000倍します。あとは自分の座標と足し合わせれば自分の真下方向の座標が得られるので、この座標をEnd Pointに設定すれば良いです。

これで自分の真下にあるアクターの情報が得られるので、Physics Materialの情報を入手して"Snow"ならばGAを起動し、そうでないならAbilityをCancelするようにします。

今回はこんなもんです。おかずさんのお陰で瞬間で終わりました。

おわり