マガジン

ゲームのストーリーをAIと作る:矛盾を出さない設定の渡し方

遊びをつくる

執筆にClaudeを使用しています。

色鉛筆の線やゲームのスケッチが描かれたノートとカード。
記事のテーマをもとに制作したAI生成イメージ。実際のゲーム画面ではありません。

AIにゲームのストーリーを手伝わせると、途中から「さっきと話が違う」という状況が起きやすくなります。第1章で死んだはずのキャラクターが第3章に登場したり、「魔法が使えない世界」と決めたのに敵が魔法を使ってきたり。これはAIの能力不足というより、設定の渡し方に原因があることがほとんどです。 AIはセッションをまたぐと文脈を忘れます。同じセッション内でも、長いやりとりを続けると前半の情報が薄れていきます。つまり「矛盾しないで」と頼むより、矛盾が起きにくい構造で情報を渡す側が設計する必要があります。この記事では、その設計の考え方と具体的な手順を説明します。

この記事の目次
  1. なぜ矛盾が起きるのかを先に理解する
  2. 設定シートを作って毎回渡す
  3. 長編を書くときの「分割と引き継ぎ」
  4. 矛盾を発見したときの修正手順
  5. 次の行動

なぜ矛盾が起きるのかを先に理解する

AIがストーリーで矛盾を起こすパターンは大きく三つあります。

一つ目は「設定が会話の流れに埋まっている」ケースです。「この世界は水が貴重です」「主人公は孤児です」といった情報を普通の文章で伝えると、AIはその場では反映しますが、会話が長くなるにつれて参照の優先度が下がります。結果として後半のシーンで設定が無視されます。

二つ目は「設定同士の関係が定義されていない」ケースです。「王国は滅んだ」「王族の末裔が主人公」という二つの設定を別々に伝えると、AIは片方を意識しながら書いたときに、もう片方との整合性を確認しない場合があります。設定は単体で存在するのではなく、お互いに影響し合うものとして整理する必要があります。

三つ目は「禁止事項が指示に含まれていない」ケースです。「この世界に銃はありません」「主人公は人を殺さない」のようなネガティブな制約は、ポジティブな設定より忘れられやすい傾向があります。「〜がある」より「〜がない」「〜をしない」という情報は、AIが積極的に使う情報ではないため、意識的に強調しないと埋もれます。

設定シートを作って毎回渡す

矛盾を防ぐもっとも確実な方法は、設定を構造化した「設定シート」にまとめて、新しいセッションや新しいシーンを書くたびに冒頭で渡すことです。会話で積み上げた文脈に頼らず、毎回ゼロから設定を読ませる前提で動くと安定します。

設定シートに含めるべき項目は次のとおりです。

  • 世界の基本ルール:物理法則・魔法・技術水準など「この世界で何が可能か」の上限
  • 禁止事項:この世界に存在しないもの、起きてはいけない事柄を明示
  • 登場人物:名前・年齢・立場・能力・動機・他のキャラクターとの関係
  • 既存の出来事:すでに確定したストーリー上の事実(誰がいつ何をしたか)
  • 未解決の伏線:まだ回収されていない要素のリスト

シートはMarkdownの箇条書きか、シンプルな表形式が扱いやすいです。AIに渡すとき、自然言語の文章で書かれた長い背景説明より、項目が明確に分かれた構造のほうが参照されやすくなります。

実際の渡し方はこのイメージです。

以下の設定に従ってストーリーを書いてください。

【世界ルール】
- 魔法は存在しない
- 舞台は19世紀末の架空のヨーロッパ
- 蒸気機関が発達しているが電気はまだ普及していない

【禁止事項】
- 魔法・超能力の描写
- 現代的な語彙(スマートフォン、AIなど)

【登場人物】
- エルマ(28歳・女性・元軍の技師・左腕が義肢)
- ヴォルフ(40代・男性・秘密結社のリーダー・エルマの元上官)

【確定した出来事】
- エルマはヴォルフを裏切り、結社から逃げた(3年前)
- 逃走中に左腕を失い、義肢に換えた

【未回収の伏線】
- エルマが結社に渡した「設計図」の中身は未明

このように分けることで、AIがどの情報をどの目的で使えばよいかが明確になります。

長編を書くときの「分割と引き継ぎ」

短い物語なら1セッションで完結できますが、章立てのあるRPGや長いアドベンチャーゲームのシナリオは複数回に分けて作業します。このとき「前のセッションでAIが書いた内容」が次のセッションに引き継がれないことを前提に動く必要があります。

有効な方法は、各セッションの終わりに「このセッションで確定した事実」をAIにまとめさせてから保存することです。たとえばこのように指示します。

今回書いたシーンで確定した設定・出来事・登場人物の変化を箇条書きでまとめてください。次の作業セッションで設定シートに追加します。

こうして出力された内容を設定シートの「確定した出来事」に追記していけば、セッションをまたいでも整合性を保てます。作業者が手動で確認・編集する工程が入るため、AIが誤って矛盾をまとめに混ぜ込んでいないかをチェックする機会にもなります。

章ごとの作業前には、その章で使う登場人物と関連する出来事だけを抜き出した「章用の設定サマリー」を別途作ると、AIに渡す情報量を絞れます。情報が多すぎる設定シートも、必要な箇所が埋もれる原因になるため、関連する情報に絞って渡すのが効果的です。

矛盾を発見したときの修正手順

それでも矛盾は起きます。発見した時点での対処法を先に決めておくと、作業が止まりません。

まず、矛盾の「どちらを正とするか」を自分で決めます。AIに「どちらが正しいか判断して」と丸投げすると、そのAIは文脈をもとに推測するだけで、意図を知ることができません。作者が決めた答えをAIに渡して修正させるのが基本です。

次に、その矛盾が設定シートの記述不足から生まれたかを確認します。もし設定シートに書かれていなかった情報が原因なら、修正と同時にシートに追記します。同じ矛盾を繰り返さないための更新です。

修正の指示はこのような形になります。

【修正依頼】第2章で「ヴォルフはエルマの居場所を知らない」と書かれていますが、これは設定と矛盾します。確定した出来事によれば、ヴォルフはエルマを3年間追跡しています。第2章の該当シーンを以下の制約で書き直してください。(制約:ヴォルフはエルマの居場所を知っているが、まだ動く理由がない、という状況にする)

問題の箇所・矛盾の内容・正しい状態・修正の方向性をセットで伝えると、意図に近い結果が得られやすくなります。

次の行動

まず手元のゲーム企画について、世界ルール・禁止事項・登場人物・確定した出来事の四項目だけで設定シートを作ってみてください。完璧でなくてよく、現時点で決まっていることを書き出すだけでも、AIとの作業の質が変わります。作ったシナリオをブラウザゲームとして動かす段階になったら、アソバースへのZIPまたはHTMLファイルの投稿から公開まで試してみてください。