
【Blender】Vroidで作成したキャラクターにMixamoでアニメーションを付ける
Mixamoとは3DのアニメーションデータをFBX形式でダウンロードできるサイトです。いつのまにかAdobeになっていましたが、いまでも無料で使えるようです。
最大の特徴は単純にアニメーションデータをダウンロードできるということだけでなく、オリジナルのキャラクターをアップロードするだけでリギングが行えるというところでしょうか。
リギング
【よみ】りぎんぐ【英名】rigging
3DCGモデルに対して、アニメーションをつけるための設定を施す工程のこと。セットアップともよぶ。モデルとスケルトンを関連づけるスキニングや、IK/FKの設定、ウエイト調整、デフォーメーション設定などが含まれる。アニメーターが直接操作するコントローラーを制作することもある。
自分の場合はVroidで作成したキャラクターを使ってみましたが、少し手間がかかるのでその備忘録も兼ねて。Mixamoのデータとあわせて下記のような動画をつくってみました。(アニメっぽさを出すためにフレーム数を落としてます)
作ってるほうもあくび出た#indie_anime #blender #b3d #Shoost pic.twitter.com/Xflpx8xcX1
— ヱノプルギスの夜 (@bazbed) February 20, 2022
#Shoost つかってみました#indie_anime #blender #b3d pic.twitter.com/Juh6DXmdTt
— ヱノプルギスの夜 (@bazbed) February 17, 2022
BlenderにVRMを読み込み、FBXで書き出す
・VRM Add-on for Blenderをダウンロード・インストール
Vroidで書き出したVRM形式のファイルを読み込めるようにします。
・cats-blender-pluginをダウンロード・インストール
VRCHAT用に軽量化するためのプラグインですが、VRCHAT以外の目的でも軽量化に使えます。
以下手順です。






というようにMixamoに読み込む前に軽量化をしてからFBXに書き出します。
上記のように設定すると「○○.fbm」というフォルダーと「○○.fbx」というファイルが保存されます。これらをzipで固めておきます。
ここまでの作業でキャラクターの基本ファイルのバックアップ用として保存しておくのをおすすめします。
MixamoにFBXを読み込む





左のサムネイルを選択すると、アップロードしたキャラクターでアニメーションを確認することができます。そのアップロードしたキャラクターにアニメーションがついたFBXデータをダウンロードすることができます。
ダウンロードしたFBXファイルをBlenderに読み込む
インポートからMixamoからダウンロードしたFBXファイルを読み込みます。読み込むとこんな感じ。

VroidはマテリアルにMToonが設定されているのですが、MixamoからダウンロードしたFBXを読み込むと、MToonとは違う設定になっているため、見た目がおかしなことになっています。元のVRMファイルをこのファイル内に読み込むと、MToonの設定になっているマテリアルも一緒に読み込まれるので、おかしくなっている見た目を、元のマテリアルの設定に変更することで元通りにすることができます。(なんか日本語がおかしい)

ここまで来ると、再生ボタンを押すことで一通りアニメーションが確認できるようになります。
Mixamoのアドオンで他のアニメーションデータを適用する
mixamoで用意してあるコントロールリグのアドオンを使うと、他のアニメーションも適用することができます。


上図のようにコントロールリグが正常に設定されたら、このファイルにmixamoからダウンロードした他のアニメーションデータをインポートします。

コントロールリグを選択した状態で、読み込んだArmatureをスポイトツールで指定し、「Apply Animation to Control Rig」ボタンを押すとアニメーションがコピーされます。

今度はマテリアルの設定もおかしくならずに、別のアニメーションを適用することができました。再生ボタンなどを押して、アニメーションが適用されているか確認してしてみてください。レンダリングの際は読み込んだオブジェクトがレンダリングされないようにオフにしてください。
ココから結構大変だった…
2つほど問題がありました。
髪の毛の長いキャラクターには不向き?
ダウンロードしたFBXをBlenderにインポートした場合、髪の毛は単純に頭や肩、髪のボーンなどのウェイトにあわせて動いているだけになるので、髪の長いキャラクターは少々不自然な感じになります。
クロスやウェイト、アニメーションなどを再度設定する必要があります。なにか良い方法があるのか…。Unityのほうで読み込むと大丈夫そうなのかな…?
シェイプキーを再設定する必要がある
前段でシェイプキーを一度全部削除しないとmixamoに読み込めなかったので、再度インポートしたFBXにも当然シェイプキーなどは存在しません。そうなるとVroidで用意されていた表情なども出せなくなってしまうので、顔の部分だけ分解して再結合などして、表情も出せるようにしました。
これも良い方法があるのか知りたい…。
編集で工夫を
自分はアニメっぽさを求めているので、どうしても3Dの不自然さみたいなところが気になります。だったら3Dで作るなよということにもなるのですが、そこは一人で作るとなるとアニメーションを描いていくのは相当大変。なので編集で、Premiereなどで12.5フレームにして動きをカクつかせてみたり、編集の工程に最近リリースされた「Shoost」というソフトを活用してみたりしました。
アニメっぽさを演出するものとして画期的でしかも簡単、多くの人に表現の幅を持たせてくれるすばらしいアプリです。
アニメーション界隈では、こういう当事者達の成し遂げたいことの熱量から生まれるユーザーイノベーション的なアプリ、機能、アイデアがたくさん生まれています。自分のクオリティはともかく、創作意欲は増すばかりです。