キャラクター3層人格モデル — 表層・深層・無意識でAIの「性格ブレ」を制御する
「勇敢な主人公」が突然、臆病になる問題
AIに小説を書かせると、キャラクターが壊れます。
第1章で「恐れを知らない剣士」として描写した主人公が、第15章で突然理由もなく怯え始めます。皮肉屋だったはずの相棒が、いつの間にかお人好しになっています。クールなヒロインの口調が急に砕けたかと思えば、次の章では元に戻っています。
この現象を「AIの限界」と片付けるのは簡単ですが、原因は明確です。キャラクターの「性格」が定義されていない、あるいは定義が弱いのです。
novel-automation-system(GitHub)では、この問題を「3層人格モデル」で解いています。
3層人格モデルの設計
人間の性格は一枚岩ではありません。心理学では古くから、人格の多層構造が議論されてきました。この知見を、AIが扱えるデータ構造に変換したのが3層人格モデルです。
表層(Surface)— 日常の行動パターン
外から見える振る舞いの層です。話し方の癖、感情の表し方、日常的な反応パターン。
personality:
traits:
- 口数が少ない
- 目を合わせるのが苦手
- 困っている人を見ると放っておけない
speechPatterns:
- 語尾が「…」で途切れがち
- 敬語と素の口調が混ざる
- 感謝を伝えるのが下手
quirks:
- 考え事をするとき無意識に剣の柄に触れる
- 甘いものに目がない(本人は否定する)
深層(Deep)— 価値観と信念
行動の裏にある「なぜそうするのか」の層です。
values:
- 約束を守ることが何より重要
- 強さとは誰かを守れること
- 過去は変えられないが、未来は選べる
無意識層(Unconscious)— 隠された動機
キャラクター自身も自覚していない、内面の最深層です。
backstory:
trauma:
- 幼少期に村を焼かれ、目の前で家族を失った
- 助けを求める声を無視して逃げた罪悪感を抱えている
secrets:
- 自分の力を制御できない恐怖を誰にも言えない
motivations:
- 表向き: 世界を救うため
- 本音: あの日逃げた自分を許すため
関係性の数値管理
キャラクター同士の関係性は数値で管理します。
type: FRIEND
strength: 0.7
emotions:
trust: 0.8
respect: 0.6
affection: 0.5
dependency: 0.3
jealousy: 0.1
関係性を数値化する理由は、曖昧さを排除するためです。「仲が良い」という定性的な設定では、AIの解釈が揺れます。
成長計画 — growth_plan でキャラクター変化を事前設計する
{
"growthPhases": [
{
"chapterEstimate": "1-15",
"parameterChanges": {
"courage": { "from": 0.3, "to": 0.5 },
"trust_in_others": { "from": 0.2, "to": 0.4 }
},
"skillAcquisitions": ["basic_swordsmanship"]
}
]
}
まとめ
AIのキャラクターブレは、モデルの性能ではなく、入力データの設計で解決する問題です。表層の行動パターン、深層の価値観、無意識の動機——この3層を構造化データとして定義する。AIが解釈できる「判断の構造」を事前に作るという設計思想に基づいています。
