【実践記事・ADV編①】ミステリーアドベンチャーゲームを作る——企画・設定・台本の書き方

初心者向け実践開発

対応バージョン:Unity 6.3 LTS(6000.3系)/WebGL出力 この記事はシリーズ全11回の第1回です。キャッチゲーム・ランナーゲームの実践記事と同じ環境・同じスタイルで書いています。 【PR】本記事にはアフィリエイトリンクを含みます。

これまでの実践記事では「落ちてくるアイテムをキャッチするゲーム」「横スクロールのジャンプ避けゲーム」を作ってきました。どちらも「プレイヤーが動いてスコアを稼ぐ」タイプのゲームでしたが、今回は全然違う方向に挑戦します。

会話と推理で謎を解くミステリーアドベンチャーゲームです。

しかも最終的にブラウザで遊べる状態(WebGL出力)まで持っていくことを目標にします。今回の記事ではUnityを開く前の段階——「どんなゲームにするか」「誰が登場するか」「どんな台本を書くか」——を扱います。

目次


今回作るもの

タイトル(仮):「波無島事件」

離島を旅行中の週刊誌記者・水瀬凛が、地元のラウンジでぼったくりに遭遇したことをきっかけに、観光客失踪事件の真相に迫っていくミステリーアドベンチャーゲームです。

  • プレイヤーは4人のキャラクターと会話し、情報を集める
  • 集めた証拠を使って容疑者を追及する
  • エンディングは選択によって2種類に分岐する(TRUE END・BAD END)
完成した波無島事件のプレイ画面

ジャンル選定:なぜ「会話・尋問パート中心」にしたか

最初に考えたのは「初心者が完走できるスコープに収まるか」という点でした。

アクション・シューティングのようなゲームは、移動・攻撃・エフェクト・難易度設計など、作り込むべき要素が無数にあります。一方、会話・尋問パート中心のアドベンチャーゲームは「テキストを表示する」「選択肢を選ぶ」「フラグを管理する」の3つが核心で、見た目の演出を後回しにしてもゲームとして成立します。

またブラウザで動かす(WebGL出力)ことを最終目標にしていたため、重い3Dグラフィックを避けたかったという理由もありました。テキスト中心のゲームはデータが軽く、WebGLとの相性がよいです。

「1ボタンでジャンプするランナーゲーム」がシンプルな操作で完走しやすかったのと同じ理由で、「話題カードを選んで会話を進める」というシンプルなインターフェースにしました。


企画の骨格を決める

企画を決めるとき、最初に以下の3つだけを決めました。

① 舞台と雰囲気:旅行者が訪れる離島。閉鎖的なコミュニティ、夜の港、薄暗いラウンジ。

② 事件の種類:ラウンジでのぼったくりをきっかけに観光客が行方不明になる。

③ プレイヤーキャラクターのイメージ:週刊誌記者。元風俗ライターの経歴から夜の業界に精通している女性。

この3つから自然に「真相は誰か」「何が隠されているか」を考えていくと、ゲームの流れが見えてきました。

ゲームの流れ(章立て)

第1章:到着
凛が島に来た夜、月凪(ラウンジ)でぼったくりに遭う。
翌朝、旅行者の松本から友人・木下健太の失踪を相談される。

第2章:聞き込み
島の関係者4人に話を聞いて回る。
最初は全員「知らない」と言う。

第3章:矛盾
集めた情報から田中警官の証言に矛盾が見つかる。
松本が証拠動画を隠し持っていたことが判明。

第4章:追及と決断
田中を証拠で追い詰め、健太の居場所を突き止める。
「記事にするか・しないか」の最終選択。

真相:島の駐在警官・田中浩二がラウンジと共謀し、ぼったくりに抵抗した健太を廃旅館に軟禁していた。

エンディング分岐

エンディングは2種類用意しています。どちらに辿り着くかは、第4章の最後に訪れる「たった一つの選択」で決まります。詳しくはぜひ実際に遊んで確かめてみてください。


キャラクター設定

登場人物は5人に絞りました。多すぎると会話データの作成が膨大になり、完走できなくなるためです。

水瀬 凛(主人公・プレイヤーキャラクター)

  • 年齢:32歳
  • 職業:週刊誌記者(元風俗ライター)
  • 性格:頭が切れて度胸がある。少し無鉄砲。
  • 役割:プレイヤーが操作する視点キャラクター。モノローグで内心を語る。

桐島 沙耶(ラウンジ「月凪」のママ)

  • 年齢:38歳
  • 性格:艶っぽく本心を見せない。東京の夜の世界を経験してきた。
  • 秘密:事件の一端を知っているが、島で生きていくために黙っている。
  • キャラクターとしての役割:序盤は情報をくれない。凛との会話を重ねるごとに少しずつ心を開く。

