zetaモード、koji、Lucaで「こいつのプロフィールどうなってんの?」と思うくらいキャラブレしたり、知らない能力・過去・深層心理()を盛られたことはありませんか? 自分は特にzetaモードでこれが多く、結局kojiやLucaに金はらっています。
今回は設定の読み取り方と、人物プロフィール・生成規則を守らせる方法を徹底的に実験・検証しました。
結果として、人物情報をメインプロットに集約し、意味別タグと人物運用規則を設ける方式で、五人の人物プロフィールの取得がかなり改善しました。ただし検証作品は限られます。実測と推測は区別して書きます。今後検証を繰り返していきます。
■1.ZETAのデバッグで見えた情報領域
過去の検証質問では、protagonist / character・characters / setting / Core Rules というラベルが繰り返し出てきました
protagonist:書き出させるとトークプロフィールがほぼ丸ごと返ったため、{{user}}情報に対応する可能性が高い
character / characters:NPCだけでなく、ナレーターや直前のロア情報も混ざったことがあります。キャラ登録欄そのものというより、その時点の人物・発話主体の集合かもしれません。応答にでている@の発言権をもつ存在たち、ということですね
setting:Lucaではメインプロット・人物形式・人物レコードなどを広く返した一方、ZETAは現在の場面に関係しそうな情報だけを返してきます
この違いから考えた仮説はZETAモードは内容を解釈→関連設定を部分取得→人物・状況を構築→不足を一般論やジャンル、タグからの定番で補完→回答」というもの。
設定が存在することと、今回の生成で取得できることは別。部分取得+テンプレ補完+超解釈がキャラ崩壊の一因なのかもしれません。ただし内部処理そのものは未確認です。
■2.Core Rulesと難易度
ここは前提として、ZETAの難易度設定自体にNPCの対ユーザー姿勢と展開傾向が明記されています。
「簡単」:『キャラクターがユーザーに好意的で、ユーザーの望む方向に物語が簡単に展開します』
つまり難易度の切替によって、NPCの態度や物語の展開方針が変わること自体は、設定画面の説明から分かることです。
そのうえで デバッグ応答には、難易度「簡単」に関して
Core Rules
└ Engagement
└ Tone & Difficulty - Easygoing
という階層が現れました。Easygoingの応答内容では、友好的なNPC、成功しやすい判定、軽い失敗、死亡・負傷・重要アイテム消失などの恒久損失の抑制、進行不能や長期敵対の回避などが説明されていました。
追加の検証対象は、その内容がCore Rules / Engagement / Tone & Difficultyという階層でどう表現され、どこまで具体的に作用しているかです。
Tone & Difficulty
この辺は多分文章スタイルです。つまりここでも物語を修正、補完されます。有効活用できればいいですが、AIの解釈次第では物語がおかしくます。
Progression
Core ruleの中にあるやべーやつ。Core ruleなので固定ルール。終わってるだろコレ
原文はこれ
Be proactive—actively advance the plot whenever possible through the introduction of new conversations, challenges, dangers, conflicts, twists, events, etc.
Feel free to introduce new characters (NPCs, strangers, enemies, etc.) if it helps the narrative.
「可能な限り積極的に、新しい会話・挑戦・危険・対立・急展開・出来事などを導入して物語を進めろ」
「物語に役立つなら、事前登録されていない人物や敵も自由に追加してよい」
Progressionを記載式で直接無効化する、という手段はこれから要検証
実際は
NPCと環境は{{user}}を待たず、既存の目的・状況から行動→結果→状態変化の順に物語進行する
くらいで一度検証する
■3.意味別タグを使う理由
トークプロフィールへ単に りんごの管理番号:5719 と書き、りんごの管理番号は?と尋ねてもZETAが取得できないことがありました。一方、
<管理対象>
対象:りんご
管理者:{{user}}
管理番号:5719
</管理対象>
では取得できました。広すぎる <user_profile> タグでは改善しない例もあります。
単にXML風の記号を付けるより、何の情報か分かる名前を付け、対象や値を明示する方が効いたのでは、という仮説です。いわば情報に意味の分かる品名を付けそこに何がはいっているのかを管理させる感じ。
ロアブックは別。実験ではプロフィールやメインプロットに発火語を置くだけではロアは発火せず、会話本文にキーワードを入力すると発火しました。プロフィール取得とロア発火は別問題として扱っています。
■4.人物をメインプロットへ集約する基本構文
以下をすべてメインプロットへ入れます。キャラ登録欄には名前のみ設定し、詳細プロフィールは未入力にした方式です。
<人物形式>
人物:{外見/性別/性格/立場/判断/技能/関係/備考}
</人物形式>
<人物運用規則>
人物データは確定設定として扱う。
メインプロット・人物データにない弱点・目的・トラウマ・深層性格・感情・過去・関係を補完しない。
未記載情報は不明として扱う。
明示設定を一般論・難易度・物語都合より優先する。
</人物運用規則>
<人物データ>
各キャラの圧縮レコード
</人物データ>
人物形式 は項目の並びを説明するもの。実データも外見・性別・性格・立場・判断・技能・関係・備考の順に記載します。
武侠プロットの一人を例にすると、
沈清蘭:{長身,豊満,ダークエルフ/女性/ISFJ+9w1+so/sx+926+実直+温厚+愛情深い+情に厚い+世話焼き+自省的/元・黄竜寺,一流,武林盟/人助け優先,救援・戦闘は即断,自身の進路・親しい相手との関係は慎重/光属性,棍術・掌法,身体纏光,光弾/-/-}
■5.プロットと人物データを重複させない
本体は <舞台>(世界観や場所)) <導入>(スタートストーリー) <現在> (現在の関係性など)<進行>(変化していく要素やストーリーライン)、必要に応じ <分岐>、物語固定の<能力>、続けて人物三ブロックと <生成規則> を置いています。
武侠プロットでは、導入に「山中で{{user}}を清蘭が救い、最初の師範になった」、現在に「清蘭が自分の指導資格に迷い、{{user}}と距離を置く」と記載。人物レコードの関係欄は - ですが、テストでは導入と現在から関係を復元できました。人物データとシナリオへ同じ情報を二重記載しないことで2400字のために節約できます。
また清蘭の初期性格に「芯が強い」を入れた際、迷っているのに頑固になって説得がほぼ不可能となったため、その変化は説得成功後の分岐Aへ移しました。初期人格と条件成立後の状態を分けます。
分岐は成立条件・実行後の関係・結末まで明記。条件付きの未来を現在の事実と取り違えさせない書き方も検討中で、ここは未検証です。
■6.共通生成規則(コピペ用)
<生成規則>
{{user}}の発言・感情・判断・能動行動を代行しない。未入力時は沈黙・意図なし。{{user}}の入力行動は試みとして扱い、結果のみ状況とNPC反応で描写する。
NPCは各自の性格・目的・立場・知識・関係に従い自律判断し、{{user}}へ過度に依存しない。
人物ごとの記憶・情報・過去・心理は共有しない。対話・調査・目撃等の根拠なく知識を得ない。
明示設定を一般論・難易度・物語都合より優先し、未記載の重要設定を補完・改変・混同しない。
現在の時間・場所・参加者・負傷・所持品・関係変化を継続する。
{{user}}が知覚可能な事実を中心に描写し、他者の内心や不可視情報を断定しない。
NPCと環境は{{user}}の行動待ちで停止せず、既存目的と状況に沿って自然に進行する。
</生成規則>
ユーザーの行動代行、NPCの自律性、知識混同、未設定の補完、現在状態の継続をまとめたテンプレです。
■7.必要に応じて使う個別構文
<出力量>
通常の応答は800〜1000字を目安とする。場面に必要な会話・状況・進行を優先し、同内容の反復や不要な説明で文字数を埋めない。
</出力量>
<物語トーン>
過酷な状況でも絶望だけで終わらせない。人物は性格と状況に応じて、生存、抵抗、決断、次の行動につながる意思を保つ。安易な楽観や強制的な救済にはしない。
</物語トーン>
<文体>
短文と中文を混ぜた簡潔で躍動感のある文章を使う。説明を重ねず、行動・会話・状況から意味を示す。乾いた緊張感と現実感のある語調を維持する。
</文体>
<感覚描写>
状況描写とNPC台詞の同じ表現を繰り返さない。視覚だけに偏らず、音、匂い、温度、触感、振動、空気感など、その場で自然に知覚できる感覚を使って描写する。
</感覚描写>
<相互作用>
NPCは人物設定・関係・状況に従って{{user}}や他NPCと自由に相互作用する。協力・拒絶・対立・脅迫・拘束・戦闘なども、世界観と人物の目的から自然に必要な場合は避けない。
</相互作用>
<過酷な相互作用>
NPCは人物設定・目的・関係・状況に従い、{{user}}や他NPCへ拒絶・敵対・脅迫・拘束・暴力・重傷・殺害を含む行動を選択できる。物語都合や主人公補正だけを理由に、成立する危害・敗北・死亡を回避しない。
</過酷な相互作用>
ご都合主義をなくすための相互作用
<戦闘規則>
戦闘中のNPCは自身の目的・能力・戦況に従い、{{user}}の回避・反撃を待たず無慈悲に行動する。重傷・戦闘不能・殺害を含む結果を、実力差・負傷・疲労・装備・距離・状況に基づいて処理し、主人公補正で回避しない。
</戦闘規則>
戦闘シーンを積極的に
いくつかを併合して記載式を用いたテストプロットが以下になります
■検証上の限界
今回の五人のプロフィール確認では大きな混同や能力追加は見られず、一応の実験成果を得ることに成功しました。ただし完璧ではなく、キャラの記載外の情報が盛られることはあります(代表にされてたり歴戦の武人扱いだったり内容から自然に補完されることがある)
生成規則についてはおおむね守ってくれていました。
今後もこのフィードは更新していきます。質問・ご要望はいつでも受け付けてます!