はじめに
個人でホラーゲームを開発しているOFADAGAMES(おふだゲームス)です。
よろしゅう。
本記事では、先月リリースした『デテイケ -GetOut-』の中でも特にお気に入りなホラー演出の実装方法をご紹介します。
本職はNotエンジニアなので、実装方法が拙い可能性があります。そこは個人でブラッシュアップしてください。
実行環境
UnrealEngine 5.3.2
デテイケ-GetOut- ※良かったら買ってね
※本記事にはホラー演出の実行例を動画にて添付しております。
閲覧注意です。
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
カメラに描画された回数をカウントし、時間経過で消える演出

振り返ったら霊がいるという、ホラー映画などで定番のやつです。
実装手順は以下です。
・削除対象のアクターを作成する(今回だと女霊にあたるもの)
・Levelに配置し、アクター内に以下の処理を追加する
tick Interval = 0
look Count = 0

Tick回数の調整について
Set Actor Tick Intervalにて、アクターのTick間隔を1秒に調整しています。
必須ではないですが、Tick間隔を遅くすることで、どれぐらいの時間描画された後に消えて欲しいかを調整しやすくなります。
見た回数をカウントして、一定値になれば自身を消すについて
Was Actor Recently Reneredを使えば、このアクタが最近レンダリングされたか否かを返してくれます。
Toleranceで「最近」の秒数を定義できるので、ここもTick Intervalを入れています。
描画された(=True)であればLook Countに値を足し、規定値に達すれば自身をデストロイします。
下記画像のように始めはTick処理を止めておき、レベルブループリントなどからTick再開ができるようにしておけば、勝手に暴発して消えるなども起きないので安心です。

色んな方の実況見てる限りは安定して動作しているので、次回作以降も使いたい演出ですね。
カメラがバグったようになる演出
実装としてはシンプルで、Excute Console Commandにて、「Show Rendering」を使用すれば画面描画を止めることができます。
これによって描画を止めてもブループリントによる処理は止まりません。
なので、描画を止めている間もSEを再生するなどは可能ですが、同時にプレイヤー操作なども可能なため、取り扱いには注意です。
もう一度「Show Rendering」を使えば、描画処理は再開されます。
どうやって画面がガクついてるような表現をしているかって?
それが、プロジェクトデータを見返してもわからないんですよね。製品版ではちゃんと添付動画のように動いてるし。
ほんまに呪われてるゲームの可能性あります。
真面目な話をすれば、「Show Rendering」を1秒間隔のTickなどで回し、再生しているシーケンサーなどで前後運動を繰り返す、、などで近い再現は可能かと思います。
ゲームが壊れたような表現は割と驚かれるんで、やりすぎない範囲で次作以降も色々試したいですね。
それではまた。

