蒼水技術録

蒼水家技術録

蒼水が普段制作とか勉強とかして覚えたことを復習としてまとめてるものです。 それが最適解かどうかはわからないけど、何を目的として始めて、何が必要で、実際何をやって、どうなったか、まで全部過程を残すための技術ブログです。

Blender Tips編 #5 -Auto Rig Proと戯れる その1 リターゲット-

どうも蒼水です。
今回は前回モーションに関してちょろっと触れたのでそれと関連してリグ周りに関してアドオン紹介もかねて触れていこうかなと思います。

今回の目的

今回は有名なアドオンである「Auto Rig Pro」をいじったのでそのまとめをしてく感じになります。
めちゃくちゃ便利ですよこのアドオン。
こちらから購入できます($40)
https://blendermarket.com/products/auto-rig-pro

いくつか機能があるんですが、メインであるキャラモデル等にお手軽にリグを入れる機能はいったん置いておいて、モーションをリターゲットもできてしまうこのアドオン。
その部分に今回は触れていこうかなと思います。

そもそもリターゲットとは?

「リターゲット」というのは簡単に言うと、既にできてるモーションデータや、キャプチャスタジオ等で収録したモーションを別のモデルに流し込むこと、というかんじです。
前回の記事でも触れましたがモーションデータは決まったボーンのみで構成されており、キャラモデルで作ったボーンとは命名や構成が異なっていることが多いです。
それをどこの骨がどこの骨と対応しているかを指定し、適用することで別のボーン構成をしたモデルへモーションを流し込んで使用できるようにします。

なぜリターゲットを行うかといえば、UnityにおいてはHumanoidを利用すれば人型のモデルでのモーション流用は比較的楽にできることはご存知の方も多いかと思いますが、弱点として細かい部分の調整ができなかったりで思った挙動と違う挙動を取ってしまう可能性があること。
またモーションキャプチャなどで収録したデータにはノイズも結構多いのでその際の修正する過程で必要になったりするものです。
そこまで気にしなければそのまま使ってもいいと思うんですが、いやいや....と満足いかない場面結構多いです。とくにモーキャプの生データ。あれは修正不可避ですね...。
腕や足がぶっ飛んだりすることが結構あるので、そのノイズの除去のためにいったん流し込んだりします。
リターゲットは必須ではなく、もとのボーンの方で修正しても良いのですがUnityで流し込んだ際にズレたりすることもあるのでリターゲットして上げたほうが確実にきれいで確実にできるなぁという個人的感想があります。

BVHのインポート

前回の記事で触れたので軽く流しますが、以下の設定でまずはBVHをインポートしましょう。
Blenderでモーションデータ扱うならFBXでも良いですがモーキャプデータに限っては必ずBVHを使用したほうが良いです。
f:id:Yui_Aomi:20200427201427p:plain

BVHのインポートとターゲットになるキャラモデルを並べるとこんな感じになります。
f:id:Yui_Aomi:20200429004427p:plain

Remap機能を使用する

Auto Rig ProをインストールするとNで表示される右側のバーにARPというタブが追加されています。
その中のRemapというものを今回使用していきます。

作業に入る前に一点注意。
元のボーンとターゲットにするボーンのサイズはだいたい合わせておくこと。下記のようにだいたいで良いです。
Auto Scaleでも自分で合わせてもOKです。前者だと多少ズレることもあるのでSキーで自分でやるほうが確実な気がします。
f:id:Yui_Aomi:20200429010113p:plain

では実際に作業に入ります。
Source Armatureにはリターゲット元となるBVHデータのボーンを。
Target Armatureにはリターゲット先となるキャラモデルのボーンを指定します。
f:id:Yui_Aomi:20200429005945p:plain

次にBuild Bones Listボタンを押して出てくるボーンのリストがきちんと対応してるかどうか確認します。
まぁ一発できちんと対応してくれるはずもなく....おかしなところは自分できちんとマッピングしていきましょう。
マッピングが終わったら最後にRootになるボーンにだけSet as Rootのチェックを入れてやります。
今回は元のデータにRootがない関係でHipsがRootになるのでこいつにチェックを入れてやります。
f:id:Yui_Aomi:20200429010312p:plain

これでリターゲットの準備が整いました。
最後に▶Re-Targetボタンを押してリターゲット完了です。
リターゲット後きちんとポーズをとってくれない場合はどこかしらミスってます。ボーンの指定を見直したりしましょう。
リターゲットは結構重くて時間がかかりますが、待ちましょう。


無事成功すると下の画像のように同じモーションをとってくれるようになります。
ここからノイズ除去やら細かい調整とかをしていく、というフローになりますかね。
リターゲット後はもとのArmatureはもう必要ないので消してしまって問題ありません。
f:id:Yui_Aomi:20200429010448p:plain
だいたいあってるけど微妙になんか変だな....という時はInteractive Tweaksで調整してやるといい感じになります。

修正作業はグラフエディタで行います。
上部にあるレイアウトをAnimationにして、左上をグラフエディタにしたものが下画像。
f:id:Yui_Aomi:20200429010554p:plain

当たり前なのですが、全フレームにキーが打たれておりウッ....ってなります。
このまま修正作業などを行っても良いのですが、Blenderには間引きをしてくれるアドオンが標準で入っています...!
【編集→プリファレンス→アドオン】から検索で「Curve」とかで検索してみてください。
Add Curve: Simplify Curves+というのが出てくるのでこれにチェック入れるだけで使えるようになります。

使い方はいたってシンプルで、ボーンを選択した状態で実行するだけです。
今回は全ボーンに行いたいので全選択した状態で実行します。
実行方法はF3キー(検索ボックス表示)で「Simp~」と打てば候補にSimplify F-Curveが出てくるのでそれをクリックすれば処理が走ります。(結構重いです。)
処理が終わるといい感じに間引かれたのが確認できます。
間引く量は任意で設定ができるのでDistance Errorの数値を設定します。
おすすめは「0.05~0.1」あたり。これ以上にするとだいぶモーションが崩れてきます。
間引いたものが下画像。
f:id:Yui_Aomi:20200429011014p:plain

だいぶ間引かれたことでカーブの制御とかもやりやすくなりますね。
あとはぶっとんだキーの削除や、カーブの調整等きれいに動くように調整してやりましょう。

まとめ

Auto Rigはいいぞ。買おう。

リターゲットしたいときはAuto Rig Proにおまかせ!
めっちゃ簡単にできますね。大変お世話になっております。

次回でお手軽リグのセットアップを扱いたいなぁと思っております。
では。

前回
atelier-aomi.hatenablog.com

その2
(これを次回にしたかったけど忙しくてたどり着けなかったので2書いたらリンク張ります...)

次回
atelier-aomi.hatenablog.com