本日作るのは超シンプルなお題
キャラクターのブループリントにてカメラをマウスで動かす機能を実装する。
サンプルのサードパーソンに標準で搭載されている機能。
※今回のバージョンは5.0.0
(正式リリース直後)
前回作ったメインキャラクターを使う。次を参照。
【キャラを作ろう#1】自分で操作できるキャラクターをイチから作る【UE5】 | 謎の技術研究部
上記キャラは移動もカメラ操作もできないハリボテ。
まず先に本家サードパーソンのBPを開いてマウスの処理を見てみることにする。
コンテンツ > ThirdParson > Blueprints
の中にある BP_ThirdPersonCharacter
この中のイベントグラフにてマウスの処理は次のたった4つのノードから成る。
赤ノード2種でマウスの上下と左右の動きを取得し、それを青ノードでコントローラーのローテーション上下左右に当てはめているようだ。
このAdd Controller Yaw input
,Add Controller Pitch input
というノードが回転を意味しているのは覚えておきたい。
移動ではなく「回転」
ではこの4ノードを自キャラのBPにコピペして実行してみることにする。
プレイ中は私はマウスを上下左右ぐるぐる回している。
なんか変!?
という不具合が発生しているようだ。
本家ノードをコピペしているのに、なぜ想定通りうごかないのだろうか。
実はマウスでカメラ操作するときはノードだけではなくコンポーネントの詳細を変更する必要がある
まずは一番上のSelf
コンポーネントを選択する
詳細ウィンドウの検索窓にuse
と入れるとUse Controller Rotation ~~
という設定(Pitch, Yaw, Rollの3つ)がでる。
これがコントローラーの回転入力を受け付けるかどうかの設定だ。
よく見るとこれのPitch
がオフになっている。
Yaw
とPitch
を使うノードを組んであるのにPitch
が使われていないのが不具合の原因のようだ。
ではこれをON
にしてもう一度実行してみよう。
すると次のようになる。
マウスの上下左右すべてを受け付けるようになった。
しかし、カメラと一緒にキャラクターも一緒に動いてしまっている
次の項ではこれを修正する。
Roll
回転は次のようなような回転を意味する。
飛行機が旋回するときに使うような軸なので、こういった三人称視点ではひとまず使わなくてよい。
上の例だと、キャラ自体が大砲の発射口のようなゲームならそのまま使えそうだ。
しかし人のような三人称視点の場合はカメラだけ動かしたい。
では、どうすればいいのだろうか。
Selfコンポーネント
のUse Controller Rotation
をすべてオフにする。
「え、オフにするの?」という声が聞こえてきそうだがオフにする。
なぜなら、一番上のSelf(親)の回転にマウス入力を直接入れると、その子もぜんぶ回転してしまうからだ。
ということは...
Self(一番上の親)ではなくSpringArm
コンポーネントだけマウスの回転を受け付ければ良い。
SpringArm
を選択して
こっちのController Rotation
をONにしてやる(YawやPitchのような設定は必要なく、これ1個)
これでカメラがくっついているアームだけ回転するようになるので、次のようになる。
マウスの入力を受け取ってそれをコンポーネントに適用するだけであればノードも少ない上に回転の計算や軸がどうのこうの...で悩まされる必要はない。
が、実際やろうと思ってもController Rotation
の設定項目を知っていないければできないはずだ。
今日紹介した内容はデフォルトのサードパーソンの設定と全く同じなので基礎の基礎となるかと思う。
引き続きサードパーソンキャラクターを紐解きながら記事を書きたい。