3DCGの鬼門【モーションキャプチャー】

はじめに

皆さんは「モーションキャプチャ」をご存じでしょうか? 今やVtuberさんの活躍によって一般の方々にも浸透してきた印象を受けますが、マーベル映画『アベンシャーズ』をはじめとした商業映画などでも使われている「実際の人間の演技を取り込んで3DCGのキャラクターに反映させる技術」のことを指します。しかし、そういった商業映画、商業ゲーム作品において使われている機材やソフトはとても高価で、個人クリエイターが扱うことは難しいとされています。

今回紹介する「Animate 3D」は、専用のセンサーやカメラといったキャプチャ機材は一切必要なく、スマホなどで撮影した動画からアニメーションを抽出し、FBX(他にBVH,GLB)形式でエクスポートできるWebサービスです。

後半では実際にUE4に取り込み、「Animate 3D」で出力したアニメーションのリターゲット手順についても解説します。

3DCGにおけるアニメーション

3DCG作品制作においてキャラクターにアニメーションを付ける方法は大きく分けて三つあります。

1.アニメーターが自作

f:id:KitaharaShunta:20201224200841p:plain キーフレームごとにポーズを決めて、ソフトによる補完によってアニメーションを作る方法です。 ピクサーを始めとする3DCGアニメスタジオからインディーズクリエイターを含め、これが3DCGアニメーション制作の主流ではないでしょうか。この方法で作る場合、どのソフトで制作しても基本は同じです。

▼【MAYA】3DCGのアニメーションの作り方についてプロが「ガチ」解説 https://www.youtube.com/watch?v=TW8dWjyW6fI&t

2.専門マーケットでモーションをDL

mixiamo、actorcore、UE4マーケットプレイスなど、専門のマーケットで販売(配布)されているモーションをダウンロードして流用する方法もあります。

13.png ▼Mixamo https://www.mixamo.com/#/

またUE4なら、取り込んだアニメーションに手を加えてループアニメにしたり、バリエーションを作ることでアニメーションの数や幅を広げることもできます。

▼Animation Montage https://docs.unrealengine.com/ja/AnimatingObjects/SkeletalMeshAnimation/AnimMontage/Overview/index.html

3.自分の演技を取り込む

冒頭で触れた「モーションキャプチャ」がこれにあたります。 しかしその多くが専用のカメラやセンサーを複数必要とし、用意するのに数百万かかるような場合もあるほど高価です。 近年は数万~数十万代と比較的安価な機材もあるようで、そういった機材を必要とする「モーションキャプチャ」についてはこちらでまとめられていたので参考にしてください。

▼これであなたもVtuber!低コストで、質の高いモーションキャプチャーまとめ https://ideacloud.tokyo/develop-days/development/motioncapture_device.html

僕が今回紹介するのは、そういった専用の機材さえも不要で、且つ安価なソフトです。やはり専門の機材を必要とする「モーションキャプチャ」よりはいくらか精度が落ちますが、イメージを掴むための素材として使ったり、モーションの原型として使用する分には十分に効果を発揮すると思います。

自分の演技を取り込むソフト一覧

qu_19.png

▼ミチコンPlus

https://www.next-system.com/michicon

IOS専用のアプリで、撮影した動画(or取り込んだ動画)を解析し全身をキャプチャしてくれます。csv出力機能を利用する場合はPRO版の契約が必要ですが、今回紹介する三つのソフトの中では最も安価(月額370円)な価格です。

qu_20.png ▼RADiCAL

https://getrad.co/

こちらも専門の機材は必要なく、取り込んだ動画を解析して全身をキャプチャできるソフトです。UE4Blenderなどの大手DCCツールとの連携を前提としたプラグインも配布されています。 現在IOS側のアプリは非公開になっており、core(クラウド版)で契約してアップロードした映像を取り込むか、studio(ローカル版)で契約しPCと繋がっているWebカメラで撮影した映像を解析するという二つの使い方があります。coreで契約する方が高価です。fbx出力にも対応していますが、体験版では出力できません。

qu_16.png ▼Animate 3D

https://www.deepmotion.com/animate-3d

同様に機材は必要なく、取り込んだ動画を解析して全身をキャプチャするソフトです。つい先日(20.12.16)価格表も発表されたばかりの新しいサービスで、バージョンの更新も高頻度です。基本的には「RADiCAL」と同じく、映像を解析し、fbxなどDCCツールでの使用を前提とした形式で出力することができます。MAYAとUnityに関してはリターゲットの方法も公式で解説されています。

動画を見てもらった方が分かりやすいと思い、URLを添付しました。

▼DeepMotion: Animate 3D - V2.2 Release

https://www.youtube.com/watch?v=uvsg4VuEj8E

 

Animate 3D

まず、料金体系についてはこちらです。 qu_17.png ▼Animate 3D Plans and Pricing https://www.deepmotion.com/pricing

MV/教材/映画……と想定される尺によって必要な分数は変わってくると思いますが無料プランでFBX出力まで試すことができるので、実際にお試しになってはいかがでしょうか?

 

注意点

先に注意書きとして、いくつか動画の読み込みを試してみた結果「こういう動きには向いていない」と分かった点があるので、紹介したいと思います。

