34. アクタの制御(visibility)

目的

ここまではゲームのシーンの構成要素をオブジェクトと呼んだ.ゲームではプレイヤーがこれらのオブジェクトをインタラクティブに操作することが可能となる.ここからはオブジェクトのことをアクタと呼び,アクタをブループリントによって制御する方法を学ぶ.ここではvisibilityの制御方法を学ぶ.

説明

ポイントライトを点ける

ここでは,ゲームをプレイすると5秒後にポイントライトが点くという例を通してアクタのvisibilityの制御方法を説明する.

ポイントライトを作成する

ポイントライトの点灯・消灯を制御するには,ポイントライトをステーショナリーにする必要がある.また,最初消えている状態にするには,以下のようにポイントライトを作成すればよい.

  • ポイントライト(ここではPointLightという名前とする)を作成する.
  • 詳細パネルのトランスフォームでPointLightをステイショナリーにする.
  • 詳細パネルのRenderingのVisibleのチェックを外し,PointLightが最初消えている状態にする.

ポイントライトのリファレンスを作成する

アクタをブループリントから制御するには,レベルブループリントエディタでアクタのリファレンスを作成する必要がある.PointLightという名前のポイントライトのリファレンスを作成するには以下のようにすればよい.

  • ビューポート(あるいはアウトライナ)でPointLightを選択する.
  • レベルブループリントエディタを開く.
  • イベントグラフの空白部分を右クリックする.
  • 「状況に合わせた表示」にチェックをつける
  • 「PointLightのリファレンスを作成」を選択する.
  • イベントグラフにPointLightのリファレンスであるPointLightノードができる.

開始5秒後にポイントライトを点ける

ゲームをプレイすると5秒後にポイントライトが点くようにするには,以下のようにすればよい.

  • イベントグラフの空白部分を右クリックする.
  • 「状況に合わせた表示」のチェックを外す.
  • SetVisibilityノードを作成する.
  • PointLightノードの変数出力ピンをSetVisibilityノードの変数入力ピン「ターゲット」に繋ぐ.
  • 消灯している状態から点灯している状態にするには,SetVisibilityノードの変数入力ピンNew Visibilityにチェックをつける.
  • イベントBeginPlayノードとDelayノードを作成し,SetVisibilityノードの実行入力ピンに繋ぐ.

部屋に出入りするイベントを取得する

ここでは,部屋に入るとポイントライトが点くという例を通して,ある空間に出入りするとイベントが発生するようにする方法を説明する.

部屋とトリガーボリュームを作成する

トリガーボリュームとは,その空間に入ったり出たりするイベントをトリガーとして処理を記述するときに使用する.トリガーボリュームの作り方や操作方法はブロッキングボリュームやキル Z ボリュームと同じである.ここでは,作成した部屋と同じ大きさのトリガーボリューム(TriggerVolumeという名前とする)を同じ位置に配置すればよい.

部屋に出入りするイベントを取得する

  • ビューポート(あるいはアウトライナ)でTriggerVolumeを選択する.
  • レベルブループリントエディタを開く.
  • イベントグラフの空白部分を右クリックする.
  • 「状況に合わせた表示」にチェックをつける
  • 「TriggerVolume1にイベントを追加」を選択する.
  • 部屋に入るイベントを取得する場合
    • 「コリジョン」の「On Actor Begin Overlap」を選択する.
    • OnActorBeginOverlap(TriggerVolume)ノードができる.
  • 部屋から出るイベントを取得する場合
    • 「コリジョン」の「On Actor End Overlap」を選択する)
    • OnActorEndOverlap(TriggerVolume)ノードができる.

部屋に入るとポイントライトが点く

部屋に入るとポイントライトが点くようにするには,以下のようにすればよい.

課題で使用するノード

  • ToggleVisibilityノード
    • VisibilityのTrue, Falseを切り替える(トグルさせる)
    • 使い方はSetVisibilityノードとほぼ同じ

課題

以下の新規ブループリントプロジェクトを作り,課題を行え.

  • ファーストパーソン
  • デスクトップ/コンソール
  • ハイエンド
  • スターターコンテンツ有り

設計図

課題0

設計図の通りに壁と床と部屋を作れ.

課題1

全ての部屋にテーブルと椅子とポイントライトを配置せよ.

課題2

ゲームをプレイすると,5秒後に部屋Aのポイントライトが消えるようにせよ.

課題3

ゲームをプレイすると,10秒後に部屋Bのポイントライトが点くようにせよ.

課題4

ゲームをプレイすると,1秒間隔で部屋Cのポイントライトが点滅するようにせよ.

課題5

部屋Dに入るとポイントライトが点くようにせよ.

課題6

部屋Eに入るとポイントライトが点き,出ると消えるようにせよ.

課題7

部屋Fに入ると火花が出て,ライフが100から減るようにせよ.

課題8

部屋Gの机に近づくと炎が出て,ライフが減るようにせよ.

課題9

部屋Hの机に近づくと机の上の像が消え,clearと表示されるようにせよ.