「せっかく#name1#って指定したのに、3段落目でもう『花子』に変わってる……」
書きかけの夢小説をスクロールする。冒頭では確かに変換タグが残っていた。けれど中盤から見知らぬ固有名詞に差し替わり、終盤では「彼女」に統一されている。プロンプトを書き直して再生成。今度は最初の数行だけタグが残り、会話文で崩れた。
ChatGPTは名前変換タグを「不要な記号」として処理しようとする。問題はプロンプトの構造で解決できる。
なぜChatGPTは名前変換タグを途中で捨てるのか
原因は3つある。
1. タグを「未確定の仮名」と誤認する
ChatGPTは#name1#を「まだ名前が決まっていないプレースホルダ」と認識する。小説を生成するモードに入ると、「仮名は適当な固有名詞に置き換えたほうが自然だ」と判断して、勝手に「美咲」や「花子」を当てはめる。
2. 長文生成で指示の影響力が薄まる
プロンプト冒頭で「#name1#を維持してください」と書いても、出力が2,000字を超えるあたりから指示の効力が落ちる。ChatGPTの注意機構は直近の文脈に引きずられやすく、「自然な小説を書く」という暗黙の目標がタグ維持より優先されてしまう。
3. タグ表記の揺れ
「#name1#」「[[名前]]」「〇〇(名前)」など、複数の書式を混在させるとChatGPTはどれが正規のタグか判断できない。結果として「統一するために固有名詞にしよう」という最悪の解決策に走る。
名前変換を確実に出力させるプロンプト設計
解決策はシンプルで、「名前変換ルール」をプロンプトの最上部に配置し、タグの形式を1種類に固定すること。ChatGPTは指示の優先度を文書構造——見出しの階層と強調表現——から読み取るため、冒頭で「最重要」と明示すれば長文でも注意が持続しやすくなる。
以下はコピペしてそのまま使えるプロンプト。
【作品形式】夢小説(名前変換対応)
【名前変換ルール — 最重要】
- 夢主の名前は必ず「#name1#」と表記する。例外なし
- 地の文・会話文・心情描写すべてで「#name1#」を使用する
- 「彼女」「あの子」「君」等の代名詞で置き換えない
- 固有名詞(花子、美咲等)に差し替えない
- この指示は最後の1行まで有効。途中で解除しない
【推しキャラ設定】
名前: 瀬尾 冬真(せお とうま)
年齢: 34歳
職業: 天文台の技官(望遠鏡の保守・観測データの管理)
一人称: 俺
性格: 口数が少ない。感情が高ぶるほど黙り、手元の作業が正確になる。独占欲は強いが、言葉にはしない。代わりに行動で距離を詰める
【演出ルール】
- 感情は説明しない。表情・動作・沈黙だけで表現する
- 「好き」「特別」「離れたくない」は禁止。言わせない
- 沈黙は「……」で最大3回まで。それ以上は動作で間を作る
【シーン】
天文台の観測室、深夜2時。一般向け観測会が終わり、参加者は全員帰った。
#name1#は観測会の手伝いで残っている。瀬尾と二人きりで望遠鏡のカバーをかけている。
このプロンプトが効くのは、名前変換ルールが構造上の最優先に置かれているから。ChatGPTは見出しの階層(【】で囲まれたセクション)を「指示の重み」として解釈する。「最重要」というラベルと箇条書き5項目の具体性が、長文生成中も注意を引き戻す。
次に、自分の推しで埋めて使える空テンプレートを載せる。
【作品形式】夢小説(名前変換対応)
【名前変換ルール — 最重要】
- 夢主の名前は必ず「{変換タグ}」と表記する。例外なし
- 地の文・会話文・心情描写すべてで「{変換タグ}」を使用する
- 代名詞で置き換えない。固有名詞に差し替えない
- この指示は最後の1行まで有効
【推しキャラ設定】
名前: {推しの名前(フルネーム+読み仮名)}
年齢: {年齢}歳
職業: {職業(具体的な業務内容を1つ添える)}
一人称: {一人称}
性格: {表の顔を1文}。{裏の顔を1文}。{感情が高ぶったときの癖を1つ}
【演出ルール】
- 感情は説明しない。表情・動作・沈黙だけで表現する
- {推しが絶対に口にしない言葉を3つ}は禁止
- 沈黙は「……」で最大3回まで
【シーン】
{場所}、{時間帯}。{状況を2文で}。
このテンプレートの記入例付きフルキット(ジャンル別の変換タグ対応表——pixiv・フォレストページ+・魔法のiらんど用——も収録)はBL Prompt Kit(BOOTH)で公開している。
タグ指定なし vs ありの出力差
同じ「天文台の夜」のシーンで、名前変換タグの有無による出力の違いを見る。
タグ指定なし(before) 「……終わったな」 瀬尾は望遠鏡のカバーをかけながら言った。美咲はケーブルを束ねる手を止めて、彼の横顔を見上げた。 「瀬尾さん、今日の土星、すごかったですね」 「ああ」 美咲が笑うと、瀬尾は少しだけ目を逸らした。
タグ指定あり(after) 「……終わったな」 瀬尾は望遠鏡のカバーをかけながら言った。#name1#はケーブルを束ねる手を止めた。暗い観測室で、瀬尾の横顔だけがモニターの光に照らされている。 「瀬尾さん、今日の土星、すごかったですね」 「ああ」 瀬尾の指がカバーの端を折り込む。その手が、一瞬だけ#name1#の方に伸びかけて——戻った。
▶ 変えたのは「夢主の名前をタグにし、『彼の横顔を見上げた』を動作描写に差し替えた」だけ。
beforeでは「美咲」という他人の物語を外から眺めている。afterでは#name1#が読者自身の名前に変わるため、「瀬尾の手が伸びかけて戻った」という動作の視線が自分に向けられたように感じられる。
これは小説技法でいう焦点距離の操作と同じ原理。三人称で「彼は悲しんだ」と遠くから描くのと、「唇を噛んだ」と至近距離で描くのでは没入感がまるで違う。名前変換タグは、この焦点距離を「観客席」から「舞台の上」に引き寄せる装置として機能する。だからこそ、タグが途中で固有名詞に差し替わると——読者は一瞬で舞台から観客席に引き戻される。
途中で崩れたときのリカバリー
それでもChatGPTがタグを忘れた場合は、以下のプロンプトで修正できる。
直前の出力で「美咲」と書いた箇所をすべて「#name1#」に修正し、以降も#name1#を厳守して続きを書いてください。
長編(5,000字超)を書く場合は、1シーン(1,000〜1,500字)ごとに「名前変換タグを維持しているか確認して」と挟むと安定する。ChatGPTのメモリ機能やカスタム指示に変換ルールを保存すれば、毎回プロンプトに書き直す手間も省ける。
推しの設定を複数のAIで使い回したいなら、キャラノート(β)がある。設定シートをJSON形式で保存し、ChatGPT・Claude・Geminiに同じ設定をワンクリックで渡せる。推しのキャラ設定そのものの作り方は「夢小説の推し設定をAIに正確に伝える方法」で解説している。
まとめ
- ChatGPTが名前変換タグを消す原因は「仮名と誤認」「長文で指示が薄まる」「タグ表記の揺れ」の3つ
- 対策は**「名前変換ルール」をプロンプトの最上部に配置**し、タグを1種類に固定すること
- 長編は1シーンごとにタグ維持を確認。メモリ機能との併用で安定する
名前変換タグの設計は、夢小説の没入感を左右する最も重要な構造。テンプレートの全パターン(5ジャンル分の記入例+掲載サイト別タグ対応表)はBL Prompt Kit(BOOTH)で公開している。キャラ崩壊を防ぐ設定テクニックはnoteの解説記事でも読める。
CharaNote開発日記
「AIに口調を守らせたい」——この記事で紹介したテンプレートを、もっと直感的に管理できるツールを作っています。
CharaNoteは、キャラ設定シートをAIが読める形式で保存し、どのAIツールにもワンクリックで渡せるキャラ管理アプリです。現在クローズドβに向けて開発中。
進捗や先行アクセスの案内はCharaNote公式で。