ゲーム中に複数カメラを切り替えたいという要望はどんなゲームでもあると思います。UE4ではいくらでもカメラ配置が可能で、自由なタイミングでカメラの切り替えを行なう事が出来ます。
実にお手軽な方法でカメラ切り替えが可能となっていますので、今回はその方法を紹介していきます。
あらかじめカメラを配置しておく
当たり前ですが、あらかじめレベル上にカメラを配置しておく必要があります。
カメラアクターを検索して配置。
カメラアクターを配置すると右下にカメラから見たビューポートが表示されるので、それを見ながらカメラの位置や角度を調整しましょう。
レベルブループリント上にカメラを追加
カメラアクターを選択したまま、レベルブループリントを開きます。
右クリックから検索メニューを開き、"Create a Refernce to CameraActor"を選択。または"CameraActorのリファレンスを作成"を選択して、配置したカメラアクターをレベルブループリント上へ追加します。
カメラ切り替え用のノードを追加
まずはPlayerControllerを取得する必要があるので、"Get Player Controller"ノードを作成します。そしてPlayerControllerの情報をピンから引っ張って、"Set View Target with Blend"ノードを作成します。
最後に"New View Target"ピンにカメラアクターのピンを接続します。これでカメラ切り替えが可能になりました。あとは何かイベントを発生させてカメラ切り替えを行なうだけです。
入力イベントからカメラを切り替え
では適当な入力イベントでカメラを切り替えられるように以下のようなノードを組んでおきます。
FlipFlopノードのおかげでイベントを発生させるたびにAとBが切り替わります。
これで実行してみると…
カメラ切り替えテスト。#UE4Study https://t.co/famdSjfzhu
— alwei (@aizen76) 2015, 9月 26
無事カメラ切り替えが出来ました。
"Set View Target With Blend"には切り替わり時のブレンドに様々な情報を渡す事が出来ます。
Unreal Engine | Set View Target with Blend
New View Target → ビュー切り替え先の対象のアクター
Blend Time → 切り替え時のブレンド時間(秒)
Blend Func → 切り替え時に使用するブレンド関数
Blend Exp → 切り替え時のブレンド関数に影響する係数
Lock Outgoing → 残りのブレンドを最終フレームのカメラ位置へ送信ビューターゲットをロックする ※今ひとつ曖昧なので、ここでの説明はあまり信用しないでください。
これらを上手く使えばカメラ切り替えの動きもかなり制御出来るようになります。もちろん本格的なカーブエディターを使いたいという場合はタイムラインやマチネの使用を検討してください。
実はカメラでなくても切り替えできる
カメラに切り替えるというイメージがあるかもしれませんが、この機能はカメラでなくても実はOKです。ただのスタティックメッシュやライトなどであっても切り替えが可能です。
ただし、アクターの位置や向きに依存したビューになるので見た目を調整したい場合にはカメラアクターかカメラコンポーネントを所持したアクターに対して行なってください。