2026-03-04

VRMキャラクターをAI会話システムとして動かす

自作VRMモデルをUnity・FastAPI・OpenAI APIと連携し、会話できるAIキャラクターとして試作している構成と進捗をまとめました。

VRMキャラクターをAI会話システムとして動かす

自作3DモデルをAIキャラクターとして動かす試作

概要

Blenderで制作した自作3Dモデル(VRM)を、
Unity上で会話可能なAIキャラクターとして動作させる試作を行っています。

このプロジェクトでは、

  • 3Dキャラクター表示
  • AIによる会話生成
  • 音声合成
  • リップシンク
  • 表情・視線制御

を組み合わせ、AIキャラクターとして会話できるアプリケーションの構築を目的としています。


使用技術

本プロジェクトでは以下の技術を使用しています。

分類技術
ゲームエンジンUnity
UIUI Toolkit
3DモデリングBlender
モデル形式VRM 1.0
VRM表示UniVRM
非同期処理UniTask
リップシンクuLipSync
JSON処理System.Text.Json
AI応答OpenAI API
音声生成VOICEVOX
バックエンドFastAPI

Unityはキャラクター表示・UI・音声再生などのクライアント処理を担当し、
AI応答生成や音声生成はFastAPI側で処理する構成になっています。


システム構成

システム全体は以下のような構成になっています。

Unity(クライアント)
      ↓
HTTP通信
      ↓
FastAPI(バックエンド)
      ↓
OpenAI API(会話生成)
      ↓
VOICEVOX(音声生成)

AI応答生成や音声合成などの処理をサーバー側に分離することで、

  • AIモデル変更
  • 音声システム変更
  • 処理負荷分散

などに柔軟に対応できる構造にしています。


システムの処理フロー

会話処理は以下の流れで動作します。

ユーザー入力(Unity UI)
        ↓
Unity → FastAPIへHTTPリクエスト送信
        ↓
FastAPI → OpenAI APIへ問い合わせ
        ↓
AI応答生成
        ↓
VOICEVOXで音声生成
        ↓
FastAPI → Unityへレスポンス返却
        ↓
キャラクターが発話・表情変化

Server-Sent Events(SSE)を利用し、
AIの応答をストリーミングでUnityへ返す構成にしています。


Unity側のコンポーネント構成

Unity側では機能ごとにコンポーネントを分割して実装しています。

コンポーネント役割
ChatControllerFastAPIとの通信とチャット処理
VoicePlayController音声再生とリップシンク制御
EmotionControllerAI応答に応じた表情制御
VoiceInputControllerマイク入力と音声送信
MouseLookAtController視線追従とまばたき制御

これにより、

  • 会話処理
  • 音声再生
  • キャラクター表現

を独立した構造で管理しています。


実装内容

Techpitの教材
「UnityとFastAPIで作るAIキャラクターアプリ開発」 をベースに実装しています。

教材の内容を土台にしつつ、以下の機能を実装・調整しています。

教材ベースの機能

  • UnityとFastAPIのHTTP通信
  • OpenAI APIによる会話生成
  • Server-Sent Eventsによるストリーミング応答
  • VOICEVOXによる音声生成
  • VRMキャラクター表示
  • 音声再生処理
  • リップシンク

追加実装

教材に加えて以下の機能を実装しています。

  • Blenderで制作した自作VRMモデルの使用
  • 表情アニメーション制御
  • 視線追従
  • 自動まばたき
  • Unity UIの調整
  • コンポーネント分割による構造整理

3DキャラクターはBlenderでモデリングし、
VRM形式に変換したモデルをUnityへ取り込み、AIキャラクターとして動作させています。


現在の実装状態

現在、以下の機能が動作しています。

  • VRMキャラクター表示
  • AIチャット
  • 音声生成(VOICEVOX)
  • 音声再生
  • リップシンク
  • 表情制御
  • 視線追従
  • 自動まばたき
  • ストリーミング応答表示

ユーザー入力に対してAIが応答を生成し、
キャラクターが音声と表情で反応する基本的な会話体験を実装しています。


今後の予定

現在は試作段階のため、今後以下の機能を追加予定です。

  • ポートフォリオの3D ROOMへの統合
  • YouTubeコメント連携
  • ライブ配信対応
  • 音声入力機能の安定化

まとめ

Unity・FastAPI・OpenAI API・VOICEVOXを組み合わせることで、
VRMキャラクターをAI会話システムとして動作させる基本構成を構築しました。

今後は機能拡張や改善を進めながら、
AIキャラクターとしての表現力やインタラクションを強化していく予定です。