ChatGPTに「クールで不器用な28歳の探偵」と指定した。最初の3行は良かった。5行目で急に饒舌になり、10行目では「ありがとうございます!」と叫んでいた。
設定を書いたはずなのにキャラが動かない。口調が3ターンで崩れる。長編の途中で別人になる。——AI小説を書く人なら、一度はぶつかる壁だろう。
原因はシンプルで、キャラを「説明」しているだけで「設計」していない。AIに渡す設定は、人間が読んで「わかる」レベルでは足りない。AIが「守れる」レベルまで構造化する必要がある。
この記事では、キャラ設定を5つの層に分解する「5層モデル」を使って、崩壊しないキャラをゼロから組み立てる方法を解説する。1人のキャラを実際に設計し、before/afterで効果を検証するところまで一気に進む。
AI小説のキャラ設定が「動かない」原因
キャラが崩壊するパターンは、突き詰めると3つに集約される。
1. 設定の粒度が粗い
「明るくて元気」「クールで寡黙」のような一語の性格指定は、AIにとって解釈の幅が広すぎる。「クール」が無口なのか皮肉屋なのか冷酷なのか、AIは毎回違う解釈を選ぶ。
2. 口調のルールがない
性格は書いても口調を書かない人が多い。AIが最も頻繁に崩すのは口調だ。一人称・語尾・セリフの癖・禁止語——この4つを明示しなければ、AIは「それっぽい丁寧語」にデフォルト回帰する。
3. 「今この瞬間」の情報がない
キャラの基本設定だけでは、そのシーンでどんな感情状態にあるか、相手との距離感がどこまで縮まっているかをAIは判断できない。結果、毎シーンを初対面のテンションで書き始める。
これら3つの原因は、設定の「層」が足りていないことに帰結する。必要なのは、性格だけでなく口調・内面・関係性・状態まで含む多層的な設定だ。
個別の問題と対策については、AI小説キャラクターの作り方——3ステップで直す方法とキャラ崩壊をプロンプトの構造で解決する方法で詳しく扱っている。この記事ではそれらを「体系」としてつなぐ。
キャラ設定5層モデル——「喋らせる」から「設計する」へ
5層モデルは、キャラ設定を以下の5つの層に分解する。上の層ほど基礎的で、下の層ほど動的に変化する。
第1層: コア設定(動機と矛盾)
第2層: 口調の4点セット
第3層: 性格の三面構造
第4層: 関係性の力学
第5層: 状態管理(シーンごとに更新)
第1層: コア設定——動機と矛盾
キャラの核は「何を望み、何が邪魔しているか」の一文で定義する。
名前・年齢・職業は必須だが、それだけではキャラは動かない。「この人物はなぜ物語の中にいるのか」を決める。そして、その望みと矛盾する性質を1つ仕込む。
【コア設定】
- 名前: 梶 凪(かじ なぎ)
- 年齢: 24歳
- 職業: 義肢装具士
- 動機: 患者の生活を自分の手で支えたい
- 矛盾: 人に優しくされるのが苦手で、好意を向けられると攻撃的になる
動機と矛盾の組み合わせが、キャラに「葛藤」を生む。AIは葛藤があるキャラほど一貫した行動を生成しやすい。なぜなら、どのシーンでも「望み」と「矛盾」の引力で行動の方向が制約されるからだ。
第2層: 口調の4点セット
口調はキャラの「声」そのもの。AIが最も崩しやすく、最も効果的に制御できる層でもある。
4つの要素をセットで指定する。
【口調ルール】
- 一人称: 俺
- 語尾: ぶっきらぼう。「〜だけど」「〜じゃねえの」。
患者の前だけ「〜ですね」に切り替わる
- セリフ例:
- 「別に」(照れ隠しの第一声)
- 「……知らねえよ、そんなの」(目を逸らしながら)
- 「ちゃんと装具つけてくださいね」(患者向け。声が一段柔らかくなる)
- 禁止語: 丁寧語全般(患者対応時以外)、「お願い」、「ありがとう」(素直に言えない)
セリフ例を3本入れるのが肝心だ。 AIはセリフ例をパターンとして学習し、類似の口調を生成する。禁止語は「こう喋れ」より「こう喋るな」の方がAIの制御精度が高い。
口調設計の詳しいテクニックはAI小説で口調が崩れる原因と防ぐ方法で解説している。
第3層: 性格の三面構造
性格を「表の顔」「裏の顔」「矛盾」の3層で記述する。一語の形容詞(「クール」「優しい」)は使わない。
【性格の三面構造】
- 表の顔: 無愛想で近寄りがたい。目つきが鋭く、初対面の人間は萎縮する
- 裏の顔: 患者一人ひとりの装具に手書きのメモを添えている。
自分の優しさを他人に知られるのが耐えられない
- 矛盾: 「触んな」と手を払うのに、相手が本当に離れると
自分から距離を詰める
「表の顔」はAIが最初に参照する情報だ。 ここが曖昧だと、AIは毎回違う人格を生成する。「裏の顔」は物語が進んだときに徐々に見せる層。「矛盾」は、読者がキャラに惹かれるフックになる。
第4層: 関係性の力学
相手キャラとの関係を「態度」と「本音」に分けて書く。BL小説なら攻め受けの力学、夢小説なら推しと夢主の距離感がここに入る。
【関係性(対・綾瀬壮一郎)】
- 表面の態度: 素っ気ない。目を合わせない。「あんたに関係ねえだろ」が定番
- 本音: 綾瀬の大きな手が視界に入ると、心拍が上がる。
それを自覚しているから余計に攻撃的になる
- 距離感の現在地: 副業先の知り合い → 名前で呼ぶようになった段階
- 変化のトリガー: 綾瀬が他の誰かと親しげに話しているのを見たとき、
自分でも理解できない苛立ちが湧く
「変化のトリガー」を書いておくと、物語の転換点でAIが自然な感情変化を描ける。ChatGPTのキャラ設定プロンプト——構造で解決する方法では、この関係性設計のテンプレートをさらに詳しく紹介している。
第5層: 状態管理——シーンごとに更新する
ここまでの4層は「静的」な設定だ。第5層だけは、シーンが進むたびに更新する「動的」な層になる。
【現在の状態】
- 場面: 閉店間際のショッピングモール。フードコートの端の席
- 時間帯: 午後8時50分。閉店アナウンスが流れている
- 身体状態: 花火大会の警備バイト帰り。足が痛い。制服のままで来てしまった
- 感情状態: 綾瀬に「飯食わねえ?」と誘われて断れなかった自分に苛立っている
- 直前に起きたこと: 綾瀬がトレーを持って「何食う?」と聞いてきた。
自分で選びたいのに、先に動かれた
この「状態管理」がないと、AIは毎シーンを白紙状態から書き始める。結果、前のシーンで怒っていたキャラが次のシーンで平然としている——いわゆる「記憶喪失」が起きる。
長編での状態管理の詳しい運用方法はAI小説の設定忘れを防ぐ「設定リマインダー」で解説している。
実践——ゼロからキャラを組み立てる
5層モデルを使って、実際にAIに渡すプロンプトを組み立てる。上で設計した梶凪の設定を1つのプロンプトにまとめるとこうなる。
あなたは小説の共同執筆者です。以下のキャラクター設定を厳守して、物語を書いてください。
【キャラクター: 梶 凪(かじ なぎ)】
■ コア設定
- 24歳、義肢装具士
- 動機: 患者の生活を自分の手で支えたい
- 矛盾: 好意を向けられると攻撃的になる
■ 口調ルール
- 一人称: 俺
- 語尾: 「〜だけど」「〜じゃねえの」。患者の前だけ「〜ですね」
- セリフ例:
「別に」
「……知らねえよ、そんなの」
「ちゃんと装具つけてくださいね」
- 禁止語: 丁寧語全般(患者対応以外)、「お願い」、「ありがとう」
■ 性格
- 表: 無愛想、目つきが鋭い、初対面の人間は萎縮する
- 裏: 患者の装具に手書きメモを添える。優しさを知られるのが嫌
- 矛盾: 「触んな」と言うのに、相手が離れると自分から距離を詰める
■ 関係性(対・綾瀬壮一郎)
- 態度: 素っ気ない。「あんたに関係ねえだろ」が定番
- 本音: 綾瀬の手が視界に入ると心拍が上がる
- 現在地: 副業先の知り合い → 名前で呼ぶようになった段階
■ 現在の状態
- 場面: 閉店間際のショッピングモール、フードコートの端
- 感情: 誘いを断れなかった自分に苛立っている
- 直前: 綾瀬が先にトレーを持って動いた。自分で選びたかった
【演出ルール】
- 感情は説明しない。表情・沈黙・動作・セリフだけで表現する
- 「嬉しかった」「悲しかった」等の心情説明は禁止
- 感情が高ぶるほど言葉を少なく、動作を小さくする
ポイントは「演出ルール」を設定の外に出していること。 演出ルールはキャラ固有ではなく、物語全体に適用するルールだ。キャラ設定と分離しておくことで、複数キャラに同じ演出品質を適用できる。
キャラ崩壊を構造で防ぐ——before/afterで効果を見る
5層モデルの有無で、AIの出力がどう変わるか。同じシーン(閉店間際のフードコートで、綾瀬が梶にうどんを差し出す場面)をbefore/afterで比較する。
5層モデルなし(before) 梶は綾瀬からうどんを受け取った。温かいうどんの湯気が顔にかかり、少し嬉しくなった。 「ありがとう、綾瀬さん」 梶は素直に感謝の気持ちを伝えた。綾瀬は優しく微笑んだ。
5層モデルあり(after) 綾瀬がトレーを置いた。きつねうどん。揚げが二枚載っている。 「……頼んでねえけど」 「凪、腹減ると機嫌悪くなるだろ」 梶は割り箸を割った。片方が短くなった。綾瀬が自分の箸と無言で交換する。 梶はその箸で揚げをつついた。視線はうどんに落としたまま、上げなかった。
beforeでは「嬉しくなった」「素直に感謝を伝えた」と感情を説明している。「ありがとう」は禁止語のはずだ。afterでは、感情を一切説明していない。箸を交換する動作、視線を上げない仕草だけで、梶の照れと綾瀬の距離の詰め方を見せている。
この差を生んでいるのが、口調の禁止語(第2層)、性格の矛盾(第3層)、演出ルールの組み合わせだ。
複数キャラ管理と長編運用のルール
2人以上のキャラを対比で設計する
複数キャラを登場させるとき、各キャラの設定を独立に作ると「声」が混ざりやすい。コツは、対比軸を先に決めることだ。
綾瀬と梶の場合:
| 対比軸 | 綾瀬壮一郎 | 梶凪 | |--------|-----------|------| | 一人称 | 俺 | 俺 | | 語尾 | 「〜だよ」「〜だろ」(柔)| 「〜じゃねえの」「〜だけど」(硬)| | 沈黙の意味 | 相手を観察している | 言葉を探している | | 感情の出し方 | 声のトーンが下がる | 態度が荒くなる |
一人称が同じ「俺」でも、語尾と沈黙の質で書き分けられる。AIは「同じ一人称のキャラ」を最も混同しやすいので、語尾と沈黙のパターンで差をつけるのが効果的だ。
複数キャラの会話テクニックの詳細はAI小説で複数キャラの会話を書き分ける方法で「発話マトリクス」のテンプレートとともに解説している。
長編で設定を維持する「設定リマインダー」
5層モデルの第1〜4層は、最初に一度設定すれば基本的に変わらない。しかし長編(1万字以上)になると、AIのコンテキストウィンドウから設定情報が押し出されていく。
対策は「設定リマインダー」——新しいシーンを書くたびに、第5層(状態管理)だけを更新して再注入する方法だ。
【設定リマインダー: シーン3】
■ 梶凪の現在の状態
- 前のシーンで綾瀬に「凪」と呼ばれた。初めてだった
- 動揺を隠すために早足で帰った。まだ心拍が戻っていない
- 次に会ったら何て呼べばいいかわからない
※口調・性格・関係性は初期設定を維持してください
全設定を毎回貼り直す必要はない。「今のシーンに必要な変化点」だけをリマインドすれば、AIは第1〜4層の設定と組み合わせて一貫した続きを書ける。
ツールで設定を一元管理する
キャラが3人を超えると、テキストファイルでの管理は限界が見えてくる。キャラ設定をクラウドに保存し、どのAIツールにもワンクリックで渡せる環境があると、設定の参照忘れによるキャラ崩壊を物理的に防げる。
キャラノート(β)は、5層モデルのようなキャラ設定シートをAIが読める形式で保存・管理するために開発中のツールだ。「設定を書く」と「設定をAIに渡す」を分離することで、執筆に集中できる環境を目指している。
まとめ
キャラ設定の5層モデルを整理する。
- コア設定: 動機と矛盾で「葛藤」を仕込む
- 口調の4点セット: 一人称・語尾・セリフ例3本・禁止語
- 性格の三面構造: 表の顔・裏の顔・矛盾
- 関係性の力学: 態度と本音を分離し、変化のトリガーを設定する
- 状態管理: シーンごとに感情・身体・直前の出来事を更新する
第1〜4層で「崩壊しないキャラの骨格」を作り、第5層で「シーンに応じた動き」を制御する。この構造があれば、3ターンで口調が崩れる問題も、長編で別人になる問題も、原因を特定して層ごとに修正できる。
キャラ設定のテンプレート一式はBL Prompt Kit(BOOTH)で配布している。口調ルール・性格三面構造・関係性テンプレートの記入例3パターン付きで、コピペから始められる構成になっている。
CharaNote開発日記
「AIに口調を守らせたい」——この記事で紹介したテンプレートを、もっと直感的に管理できるツールを作っています。
CharaNoteは、キャラ設定シートをAIが読める形式で保存し、どのAIツールにもワンクリックで渡せるキャラ管理アプリです。現在クローズドβに向けて開発中。
進捗や先行アクセスの案内はCharaNote公式で。