再び実話ベースで
前作「夏の夜にゴミを捨てさせて」の累計プレイ回数が10000回を超え、思っていたよりずっと多くの方に遊んでいただいたようで驚きました。(遊んでいただいた方、本当にありがとうございます!)せっかくなので続編を作ろう、ということで、今回もエンジニア1人と生成AIだけ(通称OneTech)で1ヶ月開発です。
舞台は主人公が住んでいるマンション。ゴミ捨て場の恐怖からは逃れたはずが、今度はマンションが怪異に襲われる、という話です。実は前作を出した後で「てか夜中にゴミ出すのダメだよね」となり、それならと「ゴミの呪い」という設定になりました。
今回のマップは室内になります。最初は深く考えてませんでしたが、開発の難易度を上げた点でした。屋外だと自然とルート攻略のゲーム性がでますが、室内は空間が狭いぶん、敵とプレイヤーの距離感やルート取りをちゃんと設計しないと、すぐに直線的なゲームになってしまいます。実際、プロト版では非常口出て終わりという内容だったんですが、それだとゲーム性が薄いとなり、ベランダとゴミを3つ集めるという要素を追加しています。
敵にちゃんと追いかけてもらう
前作の敵は正直かなり単純で、プレイヤーに向かって直線的に突っ込んでくるだけでした。今回は室内が舞台なので、これだと成立しません。部屋は障害物が多いので、直線的な追跡だとすぐに何かにぶつかってしまいます。というわけでナビゲーション + エージェントシステムを入れて、障害物を検知しながら追いかけてくるようにしました。Godotのナビゲーション機能をAIと相談しながら組んで、実際に室内で鬼ごっこをする場面を最初に作っていきました。ここは衝突範囲の指定によってはすぐ引っかかったりするので調整が大変でした。また、ドアが開いているかいないかで進めるルートが変わるところも実装で苦労した点です。そこはナビゲーションリンクという追加の仕組みで実現しています。
怖さの演出、あれこれ
室内ホラーということで、演出面もいくつか新しく試しています。
蛍光灯の点滅は不気味さがぐっと上がるので、地味だけどこだわった演出です。最初に遭遇した敵の姿を見せておくアニメーションも入れて、いかにもなホラー演出を入れてみてます。この辺りは前の「はしれうまちゃん2」で試したことを応用しています。あとはドアに近づくと敵が出現する仕掛けも用意しています。
どんな演出をするか色々迷ったんですが、AIにゲームの設定を伝えてコンセプト画像や動画を作ってもらい、そこから着想を得ています。とはいえAIに「怖くして」と頼んでもピンとくる答えは返ってこないので、実際に自分で試しながら「タイミング早すぎる」「もう少し溜めがほしい」みたいな微調整を繰り返しました。感覚的な部分はやっぱり人がやるしかないですね。
音まわりの新しい相棒
音の作り方も少し変わりました。今回はゲーム内の音声バスをちゃんと分けて、BGM・環境音・効果音・ボイスを個別に音量調整できるようにしています。これだけでも「特定のシーンで効果音だけ強調する」みたいな演出の自由度がぐっと上がりました。
効果音は今回ElevenLabsのサウンドエフェクト生成を使ってみました。テキストで「軋むドアの音」「遠くで響く物音」みたいに指定すると、それっぽい効果音が生成されるので、フリー素材を探し回る時間がかなり短縮されました。ただ完全にドンピシャなものが一発で出てくるわけではないので、何パターンか生成して聞き比べて選ぶ、という作業自体は残ります。海外サービスなので和ホラーのサウンドはまだ苦手かなという印象もありました。
暗さと目線の誘導
ホラーゲームなので画面は当然暗くしたいんですが、暗すぎるとそもそも遊びにくくなる、というジレンマがあります。かといって明るくすると今度は全然怖くない。この塩梅、前作でも悩みましたが今回も相変わらず難しかったです。
今回工夫したのは、暗さそのものよりも「視線の誘導」です。窓から見える月でベランダの存在を示唆したり、点いたままのノートPCの画面など、プレイヤーの目が自然にそこへ向かうような光源をオブジェクトとして配置して、暗い中でも進むべき方向がなんとなくわかるようにしました。あとはマップの調整などです。実際に何人かにテストプレイしてもらって、迷って詰まってしまうポイントを洗い出しながら微調整しています。
得意な人も苦手な人も
前作同様、マルチエンディングは今回も採用しています。サクッと2〜3分で遊べるボリューム感も踏襲していて、ホラーゲームが得意な人はスリルを楽しみつつ、苦手な人でも短時間で「怖かったけど終われた」という達成感を持って遊び終えられることを意識しました。
また前回のプレイデータを見ると、クリア率が8〜10%で、1回のプレイ時間が~60秒程度なので、それくらいの難易度とプレイ時間がちょうどいいのかなということで今回もイメージして作っています。調整のため今回はセーブポイントを新たに導入しています。
スマホ操作の改善もいくつか入れています。前作でも仮想ジョイスティックでの移動は入れていたんですが、ダブルタップに対応しておらずカメラが操作しにくい問題があったので、今回はジョイスティック周辺のタップ判定を無視するようにしたり、カメラの最大移動距離に制限をかけたりして、いくらか操作しやすいように調整しているつもりです。
呪われたゲーム?
実はリリース2日前にゲームのステージが消失する事件がおきました。iOSでプレイすると1~2分で落ちる問題を調査している時に、Godotのバージョン変更やプロジェクト設定を変更している時に事故りました。翌日はISMS審査も控えており終わったと思いましたが、なんとか復旧することができました。今回の開発の中で、これが一番恐ろしい出来事でした。そもそも最初はメモリ不足が原因だと踏んで調査していて、結果的に全然違った(Godot内部の問題だった)ので結構ハマりました。
次に試したいこと
今回もAIとの協業で開発を進めましたが、まだ「指示してレビューして」の繰り返しがベースで、AIエージェントに深く入り込んでもらうところまではできていません。次は、プロト制作、検証までをもう少しAIエージェント側に任せられる仕組みを試してみたいと思っています。
あとはBlenderまわり。ここは最近出てきたBlenderのMCP連携を使うと、3Dモデルの生成や編集をAIエージェント経由でもう少し自動化できそうな気配があるので、次回はこのあたりも試してみたいと思っています。動作環境がブラウザなので3Dモデルは可能な限り軽くしないといけず、そのために自前でモデルを作っていますが、素人なので時間がかかりクオリティが低くなります。モデル生成が高速にできるようになるとかなり幅が広がるなと期待しています。
生成AIでできることは着実に増えていますが、「怖さの塩梅」や「操作性のストレスのなさ」みたいな部分は、結局プレイして確かめて調整して、を繰り返す地道な作業になるんだな、というのは前作から変わらない実感でした。
今回もマイクロテックとしての実験の1つですが、こういう手を動かしながら試行錯誤する開発が好きな人、ぜひ一緒にやってみたいという方はゲームをプレイして採用ページも覗いてみてください。今は期間限定で夏のサマーインターンも募集しています!



