6. 調査根拠・テスト・再確認方法
6.1 調査の単位
関係するクラス名を列挙するだけでなく、入力の受付、キューの選択、生成要求、最終安全境界、音声再生、実配送後の状態確定まで呼び出しを追跡した。その上で、台本・自由会話・カンペ・ゲーム・コラボの分岐と、Admin/Functions/Unity間の設定適用を比較した。
コードのコメントや既存設計書だけを実装完了の根拠にしていない。たとえば、スパチャの「金額順」というコメントよりFIFOの実装を優先し、アバターinterfaceの古いPhase説明より現在のVRM/PSD実装を優先した。時系列改善計画は実装済み範囲と分けた。
証拠の強さ
| 表現 | この資料での意味 |
|---|---|
| 実装を確認 | 実行コード・呼び出し元・適用条件を静的に確認した |
| コード既定 | 宣言時の値やfallback値。Unityシーン/クラウドの実効値は別 |
| 配線を確認できない | 指定したコード範囲の呼び出し探索では確認できない。外部/シリアライズ配線の不存在証明ではない |
| 未確認 | 実装の一部、稼働状態、または体験品質を確認していない |
| 体験仮説 / 不足候補 | 実装上の制約から考えられる影響。実際の視聴結果による検証が必要 |
6.2 主要な追跡開始点
行番号は調査時点の作業ツリーに対する値。後の変更でずれる場合はシンボル名で検索する。source_manifest.json のSHA-256で同じファイル内容か確認できる。
| 調べたいこと | ファイル / シンボル | 調査時行 |
|---|---|---|
| 通常コメントの受付条件 | ChatGPTController HandleNewComment(trace付き) |
3391 |
| 採用・台本・ASMRの発話ゲート | 同上 ProcessNextComment |
3059 |
| 1件の生成から配送まで | 同上 ProcessCommentInternal |
805 |
| 次に拾う入力 | Commentstock DequeueNextSingleLocked |
1335 |
| 用途別優先値 | 同上 GetWorkPriority |
2160 |
| LLMの経路・retry分岐 | LLMController GenerateResponseInternal |
545 |
| 通常プロンプト | MainPrompt BuildPrompt |
16 |
| 人格の入口 | PromptSettings GetMindPrompt |
9 |
| 全体の文字予算 | Utilities GetMaxPromptCharsBudget |
119 |
| 演出の選択 | ResponseDirector DirectResponseWithTopicOwnership |
173 |
| 会話v2の失効条件 | ConversationExperiencePolicy CriticalFactKeys |
18 |
| 実発話の共通反映 | PromptContext NotifyCharacterSpoke |
198 |
| キャラの体験の投影 | CharacterExperience BuildCharacterExperiencePrompt |
108 |
| キャラの体験の確定 | 同上 CommitCharacterExperience |
214 |
| 台本寄り道の予約 | ScriptRunner.AudienceInteraction TryReserveAudienceDetour |
138 |
| 自由会話の有効条件 | FreeTalk IsFreeTalkConversationActive |
15 |
| 配送結果の契約 | TTSController SpeechPlaybackResult |
276 |
| 単発TTSの境界 | 同上 SpeakTextInternal |
963 |
| 話者の口パク制御 | 同上 BeginAvatarSpeakingRoute |
1437 |
| チャンクTTSの境界 | Chunking SpeakTextChunkedInternal |
74 |
| チャンク再生と先読み | 同上 PlayChunksSequentially |
694 |
| cloud設定→実行クラス | CharacterConfigSyncManager ApplyCloudConfigToLocal |
500 |
| 会話v2設定のAPI検証 | characterConfigFields validateConversationQualityConfig |
116 |
各章には、この表以外の記憶・台本・演技・安全・拡張・分析の実装へのリンクも記載している。
6.3 既存テストから読み取れる契約
下表はテストコードの確認であり、今回の作業でテストを実行して合格したという報告ではない。 また、ソース文字列の配線チェックは、実LLM・実音声・映像を通したend-to-endテストではない。
| テスト | 主に守る契約 | テストの性質・限界 |
|---|---|---|
| LiveChatFreshnessTest | 投稿/受信時刻、未来時刻補正、enqueue/dequeueの失効、課金の保持 | parser・状態・Unityコンポーネントの検証。実ネットワーク遅延とは別 |
| ChatResponseDeliveryContractTest | 最終検証→副作用/UI→TTS→配送後記憶の配線 | 主にソース文字列と処理順序の検査 |
| ScriptCommentWaitTest | 可聴完了からの待ち、猶予、古い配送、pause | 状態機械の時刻を指定した検証 |
| AudienceDetourStateTest | v2の配送後期限、2ターン、残り尺、scope、候補重複 | 純粋な状態遷移。未コミット変更を含む |
| CharacterExperienceTest | 安定ID、期限、接し方、約束想起、消去 | 状態/投影の例示検証。任意の自然言語の理解を保証しない |
| ConversationExperiencePolicyTest | reasoningの条件、重要Fact変更、配送sequence、時系列投影 | 新規未追跡ファイルを含む作業ツリー上のテスト |
| ViewerPiiPromptPolicyTest | 既定OFF、各予算、request scope、キャラ切替時reset | 純粋関数と配線契約の混在 |
| OperatorCueDirectTtsBoundaryTest | trim以外の改変拒否、辞書置換拒否、字幕の開始時刻 | コンポーネント検証とソース配線検証の混在 |
| TtsAvatarLipSyncRoutingTest | 単発/チャンクの同じ口パク経路、最後のleaseで閉口 | proxyによる呼び出し観測と配線検証。実モデルの映像品質とは別 |
その他、SpeechPlaybackLedger、SpeechDeliveryReceipt、SpeechAuditTrail、GameReaction、SelfReflection、FreeTalk、台本意味記憶などの関連テストも存在する。全テストスイートの最新実行状況・CI結果はこの資料の対象外。
6.4 再現性と作業ツリーの扱い
調査基準は main のHEAD 385ba573f5497d4abb26e4a018a69316a3bd01df と、その上の未コミット変更。とくに会話品質v2、台本寄り道期限、LLM経路、AivisCloud等の変更が含まれるため、HEADだけをcheckoutしてもこの資料と完全には一致しない。
source_manifest.json は、本文で明示的に参照した実装・テスト・設計資料について、repo相対path、byte数、行数、SHA-256、採取時のGit状態を記録する。ソースの複製や秘密情報の抽出は行わない。この一覧は参照先の同一性を確認する補助であり、リポジトリ全体を網羅したファイル一覧ではない。
本資料の作成では既存の実装変更を修正・commit・deployしていない。稼働中Playerのビルドがこの作業ツリーと同じかも未確認。
6.5 調査範囲と残る確認
| 範囲 | 今回の確認 |
|---|---|
| Unityの通常コメント応答、台本、自発発話 | 入力から配送後commitまでを重点的に静的解析 |
| 人格、記憶、状況、演出、会話v2 | 状態、投影、既定値、経路差を追跡 |
| TTS、表情、口パク、安全・復旧 | 応答に接続する境界とprovider差を解析 |
| Admin/Functions | 応答に関連する設定フォーム、検証、同期への接続を確認 |
| 参加型拡張、投票、BGM、シリーズ | 応答との接点と機能の存在を確認。各サブシステムの全面監査ではない |
| 現在の本番キャラの設定 | 未取得。キャラ別の実効値は断定しない |
| シーン/Prefabの実配置と起動順 | コードの解決方法を確認。実Playerの全配線は未検証 |
| 実providerとの互換性・速度 | 未実行。コード中のモデル名を現在の外部仕様の証明にしない |
| 視聴者が見る映像・聞く音声 | 未収録・未視聴 |
| 面白さ、離脱、再訪、関係形成 | 実測・人手評価なし。5章は今後の検証案 |
追加調査では、まず利用中キャラと配信モードの実効設定をこの仕様に重ねる。コードを再読する前に、どの経路が実際に使われたかを絞ると、機能不足と設定・接続・生成品質の問題を分けやすい。