執筆バージョン: Unreal Engine 5.6
|
こんにちは!今回はUE5.6で新たに登場したテンプレート「Horror」を初心者向けに少し改造して紹介していきたいと思います!
テンプレートに何が用意されているかが分かれば、使いやすくなります!
【目次】
- テンプレートの中身を見てみよう
- 追加機能を作ってみよう
- まとめ
テンプレートの中身を見てみよう
まずはテンプレートからプロジェクトを作成して、中身を見てみましょう。
UE5.6を起動したら「Games」⇒「First Person」⇒「Variant: Survival Horror」の順で選択していき、プロジェクト名を設定して新規作成を行います。

最初に表示される画面は新しくなった「First Person」のテンプレートのため、Content Browserの「Variant_Horror」のフォルダ内にある「Lvl_Horror」を開きましょう。


そのままプレイしても、既に雰囲気が出てていい感じですね…!
初期状態で用意されている機能は下記の通りです:
- プレイヤー移動
- ジャンプアクション
- スプリント(走る)アクション
- スタミナの機能とUI
- 近づいたら開く扉
- 点滅する灯り
機能 |
調整項目 |
プレイヤー移動
キーボード:WASD
コントローラー:Lスティック
|
BP_FP_Horror
プレイヤーの歩く速度をClass Defaultsの「Walk Speed」から調整できます

※注意※
デフォルトのままだとCharacterMovement(初期パラメーター)が更新されていないため、EventPossesedのイベントの後ろに設定した「Walk Speed」の値をSetしてあげましょう

|
ジャンプ
キーボード:Space
コントローラー:Aボタン
|
BP_FP_Horror
ジャンプの性能はCharacter Movementコンポーネントの「Jump Z Velocity」から調整できます

|
スプリント
キーボード:LShift
コントローラー:Lスティック押し込み
|
BP_FP_Horror
プレイヤーの走り速度はClass Defaultsの「Sprint Speed」から調整できます

|
スタミナ
|
BP_FP_Horror
プレイヤーのスタミナゲージの減る速度/持続時間はClass Defaultsの「Sprint Meter」と「Sprint Time」を1対1の割合で調整することができます。(値が異なる場合UIの表示がおかしくなります)

UI_Horror
上記ウィジェットブループリントを編集することで見た目を調整できます

|
扉 |
BP_DoorFrame
扉は「LevelPrototyping⇒Interactable⇒Door」以下の「BP_DoorFrame」から機能を調整することができます

|
点滅する灯り |
Light
点滅する灯りはBPの中身をいじらずに、配置したアクターの値を編集することで点滅の有無、明かりの色を調整することができます

※注意※
デフォルトのままだと明るさを手動では変えられなくなっており、BP内の下記画像の値を変更することでランダム値の幅を調整することができます

|
上記は簡単に調整ができるようになっているので、自分好みにカスタマイズしてみてはいかがでしょうか?
追加機能を作ってみよう
ホラーゲームでプレイヤーを最も効果的に怖がらせる手法…それはジャンプスケアです!(個人の感想です)
何かが突然出て来るというのは心臓に悪いのでやめてほしいですよね…
なので今回は「暗闇の中から突然NPCが出現する」仕組みを作っていきましょう!
前提として、UE5ではLumenの機能の性質上、完全に真っ暗にするには全ての光を遮断しなければいけません。(Lumenを無効にしない限り)
これには先ほど紹介したLightや外から漏れこんできている明かりなども含まれます。

まずは外からの明かりを無くすために、レベル上の「Directional Light」内の「Intensity」の値を0まで下げましょう。

すると一気に暗くなって良い感じです!
次にステージ上に配置されているライトの明かりを消したいですが、上述したようにLightのBPは手動で書き換えられなくなってしまっているため、下記のようにLightのBP内を変更しましょう。

※RandomIntensity周りを外し、新たに追加したFloat変数(DefaultIntensity)を1の値で「SetIntensity」と「Set Default Custom Primitive Data Float」に繋げます
これにより、ステージ上で全てのSpotLightの「Default Intensity」を0に設定することで、真っ暗にすることができました。

残りはプレイヤーカメラについている「SpotLight1」の「Intensity」を0にすれば完全暗闇の完成です。


ただし、これでは普通の探索ができなくなってしまうので、SpotLightの「Default Intensity」とプレイヤーの「Intensity」はデフォルト値に一旦戻します。
BPの作成
それではいよいよ、ジャンプスケアのギミックを作成していきます。
- まず新たなアクターBPを作成して「BP_JumpScare」と名付けます。

- BPを開きコンポーネントに「Box Collision」を追加し、「On Component Begin Overlap」イベントを作成

- 以下の変数を登録
- 「Light」のリファレンスを追加⇒目のマークを有効化、VariableTypeをArrayに変更

- 元の明かりのIntensityを保存しておくFloat変数「InitialLightIntensity」を追加(同じくArray)
- プレイヤーの元の明かりのIntensityを保存しておくFloat変数「InitialPlayerIntensity」を追加(こちらはSingle)
- 明かりを何秒消すかのFloat変数「OffDuration」を追加⇒目のマークを有効化
- 明かりが消えている状態かを判断するBoolean変数「TurnOff」を追加

- イベントのOtherActorからノードを引っ張り、「Cast To BP_FP_Horror」に繋げることでプレイヤー情報に繋ぎ、「Promote to Variable」で一時的にその状態を変数として保存

- プレイヤーのIntensityを変える関数(function)「ChangePlayerIntensity」とステージ上のLightのIntensityを変える関数「ChangeLightIntensity」を作成

- 作成した関数の中身を下記のように繋げる
※UE5.6より、Boolean変数のGetから直接Branchを作ることができるようになりました!

|
- EventGraphに戻り処理を下記のように完成させる

※やっていることとしては、ボリュームを踏んだら一度だけ起動し、明かりを消す処理をした後、元に戻る時間が経過したら明かりを戻すようにしています
上記状態で一度確認してみると…
このように、登録したLightが一斉に消え、真っ暗になります!
あとはこの機能にプラスしてNPCが暗転中に出現する機能も足してみましょう!
※本来であれば、ちゃんとプレイヤーのことを追ってくるNPCをスポーンさせたりするのが良いですが、今回は指定したアクター(何でも)が出現する簡易的な処理を追加します
- 「BP_JumpScare」を再度開き、「AppearActor」というアクターの変数を追加し、目のマークを有効化

- 明かりが戻るカスタムイベントの先でアクターを表示する処理を追加(今回は「Set Actor Hidden In Game」で対応)

- レベル側に戻り、表示させたいアクターを明かりが戻る場所に配置(デフォルトで入っている「BP_WobbleTarget」を使用)
その後配置したアクターの「Actor Hidden In Game」を有効化

- 最後に「BP_JumpScare」にアクターとLightの登録を行う

まとめ
それではこの状態で改めてプレイしてみましょう…
いい感じですね!
今回はホラーテンプレートに用意されているLightを使ってホラーの演出ギミックを作成してみましたが、これ以外にも単純に周回してプレイヤーを追ってくるエネミーを追加したり、鍵や集めるアイテムなどの探索要素を足すだけでも簡単にホラーゲームの基盤を作ることができるテンプレートとなっているので、皆さんも是非Horrorテンプレートからホラーゲームを作ってみてはいかがでしょうか?