← ログ一覧

夜の廃校をコードで建てる — 3Dホラー「夜勤 - Night Shift -」制作記

  • Roblox
  • ゲーム制作
  • Luau

夜の廃校を巡回する警備員になって、鍵を探し、懐中電灯ひとつで敵から逃げる。5分から10分で終わる短編の3Dホラー「夜勤 - Night Shift -」をRobloxで公開した。敵AIは校舎を徘徊し、プレイヤーを見つけると追跡に切り替わる。結末は4分岐。今回の制作でいちばん変わっていたのは、Roblox Studioの画面でマップをほとんど触らなかったことだと思う。

マウスではなくコードでマップを組む

Robloxのゲームは普通、Studio上でパーツをドラッグして校舎や机を配置していく。今回はその方式をやめて、Rojoというツールを使い、Luau言語のコードからマップ・照明・敵AI・アイテムまで全部をスクリプトで生成する方式を取った。教室の位置も廊下の長さも月光の角度も、全部コードに書いてある。

理由は単純で、やり直しが利くからだ。手作業で組んだマップは「廊下をあと少し伸ばしたい」だけで大工事になるが、コードなら数値を1つ書き換えて再生成すれば済む。実装はAIとの往復で進め、最終的にコードは約3,270行、16モジュールに落ち着いた。徘徊・発見・追跡と状態が切り替わる敵AIも、鍵と懐中電灯の持ち物管理も、4つのエンディング分岐も、この16個の部品の組み合わせでできている。

効果音は10種類、すべてRoblox公式の無料ライブラリから選んだ。ホラーは音が命なので凝りたくなるところだが、出所の不明瞭な音源を混ぜるより、権利関係のはっきりした素材の中で構成を工夫するほうがいいと判断した。

最初のビルドは、まったく怖くなかった

生成したマップを初めて歩いたときの感想は「明るい」だった。廃校のはずなのに、深夜の校舎に営業中のコンビニくらいの光が回っていて、敵とすれ違っても緊張感がない。ホラーの怖さの大部分は照明でできているのだと、骨身に染みた瞬間だった。

そこからは地道な往復になった。環境光を一段下げて実機で歩く。まだ明るい。廊下灯を落とす。今度は暗すぎて理不尽になる。月光だけ少し戻す——という調整を何度も繰り返した。数値の上では正しく見えても、実際に歩いてみないと「怖いのか、ただ見えないだけなのか」は判別できない。マップはコードで建てたが、怖さだけはコードの中では確認できなかった。

公開前の「正直な申告」

Robloxで公開する前には、成熟度アンケートという質問票に答える必要がある。暴力表現や恐怖表現がどの程度含まれるかを開発者自身が申告し、それに応じて対象年齢が決まる仕組みだ。ホラーである以上、恐怖表現の項目は正直に「あり」と答えた。怖がらせるために作ったゲームなのだから当然の申告で、ここをごまかして間口を広げても誰も得をしない。

振り返ると、学びは2つある。マップも敵AIもコードで生成する方式は、修正の速さという点で明確に効いた。一方で、明るさや怖さといった体感の部分だけは、最後まで実機で歩いて確かめるしかなかった。全部を自動にできるわけではなく、どこを人間の目で確かめるかを決めること自体が、制作の一部なのだと思う。

関連する作品

← ログ一覧へ