まるで命が吹き込まれるよう
- snackvirtual
- 4月7日
- 読了時間: 2分

パーツが少しずつできてきた。
前回では
呼吸、カメラワーク、キーボード入力が完成していたが、再度システムを見直した。
結論としては、BackEndとして、Python/Flaskのローカルサーバーを作り、Unityがローカルでここにアクセスする形に変えた。
これは将来の拡張性(例えばUnity WebGLでInternet上に公開するなど)を考えた時、Gemini APIのアクセスキーをBackEnd側に持つべきだと考えたからである。
他にもAivisSpeechの再生がローカルPCでしかできない等を考えると、BackEndとしてGemini APIへのアクセス→Unityに投げるレスポンスの加工をPythonで実行→同時にAivisSpeechで音声合成→返信とすることで、まとまったシステムとなった。
機能としてまとめると、
FrontEnd:Unity
機能:
VRMモデルの表示
合成音声ファイルの再生
プリセットされた表情の切り替え
プリセットされたポーズの切り替え
マウスでの視点移動
Geminiへのテキスト入力
Gemini用のシステムプロンプト(キャラクタ設定、表情制御、ポーズ制御用)
呼吸、まばたき、カメラ追跡目線、LipSync(uLipSync)
BackEnd:Python+Flask+Gemini API+AivisSpeech
機能:
Gemini APIによるAI会話生成
AivisSpeechによる合成音声ファイル生成
Geminiによる感情分析を元に表情制御
特にUnityで機能をひとつひとつ動かしていくときが楽しい。
最初は全く動かなかったVRMモデルが、
呼吸をし、まばたきをし、言葉を話し、口が動くと命が吹き込まれたようだった。
さらにカメラワークで近くに寄り、そのカメラを追うように視線と首が動くと、もう可愛くて仕方なくなる。
そうやって少しずつ手をかけ、少しずつ命を吹き込んでいくのが楽しい。
コメント