3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Unreal Engine (UE)Advent Calendar 2024

Day 8

UE5.5 GameplayCameras プラグインを触ってみた

Posted at

はじめに

ワールドに置いた定点カメラを切り替える仕組みを作ります。
ThirdPerson や FirstPerson を切り替えるのは公式ドキュメントの方にあるのでそちらにお任せしようと思います。

今まではSet View Target with Blend ノードなどを使って切り替えることができたと思いますが、今回は GameplayCameras プラグインを使って実装します。

公式ドキュメントはこちら
Gameplay Camera System Overview

Gameplay Camera System Quick Start

環境

Windows11
UE 5.5.0

GameplayCameras プラグインについて

5.5 では Experimantal なので今後機能や UI が変わる可能性があります。

このプラグインはカメラアセットとして用意されている専用のエディタで、カメラの制御を定義し、このカメラアセットを複数の GameplayCamera コンポーネントに適用することでカメラの動作を複数のアクターで再利用することができます。

1. カメラアセットの作成

まずプラグインを有効にしましょう。
image.png

カメラアセットを作成します。
コンテンツブラウザ右クリックから作成します。
image.png

Single Camera Director を選択します。アセット名は CA_TestCamera としました。

image.png

作成したカメラアセットを開きます。

image.png

軽くエディタの解説をします。
image.png

上記のカメラアセットのエディタのタブの中で以下の三つの項目によってカメラの動作を定義していきます。

  • Director(Director ブループリントの設定)
  • Rigs(Camera Rig を定義する)
  • Shared Transition と Transition(どの Camera Rigでも使える共有遷移と各 Camera Rig の遷移の定義する)

それぞれ解説します。

Camera Rig

ノードベースでカメラの動作を定義したもの。
一つのカメラアセット内に複数のカメラリグを定義することができる。

例えば、ThirdPerson の視点、FirstPerson の視点、カスタムの視点などのような感じ

Director

ゲーム中のある時点でどの Camera Rig が有効になるかを管理する。
以下の4種類が用意されています。

ディレクターの種類 説明
BlueprintCameraDirector 特定のCamera Rigを選択するロジックを BP で記述できます。
SingleCameraDirector 単一の選択されたCamera Rigのみ有効化され、BP や選択ロジックの記述はできません。
StateTreeCameraDirector StateTreeを利用して、どのCamera Rigを有効化するかを決定します。
PriorityQueueCameraDirector 複数のサブディレクターを持ち、最も優先度の高いディレクターが Camera Rig を決定します。

Transition

各 Camera Rig の開始および終了の遷移方法を定義できます。
Shared Transition というもので複数の Camera Rig で共有の遷移を利用することもできます。
現状は以下の4種類が用意されています。

image.png

早速実装していきます。
Camera Rigs からすでにある Rig をリネームして SingleCamera としました。
image.png

次に Rigs タブを開いて以下のようにノードを組みます。
image.png
次に各ノードの設定についてみていきます。

Occlusion Material ノードはカメラの視界を遮るオブジェクトなどに半透明などのマテリアルを適用してプレイヤーの視界を確保することができます。
image.png

ここでは Blend Mode を Translucent にして以下のノードを組んだマテリアルを用意して適用します。
image.png

FOV はデフォルトの90のままでいきます。
image.png

次はディレクターの設定です。
Camera Rig は今回一つしか作らないので先ほど作成した Camera Rig の SingleCamera を選択します。
image.png

次に Transition の設定をします。以下のようにノードを組みます。
設定などはデフォルトのままです。
image.png

これでカメラアセットの作業が終わったのでビルドボタンを押して保存しましょう。
image.png

2. カメラアクターの作成

カメラアセットができたらカメラアセットを適用するカメラアクターを作ります。
GameplayCameraActor を継承したブループリントアセットを作ります。
アセット名をBP_CamraActorとしました。
image.png

アセットを開いて、クラスのデフォルトの詳細欄から先ほど作成したカメラアセットを設定します。
image.png

レベルを作成し、BP_CamraActor を以下のように配置しました。
真ん中の壁はカメラオクルージョンを試すために配置しています。
image.png

次にカメラ切り替えロジックを組みます。
レベルブループリントを開き、以下のように組みました。
R と T キーを交互に押すことによってカメラの切り替えを実現しています。
image.png

実行してみます。
カメラの切り替えとオクルージョンが効いていますね。
original-min.gif

おわり

従来は Character にアタッチされているカメラコンポーネントを取得したりして色々処理を書いていたと思いますが、ここら辺がカメラアセットに置き換わり、カメラノードで処理が書きやすくなって再利用もできてとても強力なので、将来的にはメインで使っていきたいですね~
ここまで読んでいただきありがとうございました。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?