UE4:ホーミング(自動追尾)機能を使ってゴブリンを倒す
ゴブリンをフルボッコにしたい。
作りました。
Homing機能を実装しよう!
仕様:
Level側
レベル上にゴブリンが出現する。
Player側
出現した場合、自動的にゴブリンがターゲットになるようにする。
出現していない場合、Homing機能はOFFになる。
ゴブリン側
5回球が当たったら死ぬ。
ゴブリンの実装についてはこの記事を見てください。
使うもの
FirstPersonテンプレート
Mixamoアセット(無料)
FirstPersonPrijectile側
まずProjectileの実装をします。
Speedを3000にします。なぜ3000かというとなんとなくです。
Projectile Gravity Scaleは0にします。これで重力なくゴブリンに当てることが出来ます。
Event Graphに移動します。
カスタムイベントを作成します。名前をHomingにします。画像ではスペルミスしてます。カスタムイベントの入力値を設定します。変数の種類をPawnにします。
そして、IsValidノードを取り出し、以下のように設置します。
IsValidノードはLevel上にInput Objectが存在している場合Is Validへ、存在していない場合Notの方へ流れます。今回はゴブリンがLevel上に存在している場合Homing機能が働くようにするためこのようにしました。
次にPawnから線を引っ張りScene Componentを追加するノードを設置します。
次にコンポーネント側からProjectileをエディタ上に引っ張り出してきます。
Projectileから線をひっぱりHoming Target Componentノードを出します。
同じようにProjectileから[Is Homing Projectile]ノード、[Homing Acceleration Magnitude]ノードを出します。数値は20000にします。この数値もなんとなくです。
レベルブループリント側
レベルブループリントにゴブリンが出現するようにします。
Map側に戻り、ターゲットポイントを設置します。
EventGraphに戻り、イベントBeginPlayを設置し[Spawn AIFrom Class]ノードを設置します。Locationノードに先ほどのターゲットポイントのLocation情報を入れます。Target Pointのリファレンスを作成し、Get actor locationノードに繋げLocationに接続します。PawnClassをゴブリンにします。
Spawn AIFrom ClassのReturnValueから変数を宣言します。
FirstPersonCharacter側
EventGraphを開き、Spawn Projectileの[SpawnActor First Person Projectile]のReturn Valueから作成したカスタムイベントのHomingを出します。
変数を宣言します。種類はPawnにしGraph上にGetします。この画像の場合はGoblineです。
レベルブループリント側
レベルブループリントに戻ります。
[Get Player Character]ノードを出します。そこからFirstPersonCharacterにキャストします。そこから先ほど宣言したGoblineをSetし、Gobline1と接続します。
FirstPersonCharacter側
EventGraphに戻り、Goblineを接続します。
これで完成です。
気軽に実装できますね。
以上。