田中 浩二(島の駐在警官・容疑者)

  • 年齢:28歳
  • 性格:人当たりがよく最初は頼りになりそうに見える。
  • 秘密:ラウンジのオーナーの義理の甥で、借金のカタに共犯者になっている。
  • キャラクターとしての役割:序盤は協力的なふりをして情報を隠す。証拠を突きつけると崩れる。

松本 翔(被害者の友人)

  • 年齢:27歳
  • 性格:狼狽しているように見えるが、実は証拠動画を隠し持っている。
  • キャラクターとしての役割:最初の依頼人。終盤に証拠を渡すキーパーソン。

磯部 茂(漁師・島の古株)

  • 年齢:70代
  • 性格:無骨で寡黙。島の裏事情をすべて知っている。
  • キャラクターとしての役割:情報屋的な存在。廃旅館への道を教えてくれる。

台本の書き方

台本は「話題カード」ごとに分割して書きました。1つの会話データ(DialogueData)が1つの話題カードに対応します。

たとえば桐島沙耶との会話は以下のように分割しています。

話題カード①「あの夜のこと」
→ 健太が店に来た経緯・田中を呼んだ事実

話題カード②「田中警官との関係について」
→ オーナーの親戚という情報

話題カード③「島を出ようと思ったことは?」
→ 沙耶の過去・本音

話題カード④「月凪の過去について」(フラグ解放後)
→ 廃旅館の方向という重要情報

④は①を聞き終えたあとに初めて出現します。「前の情報を聞いたから次の話題が解放される」という流れを作ることで、ゲームに自然な進行感が生まれます。

台本を書くときに気をつけたのは「誰がどの情報を持っているか」の整理でした。

たとえば松本は健太が月凪で揉めた場面を直接見ていません(先に宿に帰っていたため)。最初の台本では「すごい額を請求されたって揉めてたみたいで」というセリフを書いたのですが、「なぜ松本が知っているのか」という矛盾に気づきました。「宿に戻る前に健太からLINEが来て、そこで教えてもらった」という形に修正することで、情報の出所が自然になりました。

台本はどれだけ丁寧に設定を作っても、書き起こすと矛盾が見つかります。「この情報をこのキャラクターが知っている理由は何か」を一つひとつ確認しながら書くことが大事です。


エンディング分岐の設計思想

エンディングの分岐は、単純に「正解か不正解か」ではなく「プレイヤーが何を選ぶか」で決まるようにしました。

どちらのエンディングも「証拠を集めて真相に辿り着く」という点は同じです。ゲームのクライマックスで訪れる「たった一つの選択」だけが分岐のポイントになっています。

設計するうえで意識したのは、「どちらを選んでも間違いではない」という感覚を持たせることでした。片方が明らかに正しくて、もう片方が失敗、という構造だと、プレイヤーは「正解を探す」ことに集中してしまいます。どちらの選択にも一定の理由や感情が伴うように設計することで、選んだあとに「本当にこれでよかったのか」という余韻を残せます。

実際にどんな選択が待っているかは、ゲームをプレイして確かめてみてください。


完成した企画書を振り返って

実際に台本まで書いてみて分かったのは、ゲームの規模は最初に決めた「登場人物の数」でほぼ決まるということでした。

5人のキャラクター×平均3〜4つの話題カード=約19個の会話データ。これがこのゲームの「実装ボリューム」のほぼすべてです。最初に「5人・各3〜4話題」という制約を決めたことで、スコープが膨らまずに済みました。

アドベンチャーゲームを作る場合は、キャラクターの数を決めてから企画を詰めていくことをおすすめします。

⚠️ ハマったポイント

  • 「誰がどの情報を知っているか」を整理せずに書き始めると、台本に矛盾が生まれやすい。キャラクターごとに「知っていること・知らないこと」を箇条書きで整理してから書くと修正が少なくなる
  • 話題カードを増やしすぎるとボリュームが膨大になる。「1キャラクター3〜4話題」という制約を先に決めてから台本を書くのがおすすめ

次回予告

第2回では、いよいよUnityを開きます。プロジェクトの作成・フォルダ構成・ScriptableObjectを使ったデータ設計など、実装前の「下ごしらえ」を詳しく解説します。


あわせて読みたいおすすめ書籍【PR】

ゲームのシナリオ・企画・システム設計についてさらに学びたい方には、以下の書籍もおすすめです。本セクションにはアフィリエイトリンクを含みます。

※このセクションのリンクはアフィリエイトリンクであり、商品が購入された場合、サイト運営者に紹介料が支払われることがあります【PR】。


この記事を作成するにあたって参考にしたサイト

コメント

タイトルとURLをコピーしました