関連ブログ
- [UE5]チャージショットで弾のバリエーションを増やそう! 2024.10.09UE
- [UE5]PaperZDでプレイヤーキャラを実装してみる(3/3) 2024.10.02UE
- [UE5]PaperZDでプレイヤーキャラを実装してみる(2/3) 2024.09.25UE
CATEGORY
2022.11.23UE5UE/ Blueprint
執筆バージョン: Unreal Engine 5.0 |
今回はアクションアドベンチャー等でよく見られる「ロックオンカメラ」を作ります。
プロジェクトの好きなところにActor型のブループリントを作成します。
名前は「BP_Enemy」としました
そのままだとレベルに配置しても見えないので、スタティックメッシュコンポーネントを追加。
メッシュとマテリアルを設定します。
また、ロックオン時に検索できるようアクタタグを追加しておきます。
「Enemy」としました。
以上で敵アクタの設定は終わりです。
カメラはキーボードのQを押下したら起動するようにします。
BP_TherdPersonCharacterにカスタムイベントを追加します。
ロックオンカメラを起動したとき、「画面中央に最も近い敵」を優先してロックオンして欲しいですね。
そのためには「敵アクタとカメラを結ぶベクトル」と「カメラの正面ベクトル」の内積を取ることで割り出すことが出来ます。
新しく下記の変数を作成しました。
これでロックオンする対象が決まりました。
次はロックオン時のカメラ視点を作ります。
ロックオンが起動した際のカメラの位置を設定します。
まず通常状態のカメラのオフセットを保存しておく必要があるので変数を作ります
コンストラクションスクリプトで最初にデフォルトの値を保存しておきましょう。
次にカスタムイベントを作成します。
このイベント内で通常状態とロックオン状態のカメラオフセットを切り替えるようにします。
カスタムイベントが出来たら、先ほどのLockonCameraイベントに差し込みましょう。
※Boolean値のチェック有無に気を付けましょう
ロックオン中はプレイヤーがターゲットの方向を向き続けるようにします。
これで主な機能は完成です!
最後に実行してみましょう。
レベルの余分なブロックを消して、BP_Enemyを配置しました。
画面中央に近い敵をロックオンすることが出来ました。
あとはお好みでカメラのオフセットを変更したり、ロックオンアイコンを表示したりしても良いですね。