"Detailed technical implementation is available on Zenn.dev"
https://zenn.dev/tyora/articles/dc4610389adae0
JP:
本プロジェクトでは、Python (FastAPI) サーバーと Unity (C#) クライアント間の通信に SSE (Server-Sent Events) を採用しています。双方向通信の WebSocket ではなく、軽量な SSE を選択することで、HTTP プロトコルのオーバーヘッドを最小限に抑制。LLM のトークン生成と並行して、感情信号や制御指令を Unity 側へ低レイテンシでストリーミング配信し、NPC の反応速度を飛躍的に向上させました。
CN:
本系统采用 SSE (Server-Sent Events) 协议,构建了从 Python 后端到 Unity 客户端的高效单向流式通道。相比 WebSocket,SSE 在轻量化与保持长连接方面具有显著优势,能显著降低系统开销。通过该架构,AI 后端可在生成文本的同时,将情感增量与控制指令实时推送到前端,实现了 NPC 与后端大脑状态的毫秒级高精度同步。
JP:
AI の応答テキスト流の中に、正規表現でパース可能な**インバンド信号(In-band Signaling)**を埋め込む独自プロトコルを設計しました。Unity 側のコントローラー(NebulaManager)は、ストリームからリアルタイムに信号を分離・抽出し、以下の処理を実行します:
- ステートマシンの動的遷移: 表情、ジェスチャー、待機モーションの自動切り替え。
- 振る舞いの最適化: プロンプトに基づくリアルタイムな演技制御。
これにより、AI の「思考」が NPC の物理的な挙動として自然に投影されます。
CN:
系统设计了一套带内信令协议,将可解析的**带内信号(In-band Signaling)**内嵌于 AI 响应文本流中。Unity 端控制器利用正则表达式进行实时解析,并触发动态状态机切换:
- 状态机动态迁移: 自动切换表情、手势及待机动作。
- 行为优化: 基于 Prompt 实时控制 NPC 的交互演化。
该机制确保了 AI 的“内在逻辑”能即时转化为 NPC 的“外在表现”,构建了深度沉浸的交互体验。
JP:
システムの可用性(Availability)を最大化するため、Gemini/Groq 等のクラウド LLM と、Ollama によるローカル推論を組み合わせたハイブリッド構成を採用。クラウド側の障害を検知した際、自動的にローカル推论へ切り替わるフォールバック(Fallback)機構を実装しました。これにより、オフライン環境下でも NPC の論理性と連貫性を維持します。
CN:
为最大化系统的可用性(Availability),采用云端(Gemini/Groq)与本地边缘侧(Ollama/Llama 3.2)协同推理的混合模式。具备完善的 智能 Fallback 机制:当检测到云端服务异常或网络波动时,系统将无缝切换至本地模型。这不仅提升了系统在极端环境下的容灾能力,还保证了 NPC 逻辑的连贯性。