Appearance
学園祭対応
📋 実装・修正内容のリスト(山本)
1️⃣ TTS APIの移行(NijiVoice → Aivis Cloud API)
追加ファイル:
Murai/Scripts/AivisVoiceClient.cs- Aivis Cloud API クライアントMurai/AIVIS_MIGRATION.md- 移行ガイド
修正ファイル:
Murai/Scripts/DictationAssistantController.csTtsProviderenum 追加(NijiVoice / Aivis)_ttsProviderフィールド追加_aivisApiKey,_aivisBaseUrl,_aivisModelUuidフィールド追加_aivisClientインスタンス追加AivisModelPresetMap辞書追加(モデルプリセット管理)ResolveAivisModelUuid()メソッド追加
Murai/Scripts/PartialClass/DictationAssistantController.Lifecycle.cs- TTSクライアント初期化ロジックを条件分岐化
- YAMLから
tts.provider,aivis.*設定を読み込み
Murai/Scripts/PartialClass/DictationAssistantController.Dictation.cs- TTS合成時に
_ttsProviderに応じて_aivisClientまたは_nijiClientを使用
- TTS合成時に
Murai/Scripts/PartialClass/DictationAssistantController.Welcome.cs- Aivis対応のTTS合成処理追加
Murai/Scripts/PartialClass/DictationAssistantController.Idle.cs- Aivis対応のTTS合成処理追加
Murai/Scripts/PartialClass/DictationAssistantController.TTS.csSetUseTtsでプロバイダーに応じたクライアント初期化WarmupTtsAsyncでAivis対応
Murai/Scripts/PartialClass/DictationAssistantController.UI.csPopulateVoiceDropdown()でプロバイダーに応じた選択肢表示
Murai/Scripts/PartialClass/DictationAssistantController.UIHandlers.csOnChangeAivisModelPreset()メソッド追加OnInputCustomAivisModelUuid()メソッド追加
Murai/yaml/app_config.yamltts.providerフィールド追加aivis:セクション追加(base_url, model_uuid, model_presets)
2️⃣ 会話履歴機能の実装(previous_response_id)
修正ファイル:
Murai/Scripts/OpenAIResponsesClient.csGenerateAsync()の戻り値を(string text, string responseId)に変更previousResponseIdパラメータ追加systemPromptパラメータ追加- リクエストボディに
previous_response_idを含める - レスポンスから
idを抽出するTryExtractResponseId()メソッド追加 ResponsesEnvelopeクラスにidフィールド追加- システムプロンプトがある場合は配列形式、ない場合は文字列で送信
Murai/Scripts/DictationAssistantController.cs_previousResponseIdフィールド追加_conversationHistoryEnabledフィールド追加AppConfig.OpenAIBlockにconversation_history_enabledフィールド追加
Murai/Scripts/PartialClass/DictationAssistantController.Dictation.cs- RAG応答・通常応答時に
responseIdを受け取り_previousResponseIdに保存 _conversationHistoryEnabledが有効な場合のみpreviousResponseIdを送信- システムプロンプトを
GenerateAsync()に渡すように修正
- RAG応答・通常応答時に
Murai/Scripts/PartialClass/DictationAssistantController.History.csResetHistory()で_previousResponseIdもクリア
Murai/Scripts/PartialClass/DictationAssistantController.Lifecycle.cs- YAMLから
conversation_history_enabled設定を読み込み
- YAMLから
Murai/Scripts/PartialClass/DictationAssistantController.RAG.csGenerateRagReplyAsync()の戻り値を(string text, string responseId)に変更- リクエストボディに
previous_response_idを含める - レスポンスから
idを抽出するExtractResponseId()メソッド追加
Murai/yaml/app_config.yamlopenai.conversation_history_enabledフィールド追加(デフォルト: true)
3️⃣ welcomeメッセージの任意タイミング再生機能
追加ファイル:
Murai/Scripts/WelcomeMessageTrigger.cs- コントローラー操作でwelcomeメッセージを遅延再生Murai/WELCOME_TRIGGER_GUIDE.md- 使い方ガイド
修正ファイル:
Murai/Scripts/DictationAssistantController.csSetStatusPublic(string message)メソッド追加(外部からステータス更新可能)
Murai/Scripts/PartialClass/DictationAssistantController.Welcome.csPlayWelcomeMessage()公開メソッド追加(外部から呼び出し可能)
4️⃣ エディタテスト機能の追加
追加ファイル:
Murai/CONVERSATION_HISTORY_TEST_GUIDE.md- 会話履歴テストガイド
修正ファイル:
Murai/Scripts/DictationAssistantController.cs_testInputフィールド追加(エディタテスト用入力欄)TestConversation()メソッド追加(右クリックメニュー)TestResetConversation()メソッド追加(右クリックメニュー)TestShowResponseId()メソッド追加(右クリックメニュー)
5️⃣ prompts.yamlの矛盾修正
修正ファイル:
Murai/yaml/prompts.yaml- 観察情報を2分類:
- 「VR空間で視覚的に確認できる情報」
- 「学生がAIに質問して初めてわかる情報」
- 模擬対話例の修正:
- 人形に表情・動きを求める表現を削除
- VR空間の没入感を保つ表現に変更
- 「写真」という表現を削除
- 教育ポイントの更新:
- ゴールを「血糖測定+ブドウ糖投与」に明記
- 医学的背景(アルコール×糖尿病薬のリスク)を追加
- ピットフォール(脳血管障害との鑑別)を追加
- welcomeメッセージの修正:
- 「写真の中に写っている情報」→「質問してください」に変更
- 具体的な質問例を追加
- 観察情報を2分類:
6️⃣ バグ修正
エラー修正:
WelcomeMessageTrigger.cs-CommonUsagesの曖昧参照エラーusing XRCommonUsages = UnityEngine.XR.CommonUsages;でエイリアス解決
DictationAssistantController.Dictation.cs-AudioClipの型エラーusing UnityEngine;追加
DictationAssistantController.UIHandlers.cs-Mathが見つからないエラーusing System;追加
AivisVoiceClient.cs- FMOD WAV読み込みエラー- WAVデータを直接パースして
AudioClipを作成するように変更 - 一時ファイルを経由しない実装に変更
- WAVデータを直接パースして
📁 新規作成ファイル一覧
Murai/Scripts/
├── AivisVoiceClient.cs
├── WelcomeMessageTrigger.cs
└── TtsDebugTester.cs
Murai/
├── AIVIS_MIGRATION.md
├── TTS_DEBUG_GUIDE.md
├── WELCOME_TRIGGER_GUIDE.md
└── CONVERSATION_HISTORY_TEST_GUIDE.md⚙️ 主要な設定ファイルの状態
Murai/yaml/app_config.yaml
yaml
openai:
conversation_history_enabled: true # 会話履歴機能
tts:
provider: "aivis" # TTS プロバイダー
aivis:
base_url: "<https://api.aivis-project.com/v1>"
model_uuid: "e9339137-2ae3-4d41-9394-fb757a7e61e6"
model_presets:
女性(高音): "e9339137-2ae3-4d41-9394-fb757a7e61e6"
女性(低音): "55696911-05cb-4cd2-bdb9-dbc8bfe6e5c7"
男性(高音): "6d11c6c2-f4a4-4435-887e-23dd60f8b8dd"
男性(低音): "e9339137-2ae3-4d41-9394-fb757a7e61e6"Murai/yaml/prompts.yaml
- VR360空間に適した表現に修正
- 人形であることを前提とした観察情報の整理
- 教育ゴールを明確化(血糖測定+ブドウ糖投与)
- 医学的背景・ピットフォールの追加
Author: 村井 | Source:
村井\uPano×MetaQuest3でパノラマビューアプリデモ開発\学園祭対応 257aba435ee780a4a4acd7b95f8ba234.md