Blenderで別々のファイルからメッシュとアニメーションをUnityに書き出す方法メモ
BlenderからUnityに3Dモデルを書き出す場合は、FBXフォーマットを使うと思います。
FBXはメッシュとアニメーションの両方を含むことが出来るので、一つのFBXファイルで3Dモデルとアニメーションクリップ両方をUnityに渡せます。
ところで、Blenderからアニメーションを含むFBXを書き出すとき、やたらと書き出しに時間がかかります。これは書き出し時にアニメーションをベイクしているのが原因だと思われます。
blendファイルにアニメーションクリップが2~3個しかないなら良いのですが、10個以上のアニメーションクリップがある場合、一つのアニメーションクリップを修正しただけでも毎回すべてのアニメーションクリップをベイクして書き出すため、とても時間がかかります。
アニメーションごとにblendファイルを分けて、それぞれ別個にUnityに書き出せる仕組みが欲しい。
Blenderにはライブラリ機能(リンク機能)があるので、モデルとアニメーションを別のblendファイルで管理できます。元になるライブラリファイルと、そこからリンクされたリンクファイルに分けて、リンクファイルの方にアニメーションをつけるわけです。
ところが、Unity上でライブラリファイルから書き出したFBXの3Dモデルに、リンクファイルから書き出したFBXのアニメーションクリップを適用してもうまく動きません。FBXに何か違いがあるようです。
そこで、下図のようにライブラリファイルからモデル書き出し用のリンクファイルと、アニメーション書き出し用のリンクファイルを作り、それぞれからFBXを書き出せばUnity上でうまく組み合わせることが出来ました。
この方法を使えば、アニメーションがいくら増えてもアニメーションごとにblendファイルを分離できるので、書き出し時間が短縮できます。
※リンクファイルでアニメーションをつける時、リグからporxyを作ると思いますが、そのままFBXを書き出してもメッシュとリグが結びついておらずUnity上でアニメーションを再生できませんでした。
リンクファイル上でメッシュをライブラリオーバーライドすることで、正しくリグと結びついたFBXを書き出せました。
文章で書いても良く分からないと思うので、もし同じ問題でつまずいている方がいましたら連絡いただければ画像なりを増やします。