🚀 新機能
🎭 アニメーション再生機能の追加
- VRMAアニメーション対応: VRMAファイルのドラッグ&ドロップ再生に対応
- FBXアニメーション対応: Mixamo形式のFBXファイル再生に対応
- 初期モーション設定: 環境変数
NEXT_PUBLIC_MOTION_FILENAMEで起動時のアニメーションを指定可能 - スムーズなアニメーション切り替え: 0.5秒のフェードイン/フェードアウトで自然な遷移
📡 新しいAPI
/api/play_animation: 外部からアニメーション再生を制御する新しいAPIエンドポイント- WebSocketアニメーション制御:
play_animationメッセージタイプによるリアルタイム制御
🎵 豊富なアニメーションアセット
新しいFBXアニメーションファイルを追加:
Breathing Idle.fbx- 自然な待機アニメーションOld Man Idle.fbx- 落ち着いた待機ポーズSamba Dancing.fbx- サンバダンスStanding Idle.fbx- 立ち姿の待機ポーズSwing Dancing.fbx- スウィングダンスTalking1.fbx/Talking2.fbx/Talking3.fbx- 話している時のジェスチャーWave Hip Hop Dance.fbx- ヒップホップダンス
🐍 Python制御サンプルの拡充
新しいサンプルスクリプトを追加:
play_animation_api_sample.py: アニメーション再生APIの基本的な使用例play_animation_podcast_sample.py: ポッドキャスト風会話でのアニメーション連動機能podcast_simulation.py: 高度なポッドキャスト会話シミュレーション
🎪 高度なポッドキャスト機能
play_animation_podcast_sample.pyの特徴:
- アクション別実行方式: 話すアクションとアニメーション変化を完全分離
- 同時アニメーション機能: 話者は自動的にTalkアニメーション、非話者はDanceアニメーションを同時実行
- 視覚的に豊かな表現: ため息やジェスチャーなど多彩なアニメーション
- プログレスバー表示: アニメーション・音声再生の進行状況を可視化
- 音声ファイル自動保存:
assets/podcast_anim_{A|B}_{番号}.wav形式で保存
🔧 改善点
🎯 環境設定の強化
- Docker環境の改良:
docker-compose.podcast.ymlでポッドキャスト用設定に対応 - 環境変数の追加: 初期モーションファイル指定のサポート
- Pythonプロジェクト管理:
pyproject.tomlによるパッケージ管理
📁 プロジェクト構造の整理
- アニメーション専用ディレクトリ:
public/anim/フォルダの新設 - Pythonパッケージの除外:
.gitignoreでPythonビルドファイルを適切に除外 - ドキュメントの充実: README.mdの大幅な更新と使用例の追加
🛠️ 技術的改善
- Three.jsライブラリ統合: FBXLoaderとMixamoアニメーション変換機能の追加
- リグマッピング: MixamoからVRMへの自動ボーンマッピング機能
- メモリ最適化: アニメーション切り替え時の適切なクリーンアップ
🔄 変更点
ファイル構造
public/anim/ # 新規追加: アニメーションファイル格納
├── *.fbx # Mixamo形式FBXファイル
└── *.vrma # VRMAファイル
src/lib/fbxAnimation/ # 新規追加: FBXアニメーション処理
├── loadMixamoAnimation.ts
└── mixamoVRMRigMap.ts
example/ # 大幅拡張
├── anim/ # サンプルアニメーション
├── assets/ # 音声ファイル保存先
├── play_animation_*.py # 新規サンプル
└── pyproject.toml # Python依存関係管理
API拡張
// 新しいAPIエンドポイント
POST /api/play_animation
{
"animation": "/anim/Samba Dancing.fbx"
}
// WebSocketメッセージ拡張
{
"type": "play_animation",
"name": "/anim/Talking1.fbx"
}🚨 破壊的変更
特になし(既存のAPIとの互換性は維持されています)
📋 マイグレーションガイド
環境変数の更新
.envファイルに新しい設定を追加してください:
# 初期モーションのファイル名(オプション)
NEXT_PUBLIC_MOTION_FILENAME=/anim/Breathing Idle.fbxDockerイメージの更新
既存のDockerコンテナを再ビルドしてください:
docker-compose down
docker-compose build
docker-compose up🐛 修正したバグ
- アニメーション切り替え時のメモリリーク問題を修正
- FBXファイルのドラッグ&ドロップが正常に動作しない問題を解決
- Docker環境でのファイルパス解決問題を修正
📚 ドキュメント
- README.mdを全面的に更新し、新機能の使用方法を詳細に説明
- サンプルコードのドキュメントを充実
- API仕様書にアニメーション制御の情報を追加
🙏 謝辞
このリリースは、VRMコミュニティとpixiv/ChatVRMプロジェクトの基盤の上に構築されています。
ダウンロード: v0.4.0 Release
詳細な変更履歴: v0.3.0...v0.4.0