Skip to content

学園祭対応

📋 実装・修正内容のリスト(山本)


1️⃣ TTS APIの移行(NijiVoice → Aivis Cloud API)

追加ファイル:

  • Murai/Scripts/AivisVoiceClient.cs - Aivis Cloud API クライアント
  • Murai/AIVIS_MIGRATION.md - 移行ガイド

修正ファイル:

  • Murai/Scripts/DictationAssistantController.cs
    • TtsProvider enum 追加(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を使用
  • Murai/Scripts/PartialClass/DictationAssistantController.Welcome.cs
    • Aivis対応のTTS合成処理追加
  • Murai/Scripts/PartialClass/DictationAssistantController.Idle.cs
    • Aivis対応のTTS合成処理追加
  • Murai/Scripts/PartialClass/DictationAssistantController.TTS.cs
    • SetUseTtsでプロバイダーに応じたクライアント初期化
    • WarmupTtsAsyncでAivis対応
  • Murai/Scripts/PartialClass/DictationAssistantController.UI.cs
    • PopulateVoiceDropdown()でプロバイダーに応じた選択肢表示
  • Murai/Scripts/PartialClass/DictationAssistantController.UIHandlers.cs
    • OnChangeAivisModelPreset()メソッド追加
    • OnInputCustomAivisModelUuid()メソッド追加
  • Murai/yaml/app_config.yaml
    • tts.providerフィールド追加
    • aivis:セクション追加(base_url, model_uuid, model_presets)

2️⃣ 会話履歴機能の実装(previous_response_id)

修正ファイル:

  • Murai/Scripts/OpenAIResponsesClient.cs
    • GenerateAsync()の戻り値を(string text, string responseId)に変更
    • previousResponseIdパラメータ追加
    • systemPromptパラメータ追加
    • リクエストボディにprevious_response_idを含める
    • レスポンスからidを抽出するTryExtractResponseId()メソッド追加
    • ResponsesEnvelopeクラスにidフィールド追加
    • システムプロンプトがある場合は配列形式、ない場合は文字列で送信
  • Murai/Scripts/DictationAssistantController.cs
    • _previousResponseIdフィールド追加
    • _conversationHistoryEnabledフィールド追加
    • AppConfig.OpenAIBlockconversation_history_enabledフィールド追加
  • Murai/Scripts/PartialClass/DictationAssistantController.Dictation.cs
    • RAG応答・通常応答時にresponseIdを受け取り_previousResponseIdに保存
    • _conversationHistoryEnabledが有効な場合のみpreviousResponseIdを送信
    • システムプロンプトをGenerateAsync()に渡すように修正
  • Murai/Scripts/PartialClass/DictationAssistantController.History.cs
    • ResetHistory()_previousResponseIdもクリア
  • Murai/Scripts/PartialClass/DictationAssistantController.Lifecycle.cs
    • YAMLからconversation_history_enabled設定を読み込み
  • Murai/Scripts/PartialClass/DictationAssistantController.RAG.cs
    • GenerateRagReplyAsync()の戻り値を(string text, string responseId)に変更
    • リクエストボディにprevious_response_idを含める
    • レスポンスからidを抽出するExtractResponseId()メソッド追加
  • Murai/yaml/app_config.yaml
    • openai.conversation_history_enabledフィールド追加(デフォルト: true)

3️⃣ welcomeメッセージの任意タイミング再生機能

追加ファイル:

  • Murai/Scripts/WelcomeMessageTrigger.cs - コントローラー操作でwelcomeメッセージを遅延再生
  • Murai/WELCOME_TRIGGER_GUIDE.md - 使い方ガイド

修正ファイル:

  • Murai/Scripts/DictationAssistantController.cs
    • SetStatusPublic(string message)メソッド追加(外部からステータス更新可能)
  • Murai/Scripts/PartialClass/DictationAssistantController.Welcome.cs
    • PlayWelcomeMessage()公開メソッド追加(外部から呼び出し可能)

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メッセージの修正
      • 「写真の中に写っている情報」→「質問してください」に変更
      • 具体的な質問例を追加

6️⃣ バグ修正

エラー修正:

  1. WelcomeMessageTrigger.cs - CommonUsagesの曖昧参照エラー
    • using XRCommonUsages = UnityEngine.XR.CommonUsages; でエイリアス解決
  2. DictationAssistantController.Dictation.cs - AudioClipの型エラー
    • using UnityEngine; 追加
  3. DictationAssistantController.UIHandlers.cs - Mathが見つからないエラー
    • using System; 追加
  4. AivisVoiceClient.cs - FMOD WAV読み込みエラー
    • WAVデータを直接パースしてAudioClipを作成するように変更
    • 一時ファイルを経由しない実装に変更

📁 新規作成ファイル一覧

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