【Unity】.blendのインポート挙動を上書きするスクリプト
Unityは.blendのインポートに対応しています。 その挙動がUnityの仕様変更によって大破壊されてます。 キレちゃった。
何が問題なのか
.blendをインポートすると従来は各Actionを別々のAnimationとしてインポートできてました。
ところが、ある時から.blendの保存時に選択していたAction1つだけしかインポートしてくれなくなりました。
Animationの数だけFBXのエクスポートをしなきゃいけないんですか…?
なぜこんなことに…
下記のissueに対する修正で挙動が変わっちゃいました。これをパッチリリースで出せる心粋。
皆さんお困りのようでフォーラムやらissurtrackerにも情報がありました。
Blender 2.8 animations not importing in Beta 2019.3.0b4 - Unity Forum Unity Issue Tracker - Using multiple animation clips in Blender not all Animation clips are imported using a .blend file
Won't Fix じゃあないんだよ
どうやってなおすの
この不具合は、上記フォーラムにある通りUnity-BlenderToFBX.py
の一部を書き換えると回避できます。
こいつらがFalseのとこをTrueにするとよい。
bake_anim_use_nla_strips=True bake_anim_use_all_actions=True
これをすべての開発環境で、全てのUnityバージョンで修正するの面倒だよね…? ということでタイトルの「.blendのインポート挙動を上書きするスクリプト」を用意したわけです。
.blend のインポート時のFBXエクスポート処理を上書き太郎
適当なEditorフォルダに突っ込んであげてください。その環境のUnity-BlenderToFBX.py
を書き換えます。
書き換える内容はハードコードされちゃってますが必要に応じていじってください。
「同じ環境の別プロジェクトではデフォルトのインポート挙動にしたい」みたいな場合は#if false
のとこをtrueにすればEditor終了時に戻してくれるはず。
おしまい
.blendのインポート…全部の環境にBlenderが入ってる必要があるので、ある程度の規模になるととても使えない機能だろうとは思います。 しかし個人で作る分には便利で使いまくってるので、もっと気の利いたメンテをしてほしかったです。