Friedrich-M/UniMate
[SIGGRAPH Asia 2026] UniMate: One Unified Model to Animate Diverse Skeletons
UniMate – 多様なスケルトンをアニメーション化する統一モデル
概要
- テキストプロンプトから任意のリギングされたスケルトン(人間、動物、ロボット、抽象オブジェクトなど)の 3D 関節モーションを生成する研究グレードのディープラーニングモデル。
- UniML3D データセットでトレーニング – 13.8k のテキストペアモーションクリップで、7.4k の多様なトポロジー(二足、四足、鳥類、海洋、昆虫、蛇行、剛体リグ)のスケルトンをカバー。
重要性
- 既存のテキストからアニメーションへのシステムは、単一のキャラクタートポロジーに限定されています。UniMate は関節の標準表現を学習し、スケルトンごとのファインチューニングやテスト時最適化なしで、未見のリグに適用できます。
- モデルはリアルタイムで動作し、インタラクティブなアプリケーション(ゲーム、VR、ロボットシミュレーション)に適しています。
主要コンポーネント
| コンポーネント | 機能 |
|---|---|
| モデルアーキテクチャ | 2 つのアテンションバリアントを提供: graph_adaln(時空間グラフ認識アテンション)と full_cross_attn(ジョイントタイムトークン上の標準 Transformer)。どちらも凍結された FLAN-T5 エンコーダーを介してテキストで条件付けできます。 |
| トレーニング目的 | フローマッチング拡散: ネットワークはノイズとターゲットモーションの間の線形補間の速度を予測します。損失はマスクされた L2、測地線回転項、速度平滑項を組み合わせます。 |
| データパイプライン | data_process/ スクリプトは、生のアセット(Mixamo、Objaverse-XL、Truebones)を統一された UniML3D 形式に変換します: エクスポート、レンダリング、キャプション、ジョイントアノテーション、特徴抽出。rig_preprocess ツールを使用すると、任意の GLB/FBX/GLTF リグを同じ形式に取り込むことができ、LLM 生成のジョイントラベルをレビューできます。 |
| 推論 | unimate.inference.sample は、リグとプロンプトでトレーニング済みチェックポイントを駆動し、アニメーション化された GLB/FBX ファイルを出力します。バッチサンプリング、分類器フリーガイダンス(--cfg_scale)、プロンプトごとの複数回の繰り返しをサポートします。 |
| ユーティリティ | テキスト埋め込みの事前計算、トレーニングの再開、デバッグレンダリングの視覚化、生成されたモーションでメッシュを駆動する簡単なスクリプト。 |
はじめに
- 環境を作成
conda create -n unimate python=3.10 -y conda activate unimate pip install "setuptools<81" pip install -r requirements.txt --no-build-isolation - データセットをダウンロード(約 88 GB)とリリースされたチェックポイント:
hf download Linzhan/UniML3D --repo-type dataset --local-dir dataset hf download Linzhan/UniMate --repo-type model --local-dir outputs \ --include "unimate_uniml3d_f60_v3/*.json" \ --include "unimate_uniml3d_f60_v3/*.npy" \ --include "unimate_uniml3d_f60_v3/checkpoints/checkpoint_step_150000.pt" - クイックデモを実行(いくつかの前処理済みアセットをアニメーション化):
Garfield モデル、Gundam、サメなどのオブジェクトのアニメーション化された GLB/FBX ファイルが得られます。python -m unimate.inference.sample \ --exp_dir outputs/unimate_uniml3d_f60_v3 \ --test_cases_json assets/examples/examples.json \ --num_repetitions 3 \ --output_dir outputs/samples/examples SKIP_INVALID=1 bash scripts/run_animate_motion.sh outputs/samples/examples
独自のモデルをトレーニング
- 設定ファイルは
configs/にあります。データセットの選択、フレーム長、アテンションタイプ、キャプション条件付け(例:uniml3d_60frames_graph_adaln.json)をエンコードします。 - 🤗 Accelerate で起動:
accelerate launch -m unimate.training.train --config configs/uniml3d_60frames_graph_adaln.json - マルチ GPU:
--num_processes Nを追加。 - パイプラインは、非常に不均一なスケルトン数にわたるバランスの取れたサンプリング、ジョイント軸パディング、データ拡張(ジョイント追加、リーフ削除、チェーンプーリング、ボーン長の摂動)を処理します。
- チェックポイント、ログ、視覚的なデバッグレンダリングは
outputs/<experiment>/に書き込まれます。
独自のリグを使用("Bring your own rig")
- GLB/FBX/GLTF ファイルをフォルダーに配置します。
- 前処理ツールを実行:
ツールは LLM でジョイントにラベルを付け、ジョイント名と向きのレビュー UI を表示し、推論スクリプトが期待する標準アセットディレクトリを生成します。python -m data_process.rig_preprocess.process <path_to_folder> - 同じ
sampleコマンドでアニメーション化し、--assetを新しく作成したディレクトリにポイントします。
アプリケーション
- ゲーム/VR コンテンツ作成 – 手動でアニメーションを作成せずに、キャラクターやプロップの多様なモーションクリップをすばやく生成。
- ロボットシミュレーション – 任意の運動学ツリーを持つロボットの妥当な移動または操作シーケンスを生成。
- 映画と VFX プロトタイピング – 幻想的な生き物や機械的なリグのモーションアイデアを探索。
- リポジトリは、同じモデルを使用した 3 つのゼロショット下流タスク(例: モーション編集、スタイル転送)も示していますが、詳細は論文にあります。
リンクとリソース
- プロジェクトページと論文: https://linzhanmou.com/unimate/ (arXiv: 2609.05415)
- インタラクティブデモ: https://linzhanmou.com/unimate/interactive.html
- データセット: https://huggingface.co/datasets/Linzhan/UniML3D
- モデルチェックポイント: https://huggingface.co/Linzhan/UniMate
- GitHub リポジトリ: https://github.com/Friedrich-M/UniMate (この README)
TL;DR
UniMate は、任意のリギングされた 3D スケルトンで動作するオープンソースの拡散ベースのテキストからアニメーションへのモデルです。大規模なマルチトポロジーデータセット、完全なトレーニングコード、カスタムアセットの前処理パイプライン、すぐに実行できる推論スクリプトが付属しています。汎用のリアルタイムモーションジェネレーターを必要とする研究者や開発者に最適です。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト