これまでUnityでBVHやFBXのダンスモーションデータを適用しておりましたが、Blenderの場合はどのようにダンスモーションデータをアバターに適用させるのか、気になったので調査検証してみました。

調査の結果、Blenderの場合は、リグのリターゲット作業が必要になるということが判明しました。

リターゲットをゼロから行うのは大変ですね、そこで便利なアドオンが2つ出ておりました。

一つは有償のアドオンで、「Auto-Rig Pro」というものです。
もう一つは無償のアドオンで「ReNim Node」というもので、今回はこの無償アドオンである「ReNim Node」がどんなものか検証してみました。

ReNim Nodeのサイトで金額に0を入力とメールアドレスの入力でダウンロードします。

ReNim Nodeを使う

アドオンをダウンロード後、zipファイルのまま選択して編集、プリファレンス、アドオンからインストールします。

インストール後、パネルでRetarget Animation Nodeというのが表示されますので、これを選択します。

ツリーに以下のようなウインドウが追加されます。
新規を押してから、オブジェクトのTarget and Source Objectが押せるようになりますので、
追加します。

以下のウインドウが表示されます。
しかし、非常に小さいので見づらいですね。

このウインドウパネルはマウスホイールで拡大可能でした。
以下のターゲット欄に、ダンスさせたいアバターをセットし、
ソース欄に適用させたいモーションデータをセットします。

しかし、この設定だけでは動きません、Boneも設定してやる必要があります。
先程の追加から今度は、マッピングを選択し、ボーンを選択します。

そしてボーンは全て設定する必要があります。
以下のようにボーンマッピングのパネルがボーンの数だけ複数分必要になります。

尚、Boneのパネルが増えるとみづらいので、BoneのバーをWクリックで、
以下の画像のように小さく折り畳むことができます。

とりあえずは腕と脚をマッピングして試してみます。
パネルの「BIND」を押すと、色が緑色になります。

アニメーション再生するとアバターの腕と脚が動くのが確認できました。

このボーンを全て設定することで、Blender側でのダンスモーション適用するということになります。


まとめ

今回はBlenderで無償のアドオンでのリグのリターゲットについて調査してみた結果を紹介しました。
筆者としてはUnityの方が圧倒的に簡単だと感じますが、
Blenderのエフェクトなども利用していて、Blenderだけで動画作成したい場合とか、
モーションデータが粗いので最適化をしながら、撮影したいとか、そのような場合は、有効かなと思いました。または今回試せていない有償のアドオンを使うという手もありますね。

Unity側で対応できるなら、既にモーションデータの精度も高く、触る必要がない場合などは、Unity側に全てセットを用意してUnityで動画撮影でもいいのではないかと思いました。

何かの参考になれば幸いです。