Blender ウォッチング
カメラに映った自分の動きを即時にVRMへ反映できる無料モーションキャプチャーツール
マーカー不要! もちろん「Blender」で取り込んでアニメーションに利用することも
2022年11月25日 15:24
本連載では、無料の高機能3Dモデリングツール「Blender」の使い方や関連情報を幅広くお伝えします。
今回は機械学習により、マーカーなどの器具なしにモーションを記録してくれる、「ThreeDPoseTracker(TDPT)」をご紹介したいと思います。記録したモーションデータは「BVH出力」により「Blender」でも利用可能です。
アプリ単体でも好きなVRMファイルを読み込み、いわゆるVTuberとしてリアルタイムでキャラクターを制御し配信することもできます。
本記事では「ThreeDPoseTracker Ver.0.5.1」と「Blender 3.3.1」を使用しています(ビデオカードはRTX2060 12GB)。
ダウンロードとインストール
ダウンロードは公式サイトではなく、「Pixiv」の「Booth」ページから行います。そのため、「Pixiv」への登録が必要です。
TDPT(Windows版) - デジスタSHOP - BOOTH
3つのボタンがありますが、どれも同じとのことなので、まずは無料で試すのがいいでしょう。もし気に入ったのであれば、後で他のボタンをクリックして支援することもできます。
インストール方法は、ダウンロードした「.zip」ファイルを好きな場所に展開するだけです。アンインストールも展開したフォルダーごと削除すればOKです。
起動と映像ソースの選択
起動前に、あらかじめWebカメラ、または動画ファイルを用意しておきます。カメラは起動後に接続しても認識されないので注意してください。
- Webカメラは「DroidCam」のようなスマートフォンアプリ+PCでも動作しますが、公式サイトの説明によると「OBS Virtual Camera」には未対応らしく、他のデバイスについても実際に確認しておくことをお勧めします。
- 動画ファイルはMP4/MOV/WMV形式でないと読み込めません。また筆者が試したところ、MP4形式でもコーデックがHEVC(H.265)のファイルは利用できませんでした。
準備が出来たらフォルダー内の「ThreeDPoseTracker.exe」をダブルクリックして起動します。もし「Smart Screen」で起動が中断されてしまった場合、[詳細情報]をクリックし、表示された[実行]ボタンをクリックすれば起動できます(他の信用できるかどうかわからない物の場合は実際に調べて判断してください)。
デフォルトでキャラクターがバンドルされていますので、まずはこれを動かしてみましょう。
上の方にある[Source Device]ドロップダウンリストをクリックし、使用するデバイスを選択します。
うまく動作すれば、小さな窓にソースデバイスからの映像が、背景にミラー反転した映像が表示されます。小さい方の窓の範囲外に手や足が出てしまうと、キャプチャーに失敗しますので、できるだけ全身が収まるようにしてください。
3D画面の操作
カメラのアングルは[Alt]キーを押しながらのマウス操作で行います。左マウスボタンドラッグで「回転(画面中央を中心としたカメラ位置の移動)」、中マウスボタン(ホイール)ドラッグで「平行移動」、右マウスボタンドラッグで「回転(カメラの方向変更)」が可能です。また、ホイール回転でズームイン・アウトできます。モーションキャプチャー目的では使うことはないかもしれません。
また、前述のソースデバイス映像の表示・非表示や、別の背景への差し替えなどは[Configuration]ボタンから可能です(後述)。
キャプチャーデバイスの解像度の変更(カメラ利用時)
カメラ使用時は、デバイスの解像度を選択可能……らしいのですが、筆者の場合は「DroidCam」(正しくは有料版)を使用していたためか、解像度は固定でした。残念。
ハンドトラッキングについて
デフォルトではハンドトラッキングはOFFになっていますが、画面上部の[Configuration]画面の[Upper Mode]タブにある[Use Hand Tracking (β)]をONにすれば、指の動きをトラッキングすることも可能です。
他にも[Configuration]ボタンから各種設定が可能です。
各タブの説明については、公式サイトのマニュアルを参考にしてみてください。
モーションの記録
モーションデータを「BVHファイル」に記録し、他の3DCGツールで利用できるようにします。
スクリーン上の[Record BVH]ボタンをクリックすると、赤い[Recording]ボタン表示になります。再度クリックすると、ファイルの保存場所を指定するダイアログが出ますので、設定すればOKです。
他の機能同様、[Configuration]-[Record]タブに細かい設定があります。ここには「Blender」の軸方向(ZUp)に合わせる設定がありますが、これは「Unity」と「Blender」との連携時に必要になるらしく、「Blender」に持っていくだけなら、「Blender」側の「BVH importer」のデフォルト設定で変換できるので、OFFのままでもかまわないでしょう。
「Blender」での読み込み
「Blender」では、[ファイル]-[インポート]メニューの[Motion Capture (.bvh)]からデフォルトで有効化されているインポーターを呼び出します。
インポート時は右側のオプションの[前方]が「-Zが前方」に、[上]が「Yが上」になっていることを確認してください(デフォルト設定)。
インポートが成功すれば、自動的に「アーマチュア」が生成され、アニメーションが設定されます。実際のキーフレームを表示したい場合は、左上から[ポーズモード](①)に変更し、ボーンをクリック(②)して選択してみてください。
また、再生の「終了」(③)を十分大きくしておかないと、途中で切れるかもしれません。
トラッキング精度について
残念ながら、手が見えない状態(後ろ手を組むなど)や、片足を上げた時に重なっていたりするとうまくキャプチャーできません。状況によっては広さや照明、カメラの解像度を工夫すれば改善される可能性はあります。
これはハンドトラッキングも同様で、背景をバックにする方がうまく動作するようです。
パンチのような高速な動きは30FPS程度ではトラッキングできないので、可能ならフレームレートを上げるか、スローモーションで動く必要があるでしょう。
また、筆者の環境では足が常にフラフラしていましたので、インポート後の修正が必要になります。いずれにせよアニメーションとして利用するなら、後の修正を前提として利用すべきです。
モーションによっては[Configuration]画面の[Predict]タブの設定の変更で改善できるかもしれません。
終わりに
最後に少し厳しいことを書いてしまいましたが、機材もほとんど必要なく、手軽にトラッキングできるのはありがたいです。
ではまた。