poi’s tech blog

3D多人数同時接続型球体アクション成人向けゲーム開発のためのアイデア、ナレッジ

Blender 2.7 FBX Export 全てのアニメーションを出力したい

Blender 2.8ではこの問題は発生しないみたいです。

poipoipoip.hatenablog.com

Blenderのアニメーション周りのナレッジが少なくてよく理解してない。

今までは、作ったアニメーションにFボタン押しとけばFBX出力の時についてくると思ってたけどアニメーション数が12を超えたところで何故かそれ以上まとめて出力できなくなる現象が発生した。

f:id:poipoipoip:20190323165809p:plain
この「F」ややこしい。

例えばBlenderでアニメーション15個作って全てF(フェイクユーザー)登録してるのにFBX出力してUnityで取り込むと12個までしか無い。出力できてないアニメーションがほかのアニメーションと設定が違うのかもしれないけど何が違うのかがわからない。

1つずつ出力してとりあえずしのぐか…って諦めかけてた時に解決方法みつけた。

やりかた

まずドープシードビューからアニメーション1つずつ選択して「ストリップ化」を押す。

そうするとNLAエディタにアーマチュア名の子としてNLA Trackという行が追加されるのですべてのアニメーションを同じようにストリップする。

NLA Trackの名前は特に変更しなくてもよさそう。

f:id:poipoipoip:20190323171228j:plain
アニメーション1つずつ選択して「ストリップ化」でNLAエディタに加える

出力時の設定

FBX出力時、メインタブはアーマチュアとメッシュを選択

f:id:poipoipoip:20190323170212p:plain
アーマチュアとメッシュをShit押しながら選択

アニメーションデータが重複しないようにアニメーションタブから全アクションのみ外す。NLAストリップデータとしてアニメーションが出力される模様(?)

f:id:poipoipoip:20190323170133p:plain
全アクションのみ外す

最後に出力したFBXファイルをUnityで取り込む。

f:id:poipoipoip:20190323170426p:plain
アニメーションが全部ある!

注意点は、ドープシードビューでアニメーション変更してもNLA Trackのアニメーションが変更されるわけではないので既存のTrack削除(左クリックで選択してx)と再度ストリップ化が必要そう。

Unity上でCtrl + Dでアニメーション単体を抜き出そうとするとき、以前の方法だと「アーマチュア名|アニメーション名」といった具合に「|」が入ってることで上手く抜き出せない問題が起きてたけどそれもなさそうだから今後はこの方法で出力しようと思う。