僕の私のUnrealな日々

UE4のBluePrintを使って小さなギミックを作ったりしてます。ブログを通じて情報共有ができたらなと思います。

UE4:ホーミング(自動追尾)機能を使ってゴブリンを倒す

f:id:Bussan_dayo:20150331175749p:plain

 ゴブリンをフルボッコにしたい。

作りました。

 

 

 

Homing機能を実装しよう!

仕様:

Level側

レベル上にゴブリンが出現する。

Player側

出現した場合、自動的にゴブリンがターゲットになるようにする。

出現していない場合、Homing機能はOFFになる。

ゴブリン側

5回球が当たったら死ぬ。

 

 

 

ゴブリンの実装についてはこの記事を見てください。

unrealbussan.hatenablog.com

 

使うもの

FirstPersonテンプレート

Mixamoアセット(無料)

 

FirstPersonPrijectile側

まずProjectileの実装をします。

f:id:Bussan_dayo:20150331171618p:plain

Speedを3000にします。なぜ3000かというとなんとなくです。

Projectile Gravity Scaleは0にします。これで重力なくゴブリンに当てることが出来ます。

 

Event Graphに移動します。

カスタムイベントを作成します。名前をHomingにします。画像ではスペルミスしてます。カスタムイベントの入力値を設定します。変数の種類をPawnにします。

 

そして、IsValidノードを取り出し、以下のように設置します。

f:id:Bussan_dayo:20150331172051p:plain

IsValidノードはLevel上にInput Objectが存在している場合Is Validへ、存在していない場合Notの方へ流れます。今回はゴブリンがLevel上に存在している場合Homing機能が働くようにするためこのようにしました。

 

次にPawnから線を引っ張りScene Componentを追加するノードを設置します。

次にコンポーネント側からProjectileをエディタ上に引っ張り出してきます。

Projectileから線をひっぱりHoming Target Componentノードを出します。

f:id:Bussan_dayo:20150331172435p:plain

 

 

同じようにProjectileから[Is Homing Projectile]ノード、[Homing Acceleration Magnitude]ノードを出します。数値は20000にします。この数値もなんとなくです。

f:id:Bussan_dayo:20150331172617p:plain

 

 

レベルブループリント側

レベルブループリントにゴブリンが出現するようにします。

Map側に戻り、ターゲットポイントを設置します。

f:id:Bussan_dayo:20150331172814p:plain

 

EventGraphに戻り、イベントBeginPlayを設置し[Spawn AIFrom Class]ノードを設置します。Locationノードに先ほどのターゲットポイントのLocation情報を入れます。Target Pointのリファレンスを作成し、Get actor locationノードに繋げLocationに接続します。PawnClassをゴブリンにします。

f:id:Bussan_dayo:20150331173419p:plain

Spawn AIFrom ClassのReturnValueから変数を宣言します。

 

FirstPersonCharacter側

EventGraphを開き、Spawn Projectileの[SpawnActor First Person Projectile]のReturn Valueから作成したカスタムイベントのHomingを出します。

f:id:Bussan_dayo:20150331173728p:plain

変数を宣言します。種類はPawnにしGraph上にGetします。この画像の場合はGoblineです。

 

レベルブループリント側

レベルブループリントに戻ります。

[Get Player Character]ノードを出します。そこからFirstPersonCharacterにキャストします。そこから先ほど宣言したGoblineをSetし、Gobline1と接続します。

f:id:Bussan_dayo:20150331174114p:plain

 

FirstPersonCharacter側

EventGraphに戻り、Goblineを接続します。

f:id:Bussan_dayo:20150331174153p:plain

 

これで完成です。

 

気軽に実装できますね。

 

 

 

 以上。