Unreal Engine

【UE5】Interior Element Configurator Tutorial Part 3|カメラ設定

こんにちは、設計屋です。今回はInterior Element Configuratorの第3弾として、カメラの設定方法について説明します。この記事では、マウスでインテリアエレメントの周りを移動し、マウスホイールで前後移動ができるカメラの設定方法を紹介します。さらに、自動的にピントが合う被写体深度の機能も追加していきます。それでは、早速始めましょう。

Project SettingsでInputを追加

  • Project Settings を開く
  • Input セクションに移動し、Axis Mappings を1つ追加
    • 名称を "Turn" に設定し、"Mouse X" を選択
  • もう1つの Axis Mapping を追加
    • 名称を "LookUp" に設定し、"Mouse Y" を選択

必要なブループリントを作成

ブループリントクラスの作成

Pawn クラスを選択し、名称を "BP_Pawn" に設定

Player Controller クラスを選択し、名称を "BP_PC" に設定

Player Camera Manager クラスを選択し、名称を "BP_PCM" に設定

Game Mode Base クラスを選択し、名称を "BP_GM" に設定

BP_GM(ゲームモードベース)の設定

ゲームモードベースの概要と使い方

【概要】
ゲーム全体のルールや流れを管理するクラスです。プレイヤーのスポーンやゲームの勝敗条件、タイマーの設定など、ゲーム全体のルールや動作を定義します。
基本的に、ゲームのタイプやモードに応じてカスタマイズされます(例えば、デスマッチやキャプチャーザフラッグのようなゲームモード)。

【使い方】
プロジェクトを作成した後、GameModeBaseのブループリントクラスを作成し、その中でゲームのルールを定義します。
GameModeBaseクラスには、プレイヤーがスポーンするデフォルトのポーン、使用するプレイヤーコントローラー、HUD(ヘッドアップディスプレイ)、などを設定できます。
GameModeBaseはGameStateやPlayerStateと連携してゲームの進行を管理します。

  • BP_GM を開く
    • Player Controller Class を "BP_PC" に設定
    • Default Pawn Class を "BP_Pawn" に設定
  • コンパイルしてセーブ

BP_PC(プレイヤーコントローラー)の設定

プレイヤーコントローラーの概要と使い方

【概要】
プレイヤーがゲーム内で操作するキャラクター(ポーン)やカメラ、HUDなどを制御するクラスです。
PlayerControllerは、プレイヤーの入力を処理し、それをゲーム内のアクションに変換します。キーボードやマウス、ゲームパッドなどの入力デバイスからの指示を受け取り、ポーンの移動やアクションを制御します。

【使い方】
PlayerControllerブループリントクラスを作成し、プレイヤーの操作に関連するロジックを定義します。
プレイヤーが操作するポーン(キャラクター)に対して、移動、攻撃、インタラクションなどの動作をプログラムします。
UI要素の制御や、ポーンを操作するためのインプットマッピングの設定もPlayerControllerで行います。

  • BP_PC を開く
    • Player Camera Manager Class を "BP_PCM" に設定
    • Show Mouse CursorEnable Click Events にチェックを入れる
  • コンパイルしてセーブ

BP_PCM(プレイヤーカメラマネージャー)の設定

プレイヤーカメラマネージャーの概要と使い方

【概要】
Player Camera Manager は、プレイヤーの視点カメラを管理するクラスです。
これにより、カメラの位置、回転、ズーム、エフェクトなどを制御できます。
たとえば、ゲーム中のカメラの切り替えや、特定のイベントが発生した際にカメラエフェクトを適用するなどが可能です。

【使い方】
プレイヤーカメラマネージャーをカスタマイズして、カメラの動作を制御する独自のロジックを実装できます。
たとえば、プレイヤーが特定のオブジェクトに近づくとカメラがズームインするように設定したり、特定のアクションが行われたときにカメラを揺らすエフェクトを追加したりします。

【設定方法】
Game Mode の設定で、Player Camera Manager クラスを指定します。 カスタム Player Camera Manager を作成し、カメラの動作やエフェクトを制御するロジックを追加します。

  • BP_PCM を開く
    • View Pitch Max を "0" に設定
  • コンパイルしてセーブ

BP_Pawn(デフォルトのポーンクラス)の設定

デフォルトのポーンクラスの概要と使い方

【概要】
ゲーム内でプレイヤーが操作するキャラクターやオブジェクトを表すクラスです。
ポーンは物理的に存在し、カメラやコントロールシステムと連携して動作します。
Default Pawn Classは、GameModeBaseで設定され、プレイヤーが最初に操作するポーンを指定します。

【使い方】
使い方: 新しいポーンクラスを作成し、GameModeBaseでデフォルトのポーンとして設定します。
ポーンのブループリントには、キャラクターの動きやアクション、アニメーション、カメラの設定などを含めます。
プレイヤーが操作するポーンをカスタマイズして、独自のキャラクターや乗り物、ドローンなどを作成することが可能です。

  • BP_Pawnを開く
    • Add ComponentSpring Arm を追加
    • Spring Arm の子となるように Camera を追加
    • Spring ArmTarget Arm Length を 2000 に設定 (インテリアエレメントの大きさに応じて調整)
    • Do Collision Test を無効に設定
    • Use Pawn Control Rotation を有効に設定
    • Enable Camera Rotation Lag にチェックを入れ、
    • Camera Rotation Leg Speed 数値を 5 に設定

マウス操作の設定

