じゃっくぽっとラボ

UE4の技術ログあつまれ~

ボス前カットシーンを作る(1/2)ロジック編

大きな扉の前に近づくと「入る」と表示され、任意のボタンを押すと暗転してムービーが始まる。
そんなよくある演出、ボス前カットシーンを作ります。
※ムービーの撮り方・カット割りについては別記事で解説しました。
本記事ではロジックの解説になります。長くなったのでロジック編とシーケンサー編の全2回に分けました。

仕様

  1. ボス前の扉で任意のボタンを押す
  2. 画面が暗転(フェードアウト)
  3. ムービー開始・終了(フェードアウト)
  4. 戦闘開始  

マップ作成

まず、先に3つのマップを作っておきます。

現在いるマップを「Map01
ムービー中のマップを「Boss_Cutscene
ボス戦のマップを「Boss_Play

f:id:JackpotDevelop:20210413215946j:plain
作成した3つのマップ

※マップ、パーシスタントレベル、サブレベルについてはこちら参考に
UE4 パーシスタントレベルとサブレベル 凛(kagring)のUE4とUnityとQt勉強中のゲーム制作ブログ
複数のレベルを管理する | Unreal Engine ドキュメント

Map01

ボスの部屋に続く大きな扉を用意します。※別に扉じゃなくても何でもいいです。

アンリアルエンジン
シーン上に置いた扉
この扉の前で任意のボタンを押して中に入れるようにしましょう。

「トリガー内にプレイヤーがいる間、入力を受け付ける」アクタを作成します。
新しいアクタ、BP_LevelChangerを作成します。

f:id:JackpotDevelop:20210413213524j:plain
Actor型のBP_LevelChanger

ボックスコリジョンとマテリアルビルボードを追加

f:id:JackpotDevelop:20210413222452j:plain
BP_LevelChanger
マテリアルビルボードウィジェットでもいいです。
簡易的に説明するためマテリアルビルボードにしました。
デフォルトだとゲーム開始時から文字が表示されてしまうので、マテリアルビルボードのVisibilityはオフにしておきましょう。
f:id:JackpotDevelop:20210413231909j:plain
マテリアルビルボードのVisibilityはオフに

プレイヤーがコリジョンに重なった時の処理を作っていきます。
f:id:JackpotDevelop:20210413223439j:plain
プレイヤーがコリンジョンにオーバーラップしたときの処理
ボックスコリジョンにオーバーラップしたアクタにPlayerタグがついていれば、文字を表示する。
続けてEnableInputノードを置いて、このアクタがプレイヤーからの入力を受け付けるようにします。

プレイヤーのアクタにはPlayerタグをつけておきましょう。

次にプレイヤーが重なっているときだけ実行することが出来る処理を作ります。

f:id:JackpotDevelop:20210413225209j:plain
「中に入る」ボタンが押されたときの処理
今回、中に入るボタンはFキーを割り当てたので、Fインプットイベントに処理を作りました。
処理の解説としては、

  • マテリアルビルボードが表示されているかチェック
  • 入ることが確定されたら、PlayerPawnとBP_LevelChangerの入力を無効化
  • PlayerCameraManagerをつかったフェードアウトを実行
  • フェードアウトと同じ時間をDelayに入れて真っ暗になったらレベル読み込み

ここまで作ったら、シーンにBP_LevelChangerを置きましょう。
詳細パネルで、Boxコリジョンを選択し、シェイプを好きな大きさに調整します。

f:id:JackpotDevelop:20210413231302j:plain
扉の大きさに合わせてシェイプを調整

これでMap01は終わり。
ちなみに、実行してみると、オーバーラップで「中に入る」が表示され、その状態でFを押せば フェードが開始されます。画面が完全に黒くなった瞬間次のマップに遷移します。

続きはシーケンサー編へ

jackpot-lab.hateblo.jp