UE4:キャラクター(アクター)へのターゲットのロックオンのブループリントの実装について
タイトル「の」多い・・・
どうもぶっさんです。
前にターゲットのロックオンを使用したドロイド君ゲームを作りました。
ターゲットをロックオンするとはゼルダの伝説時のオカリナだとZボタンのことで、
カメラとキャラクターをターゲットに合わせる事です。
今超絶暇なのでまとめたいと思います。
Target Lock On!!!の実装
(テスト用に余った手でゴブリンを動かしてます。)
仕様:キャラクターに照準を合わせ右クリックするとロックオンされる。
離すとロックオンが解除される
使用するもの:
FirstPersonテンプレート
Mixamo_Goblin(無料アセット)
エディター上
まずエディタ上でゴブリンを出します。
詳細からActorのTagsにCharacterと入れます。簡単に言うとCharacterって名前のタグ付けです。
BluePrint側
まずイベントTickを右マウスボタンを出し、Gateに以下のように接続します。
これで右マウスボタンを押すとイベントTickがExitへ流れ続け、リリースすると流れを止めることが出来ます。
次にLine Trace by Channelを出します。そしてStartとEndを以下のように接続します。
これでカメラの位置から5000掛けた位置まで判定できるようにしました。
(デバッグモードにした際の実行表示:他記事からの抜粋)
Return Valueからブランチ、OutHitからBreakHitResultを出します。
Break hit ResultのHitActorからActor Has Tagノードを出し、先ほどタグ付けした[Character]をTagに記入します。そしてブランチをします。
Hit Actorから線を引っ張り[変数へ昇格]を押し変数を作成します。名前をHitCharaにしました。
カスタムイベントを作成します。名前は[TargetLockOn]にしました。(右クリックしてカスタムイベントを作成をクリックすると出来ます。)
そこにSet Control RotationノードとPrint Stringノードを出します。PrintStringにはLockON!!と入れました。
次に[Get Player Controller]ノードを出し、ターゲットに繋げます。NewRotationには以下のようにつなぎます。
Find Look at Rotationとは例えばオブジェクトを常に自分の向きに向かせる場合なのに使います。今回はロックオンしたオブジェクトの動きに自分の操作キャラを合わせるためにStartは自分のLocation(位置情報)を入れ、TargetにはロックオンしたLocationを入れます。
そしてHitCharaの後ろにカスタムイベントのTargetLockOnを呼び出します。
コレで完成です。難しいノード構成ではないので比較的楽して作れると思われます。
といいますか、サードパーソンのゲームだと有効かなと思います。(今回はサードパーソンにするのがめんどくさくなっちゃった・・・><
ちなみに、ヒストリアさんから
プラグインが出ています。コレ作った次の日ぐらいに公開されおぉ。。?おぉ!!ってなりました。(コレかくまで完全に忘れていたのでプラグインがどういったのもかわからない。多分用途が違うはず。。。)
以上。