開発ブログ

株式会社Nextatのスタッフがお送りする技術コラムメインのブログ。

電話でのお問合わせ 075-744-6842 ([月]-[金] 10:00〜17:00)

  1. top >
  2. 開発ブログ >
  3. Unity >
  4. 個人レベルでもお金をかけずにモーションキャプチャし、Unityでモデルを動かしてみよう
個人レベルでもお金をかけずにモーションキャプチャし、Unityでモデルを動かしてみよう

個人レベルでもお金をかけずにモーションキャプチャし、Unityでモデルを動かしてみよう

こんにちは、ホンジョウです。

みなさんはモーションキャプチャという言葉を聞いてどのようなイメージを浮かべるでしょうか?

CGアニメーションでよく使用される技術ですね。映画などのプリレンダリングムービーで主に使用されていますが、ハイエンドなゲームでは2000年代から使用され、近年ではリアルタイムレンダリングでも十分実用に耐えうるパフォーマンスを発揮するようになりました。
最近ではVTuberなどがモーションキャプチャでモデルを動かしながらライブ配信をするなど、その盛り上がりはますます過熱しています。

では、そのモーションはどのような環境で収録されているでしょうか。

もちろん大手の映画制作スタジオやゲーム会社などが使用するモーションキャプチャシステムは、莫大な費用が必要になります。
モーションキャプチャ専用のカメラは1台500万円を超え(参考)、収録するための広い場所も必要になります。モーションキャプチャのシステムを備えたスタジオのレンタルサービスを行っている企業もありますが、一日あたりの費用は5万~20万程度かかり、個人が手軽にレンタルできるような金額ではありません(参考)。

しかし、最近ではカメラやスタジオなしでモーションが収録できる別の仕組みを利用したモーションキャプチャシステムも用意され、比較的低コストで環境を構築することも可能になりました。
ただ、やはりそれもお金はかかります。個人的には今、家にあるものだけでモーションキャプチャをやりたい!!

そう考える人は私のほかにもいたようで、なんとWebカメラ一台でモーションキャプチャデータを収録できるアプリケーションが公開されていました。
ThreeDPoseTracker です。アプリケーション自体は無料ですが、開発支援として料金を支払うこともできます。

今回はこのアプリケーションを使用し、収録したキャプチャデータをUnityで3Dモデルに適用し、動かしてみるところまでやってみようと思います。

開発環境

  • Windows 10 Home 19044.2130
  • Unity 2021.3.9f1
  • Blender 3.3.1
  • ThreeDPoseTracker 0.5.1

VRMモデルの準備

まずは3Dモデルを用意したいところです。Booth などに行けばVRMモデルが500~1000円程度で販売されています。
最近はVRChatclusterなど、VR3D空間を3Dモデルになりきって移動し、その空間で他プレイヤーとやり取りをするプラットフォームの流行もあり、3Dモデルの需要が高まっています。そのため、誰でも気軽に3Dモデルを購入できる時代になりました。
 

VRMモデルをUnityへインポートする


VRMモデルを入手したら、それをUnityにインポートします。ただ、UnityはデフォルトではVRMモデルのインポートに対応していません。
なので、プラグインを使用してVRMモデルを読み込めるようにします。今回はUniVRMを使用します。
これでUnityへのインポートが可能になりました。ドラッグ&ドロップで簡単にUnityプロジェクトへ取り込むことができます。
ドラッグ&ドロップでプレビューがうまくいかない場合は、インスペクタから「Migrate To Vrm 1」にチェックを入れ、適用します。
スクリーンショット 2022-11-01 112120.png

 

モーションキャプチャデータの作成


次に、ThreeDPoseTrackerを使用して、モーションキャプチャデータを作成します。
Source Deviceをwebカメラにすると、画面に映る3Dモデルがカメラで撮影した動きに合わせて動くのが確認できます。
「Record BVH」をクリックすると、アニメーションの収録が開始されます。
アニメーションデータはBVHファイルで出力されます。
スクリーンショット 2022-11-01 135821.jpg
 

BlenderでBVHファイルの変換

BVHファイルはこのままではUnityにインポートすることはできないので、Blenderを使用してFBXファイルに変換します。

File -> Import -> Motion Capture(.bvh) を選択し、出力されたbvhファイルをインポートします。
File -> Export -> FBX を選択し、FBXに変換します。ObjectTypesは、アニメーションデータだけあればいいので、「Armature」のみ選択でよいでしょう。
スクリーンショット 2022-11-01 105823.png

これでUnityにモーションデータをインポートすることができます。
インポートしたFBXデータのAnimation Typeを「Humanoid」に設定します。
スクリーンショット 2022-11-01 112403.png

インポートされたFBXファイルから、Unity用のアニメーションデータを作成します。
Create -> Animator を選択し、Animatorデータを作成します。
インポートされたFBXファイルの中のアニメーションをドラッグ&ドロップでAnimatorの中に入れます。
Animatorを先ほどインポートしてきたVRMのAnimatorコンポーネントにアタッチします。

これで実行ボタンを押すと、収録したアニメーションデータでモデルを動かすことが可能になっていることが確認できると思います。
スクリーンショット 2022-10-30 182814.png
 

最後に

これほど手軽にモーションキャプチャができるようになったとは、素晴らしい時代になりましたね。
さすがにWebカメラ一台での収録だと、誤差も目立つので、本格的なコンテンツ作成は難しいかもしれませんが、モーションキャプチャの入門としては十分すぎるものであると思います。

皆さんもぜひこれでバーチャル美少女になりましょう。
最後までお読みいただきありがとうございました。
 

参考

  • posted by りっちゃん
  • Unity
TOPに戻る