UE5の視点切り替えについて
UE5でのゲーム制作では大抵の場合、キャラの視点切り替えを実装する必要がある。
今回は通常時からエイムして照準を合わせる際に、カメラをプレイヤーの近くに寄せて視点切り替えを行う方法を紹介していく。
なお、以前の記事で、サードパーソンテンプレートをベースに銃を持たせエイムができるようにしている。これとは別の方法でもエイムアクションなどの視点を変えたい操作を既に作っているなら問題ないが、そうでない場合は以下の記事を先に確認してもらったほうがいいと思う。
Get・SetやSequenceやBranchといった基礎的なノードがわからない場合は先に以下記事を確認してほしい。
アンリアルエンジンのノードの一覧UE5の視点切り替えの目次
カメラの確認カメラの位置決め
視点切り替え処理の作成
目次にもどる
カメラの確認
操作キャラのブループリントを開こう。
操作キャラのブループリントがどれかわからない場合はワールドセッテイングタブ→選択したゲームモード→デフォルトのポーンクラスに入っているブループリントを確認しよう。
.jpg)
ブループリントのコンポーネントタブのCameraBoomを選択する。
.jpg)
右側の詳細タブのカメラの項目のTarget Arm Length(親コンポーネントと子コンポーネントの距離を示し、今回は親はキャラで子がカメラである)を確認してほしい。
.jpg)
もしサードパーソンテンプレートを使用しているなら値は400になっていると思う。これは操作キャラとカメラが400cm離れていることを示す。
目次にもどるカメラの位置決め
まずはカメラを自分の理想とする位置にするには、値をどの程度変えればいいのか知る必要がある。
前述したTarget Arm Lengthの数値の他、その下のSocket Offsetの数値も変えてみて、ビューポートタブでカメラ位置を確認したり、ゲーム再生を行ってどう見えるのかを確認するといい。
Socket Offsetは子コンポーネント(つまりカメラ)の座標を示す。Target Arm Lengthの値による位置を原点としてカメラをX・Y・Z方向に移動させられる。
Target Arm Lengthが400のまま、Socket Offsetも全て0で変更なしの視点は以下の通り。
.jpg)
自分はこのデフォルトの視点ではキャラが小さく見えると感じるので。以下のようにArm Lengthを300、Socket OffsetのY=20 Z=50にしてみた。
.jpg)
更にエイム時はキャラが更に大きく見えるようにしてカメラのより左に映るようにしたい。
よってTarget Arm Lengthを150。Socket OffsetをY=80、Z=80にしてみることにした。

視点切り替え処理の作成
理想のカメラの位置決めが決まったら、視点切り替え処理を実装していく。
Target Arm LengthやSocket Offsetはエイム(視点切り替え)を行う前の数値に戻しておこう。今回はTarget Arm Lengthを300、Socket OffsetをY=20 Z=50にしておいた。
.jpg)
①銃の持ち方、②ブレンドスペース、③エイムオフセットの記事で実装を行っている場合、マウス右ボタンクリックでAimingの変数(Boolean)のtrueとfalseを切り換えてエイムオフセットの作動を行っている。
コンポーネントタブからCameraBoomをドラッグ&ドロップして出し、ワイヤーを伸ばしTarget Arm Lengthのセットを検索して出す。CameraBoomとTarget Arm Lengthをコピーし2つに増やし、以下のようにつなげる。
.jpg)
AimingがtrueになるほうのTarget Arm Lengthは150、falseになるほうのTarget Arm Lengthは300に指定。
同様にコンポーネントタブからCameraBoomをドラッグ&ドロップして出し、ワイヤーを伸ばしSocket Offsetのセットを検索して出す。CameraBoomとSocket Offsetをコピーし2つに増やし、以下のようにつなげる。

AimingがtrueになるほうのSocket OffsetをY=80、Z=80、falseになるほうのSocket OffsetはY=20 Z=50とした。
以下のようにエイムを行うと視点切り替えが行われる。