Event Graph でマウス操作の処理を設定します。
TurnLookUp のイベントを作成します。

  • Turnのイベントを作成
    • Add Controller Yaw Inputを追加
    • Multiply を追加し、値を "2" に設定(左右方向のカメラ速度を設定します。)
  • LookUp(上下方向のカメラ向き)のイベント作成
    • Add Controller Pitch Inputを追加
    • Multiply を追加し、値を "-2.0" に設定(上下方向のカメラ速度を設定します。マイナスにすることでマウスカーソルを下に動かして画面が下を向きます)

マウスホイールでの前後移動設定

  • Mouse Wheel Up のイベントを作成
    • Spring Arm を D&Dで持ってきて Set Target Arm Length を追加
    • Get Target Arm Length「-」Subtraction(float) を追加し、値を "200" に設定(カメラ速度)
    • Clamp(float) を追加し、Min を 1000、Max を 5000 に設定(SpringArmのLengthの設定:Minを初期値をSpringArmのTarget Arm Lengthと同じ値にします)
  • Mouse Wheel Down のイベントを作成
    • Ctrl + D で複製し、「+」Add(float) を追加し、値を”200”に設定(カメラ速度)

ピント調整機能の追加

  • Add Custom Event を追加し、名前を "DoF" に設定
  • Line Trace by Channel を追加し、Camera の World LocationForward Vector を取得し、「*(Multiply)」を配置し1万を掛ける
  • Line Trace By ChannelのOut Hit から Break Hit Result を追加し、Camera の World Location を取得
  • Vector Length を追加し、変数 "Focal Location" を作成
  • Branch を追加し、Return Value を繋ぐ
  • Set Post Process Settings を追加し、Make PostProcessSettingsを追加し、Focal DistanceAperture(F-Stop) にチェックを入れる
  • Focal LocationをGetしてFocal Distanceに接続する
  • Event Begin Play を追加し、Set Timer by Function Name を追加
  • Set Timer by Function Nameの設定
    • Function Name=「Dof」(実行したいCustom Eventと同じ名前にします。)
    • Time=「0.2」(プレイ後、0.2秒後に実行されます。)
    • Looping=「✔」

最後の設定と確認

プレイしたときに「BP_Pawn」のカメラを使用できるようにします。

  • World SettingsGameMode Override を "BP_GM" に設定
  • Persistent Level を選択し、Post Process Volume を配置
  • Exposure の Min Brightness と Max Brightness を 1 に設定
  • Player Start を配置
  • Env01_Map を右クリックして Always Loaded を設定

これで設定は完了です。カメラが車の周りを移動し、前後移動ができることを確認しましょう。また、ピントが自動的に合う機能も動作するはずです。最後に、カメラのボケ具合を調整するための F-StopFoV の設定も確認してみてください。

ポストプロセスボリュームの設定

ポストプロセスボリュームの設定についていくつかテストして調整します。

Bloom(輝度設定)

  • Bloomでメソッドを「Standard」強度を「5.0」に設定します。

左「何も設定していない」右「Bloomを設定(Standard)」

[twenty20 img1="3110" img2="3111" direction="horizontal" offset="0.5" align=“none” width=“100%” before="none" after="Standard" hover=“false”]

  • Bloomでメソッドを「Convolution」強度を「5.0」に設定します。

左「Bloomを設定(Standard)」右「Bloomを設定(Convolution)」

[twenty20 img1="3111" img2="3114" direction="horizontal" offset="0.5" align=“none” width=“100%” before="Standard" after="Convolution" hover=“false”]

Exposure(露出設定)

UE5では、暗い場所では露出が上がり、明るい場所では露出が下がるという自動露出機能がデフォルトで有効になっています。これが「Metering Mode」です。

「Min/Max Brightness」では、自動露出の明るさの範囲を調整することができ、「Speed Up/Down」では露出が変わる速度を設定できます。

左「露出補正:-3.0」右「露出補正:3.0

[twenty20 img1="3127" img2="3126" direction="horizontal" offset="0.5" align=“none” width=“100%” before="露出補正:-3.0" after="露出補正:3.0" hover=“false”]

Lens Flares(レンズフレア)

  • Lens Flares(レンズフレア)
    • 強度「7.016」
    • ボケサイズ「12.544」
    • しきい値「8.0」

左「何も設定していない」右「Lens Flares」

[twenty20 img1="3133" img2="3134" direction="horizontal" offset="0.5" align=“none” width=“100%” before="none" after="Lens Flares" hover=“false”]

Env01とEnv02のポストプロセスボリュームの設定

Env01とEnv02のポストプロセスボリュームの設定をします。

Env_01

  • Bloom(輝度)
    • メソッド「Convolution」
    • 強度「0.3」
  • Exposure(露出)
    • 測光モード「✓」
    • 露出補正「1.0」
    • Min EV100「-10.0」
    • Max EV100「20.0」

Env_02

  • Bloom(輝度)
    • メソッド「Convolution」
    • 強度「0.675」
  • Exposure(露出)
    • 測光モード「✓」
    • 露出補正「-3.0」
    • Min EV100「-10.0」
    • Max EV100「20.0」

左「Env_01(昼)」右「Env_02(夜)」

[twenty20 img1="3140" img2="3139" direction="horizontal" offset="0.5" align=“none” width=“100%” before="Env_01" after="Env_02" hover=“false”]

まとめ

次回は、椅子の色を変更する機能を追加していきます。

-Unreal Engine
-