動的に生成したカメラに視点を移動させる

執筆:  “F.K”

はじめに

初めまして。プログラマーのF.Kです。

今回はUnrealEngine5を使用して、

C++で動的に生成したカメラをボタンを押下した際に移動するようにしていきたいと思います。

この記事の内容

カメラがC++で固定カメラに移動する実装

1. カメラの位置を初期化で設定

2. UIボタンで配置したカメラに移動

ブループリントを用意しよう

今回必要なブループリントは2種類です。

  1. ブループリント
  2. ウィジェットブループリント

実装してみよう

コンテンツドロワーで右クリックし、

ブループリントクラスからActorを選択してブループリントクラスを作成します。

今回はBP_CameraControlActorを作成しました。

ツールタブから新規C++クラスを選択し、Actorで作成します。

名前はCameraControlで作成しました。

先ほど作成したブループリントクラスの親クラスにC++クラスを設定します。

UPROPERTY()でWorldを参照させ、エディタのWorldに今回カメラをスポーンさせたいWorldを設定します。

カメラの初期設定の関数を作成し、

座標をVector、Rotatorに変更してその座標にカメラアクターをスポーンさせます。

ルートコンポーネントとカメラコンポーネントをそれぞれアタッチさせます。

先ほど作成した関数を座標位置と角度を指定してBeginPlayで呼んでいます。

エディタのPlayをすることで指定位置にカメラが生成されます。

ワールドに作成したブループリントを配置しておくと、GetWorld関数で取得できます。

カメラが動く関数を作成します。

PlayerControllerを取得してクラス内のSetViewTargetWithBlend関数で

CameraInitializeで設定したCameraActorに移動させます。

UIボタンを作成してそのボタンをクリック時に

先ほどのMovecameraを呼び出すことで移動させることができます。

先ほどの実装を行うとボタンをクリックすることでカメラが移動します。

Camera1ボタンを押下します。

クリック後、カメラが移動します。

まとめ

今回は座標を変えることで動的に生成されるカメラアクターをUIでカ移動をさせていますが、

ステージを移動するごとに映すカメラを変えるようにすることや座標位置を配列で持つことで

複数の固定カメラを作成することもできます。

実装次第で色々なことに利用できるのでぜひ皆さんも試してみてください。

関連記事