・ゆったりとした服を着ない

G-chan.gif PVから抜粋です。解析したアニメーションの太もものふらつきが気になりますが、これは解析の対象者のズボンの揺れを反映していることが原因で精度が落ちていると思われます。 公式サイトの注意書きにもあるように、腰や関節を覆わない体にフィットした衣服を着て撮影する必要があります。 qu_18.png

・側面で重なりのある動作

Shun-chan_tra.gif 「体を縮こまらせ頬杖をつく」→「体を寒そうにさする」動作を横から撮影しましたが、トラッキングの精度は著しく落ちています。 もし「腕を組む」といった「横から撮影した場合に片方の腕が完全に隠れるような演技」が欲しい場合は、同じ動作を正面から撮影し、取り込んだソフトの3D空間においてカメラを横に設置する方法がベストかと思います。

・奥から手前

f:id:KitaharaShunta:20201224203632g:plain Shun-chan_tra2.gif 正面にカメラを置いて「奥から手前へ歩く」動作を撮影しましたが、 これはサイトの注意書きにある『被写体とカメラが平行である必要』という条件に引っ掛かり、トラッキングが上手くいかなかったのでしょう。 例えばこの場合も、素直に歩く動作を横から撮影し(カメラと被写体を平行にし)、上記と同じく取り込んだソフト内で処理すれば解決するはずです。

これら「Animate 3D」が不得意な動作、カメラワークを意識しつつ、実際に撮影とアニメーションの解析を行ってきました。

ダンス

Shun-chan4.gif Shun-chan_tra3.gif 大まかな動きは捉えていますが、胴体のひねりや曲がりといった細かいニュアンスを拾うのは難しいようです。足を上げる動作は完全に狂っている箇所もあり、MMDのような滑らかなモーションは期待できなさそうです。

歩く

f:id:KitaharaShunta:20201224202408g:plain Shun-chan_tra5.gif 今回取り上げた素材の中では、やはり一番動きを滑らかに捉えていました。足の運び、腕の振りも含めて自然にトラッキングできているのではないでしょうか。

振り向く

Shun-chan2.gif Shun-chan_tra4.gif 全身の振り向きは大まかに元動画に沿っているのに対して、顔の向きの振り向きはほとんど一致してません。他ソフトでも体感したことですが、視線や顔の向きのトラッキングは画像解析と相性が悪いイメージがあります。

立ち上がる

f:id:KitaharaShunta:20201224201732g:plain f:id:KitaharaShunta:20201224024227g:plain 腰が上がってから少し溜めて頭をあげるような、動作の順序は自然に再現できているという印象を受けます。  

このように画像解析によるアニメーション抽出は「完璧な人間らしい動き」を実現するには不十分であるので、より品質の良いアニメーションを目指すには、これを素材に別ソフトでの修正を必要とします。しかし、「立ち上がる」動作のような頭の重みや重心を意識した動きを、素人が作るにはなかなか手間がかかるものです。このような素材があるだけで、モーションの作成はずいぶん捗るのではないでしょうか。

UE4におけるリターゲットの方法

リターゲットとは、「スケルトンの構造を共有するキャラクター同士でモーションを再利用する」方法のことを指します。リターゲットの基本事項については公式記事で詳しく紹介されているので、そちらをご覧ください。

▼アニメーション リターゲット(異なるスケルトン) https://docs.unrealengine.com/ja/AnimatingObjects/SkeletalMeshAnimation/RetargetingDifferentSkeletons/index.html

①前準備としてモーションをつけたいキャラクターをFBXデータ化し、「Custom」を選んで読み込みます。 f:id:KitaharaShunta:20201224214503p:plain 解析の終わったアニメーションデータをFBX形式で出力します。 f:id:KitaharaShunta:20201224214700p:plainUE4でプロジェクトを開き、コンテンツブラウザに元のfbxデータをダウンロード。スケルトンを開いてリグを「humanoid」にして、ソースごとにリグを正しく設定し直します。 またこの時、「Preview Mesh」が登録されてないとリターゲットが上手くいかなかったので注意してください。 f:id:KitaharaShunta:20201224215243p:plain ③「Animate 3D」で出力したアニメーションのFBXデータをインポート。この時、スケルトンは"もとのFBXデータのスケルトン"を選びます。 f:id:KitaharaShunta:20201224215557p:plain ④これでリターゲットの準備は完了です。グレイマンをはじめとする、「humanoid」リグを利用しているキャラクターにリターゲットが可能になりました。 f:id:KitaharaShunta:20201224220443g:plain

終わりに

モーションキャプチャ」という単語は知っていても、実際の方法や、こんなに手軽に手を出せるソフトが流通していることを知っている人は少ないのではないかと思い、UE4やUnityでキャラクターゲームを個人製作されているクリエイターの方に向けて記事を執筆しました。

商業作品のような大人数での制作が望めない以上、どうやってアニメーションを量産するかが課題でしたが、これで一つ光明が見えたのは嬉しいことです。11月末に見つけてから試用していますが、今日に至るまでの短期間でもモーションの精度向上を実感できるほど、目に見えるアップデートがされている点も期待値が高いです。