技術 約3分で読めます

ActionMesh - 動画からアニメーション付き3Dメッシュを生成するMeta AIのモデル

ActionMeshとは

Meta AI Researchが2025年1月に公開した、動画からアニメーション付き3Dメッシュを生成するモデル。従来の3D拡散モデルに時間軸を追加した「Temporal 3D Diffusion」というアーキテクチャで、フレームごとに同期した3D形状シーケンスを生成する。

出力形式

出力は3パターン。すべて.glb(glTFバイナリ)形式で、Blender・Unity・Unreal Engine・Three.jsなど主要な3Dツールで読み込める。

出力形式説明
フレーム別メッシュmesh_000.glb, mesh_001.glb, …各タイムステップの静的メッシュ
アニメーション付きメッシュanimated_mesh.glbアニメーション埋め込み済み。Blender 3.5.1が変換に必要
レンダリング動画.mp4プレビュー用

animated_mesh.glbはBlenderで開くとタイムラインにアニメーションが入った状態になる。ボーンベースのスキニングではなく、フレームごとの形状変化をモーフターゲットとして埋め込んでいると思われる。リターゲット(別キャラへの動き移植)は直接はできない。

テクスチャは含まれず、ジオメトリのみの出力。プロジェクトページに「テクスチャリングが可能」とあるが、これは出力メッシュに対して別途テクスチャを貼れるという意味。

入力の制約

入力は.mp4ファイルまたはPNG連番フォルダ。フレーム数は16〜31枚で、超過分は無視される。

30fpsの6秒動画(180フレーム)をそのまま入れると先頭31フレーム(約1秒分)しか使われない。対策として:

  • ffmpegでfpsを落とした動画にする: ffmpeg -i input.mp4 -vf "fps=3" output.mp4
  • 均等にPNG連番を抽出してフォルダ指定する

後者のほうがどのフレームを使うか制御できる。

実行環境

NVIDIA GPU(CUDA必須)で、VRAM 32GB以上が必要。テスト済みGPUはA100・H100・H200。

GPUVRAM備考
RTX 509032GBギリギリ。入力次第でOOMリスク
A100 80GB80GBテスト済み環境。余裕あり
H10080GBベンチマーク環境。通常115秒、fast 45秒

Apple Silicon(M4 Proなど)はCUDA非対応・PyTorch3D未対応のため動かない。量子化やMLX移植もまだ存在しない。

RunPodで試すならA100 80GBが安全。RTX 5090でVRAM 32GBギリギリを攻めるとOOMデバッグで時間を浪費する可能性がある。SSHでPod借りれば、セットアップからPNGフォルダ指定まで自由に操作できる。

AI動画生成との組み合わせ

Grokなどの動画生成AIで「単体キャラの周囲をカメラが回る動画」を生成し、それをActionMeshに入れれば画像1枚→3Dモデルのパイプラインが作れる。

静的な多視点復元モデル(TripoSR、InstantMeshなど)と比べた場合の利点:

  • 動画内でキャラが動いていれば、髪やアクセサリーなど本体と分離しやすいパーツの帰属関係が時間的手がかりから推定しやすい
  • 非対称なパーツ(サイドポニーなど)の形状推定に有利な可能性がある

ただしActionMeshのデモは人体全体やラクダなど大きく滑らかな形状が中心で、髪の毛のような薄い・細い構造がどこまで再現されるかは未知数。過度な期待はせず、おおまかな形状のベースを取得して、細部はBlenderで調整するという前提が現実的。

基本的な使い方

# セットアップ
git clone https://github.com/facebookresearch/actionmesh.git
cd actionmesh
pip install -r requirements.txt
pip install -e .

# 推論(動画入力)
python inference/video_to_animated_mesh.py --input video.mp4

# 高速モード(品質はやや落ちる)
python inference/video_to_animated_mesh.py --input video.mp4 --fast

# PNG連番フォルダ入力
python inference/video_to_animated_mesh.py --input frames_folder/