忍者ブログ

~サンマに醤油.net~

個人的なメモ兼、日記兼、なんでもありのブログです。 主にUnityやBlenderの備忘録的なものになると思います。

Blenderで作成したモデルをUnityへFBXエクスポートするとScaleやPositionが固定されるエラーについて(長い)

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

コメント

ただいまコメントを受けつけておりません。

Blenderで作成したモデルをUnityへFBXエクスポートするとScaleやPositionが固定されるエラーについて(長い)

個人用にメモ。
割とメジャーなエラーなんですが、ネット上の解決法では僕のエラーは直りませんでした。
以下に僕なりの解決法を見つけたので明記しておきます。
このエラーはモデルによっては発生しないみたいです。


エラー発生までの流れ
①Blenderでボーン入りのモデル作成後FBXエクスポート。
②UnityにインポートしAnimatorにAnimator Controllerをセットする。
③走らせると、ボーンにScaleやPositionの変更を設定していないのに、数値が勝手に割り振られる。
④意図しない位置へモデルが移動したり、拡大や縮小が行われてしまう。

というエラーに直面しました。

結論から言うと、
「何でも良いからボーンと無関係なメッシュを配置すると直る」です。
何故これで解決できるのかは謎。


実際の症状
Blender上でゲームで使用する扉の3DCGをモデリングし、ボーンを入れ込み、扉が開閉するアニメを当てました。
これをFBXエクスポートし、Unityにインポート。
その後、アニメーションが働くようにAnimator Controllerをセットしました。
以上の操作でプロパティが以下のようになりました。

・Scaleが100になる。
・Root position or rotation are controlled by curcesのエラー文が表示される。



この状態でデータを走らせると、Positionが設定した数値とは別の物になってしまい、意図しない位置にモデルが表示されました。
また、Scaleも200(2倍)にしてもデータを走らせると100に戻ってしまい、好みの大きさに設定できないという状態になりました。




解決法
Blender上でボーンを紐づけていないメッシュを作成する上手くいきました。
何でもいいので平面などのメッシュを作成して、エクスポートすると上記のエラーは無くなりました。


Scaleも初期値は1になり、Animator Controllerを設定してもエラーが起きず、PositioもScaleも好きな値を割り当てることが出来るようになりました。
余分に作ったメッシュは非表示にしてしまえば問題ないと思います。



終わりに
僕の他にもこのエラーに直面した人はいたみたいで、AnimatorのApply Root Motionにチェックを入れたり、Scale Facterを予め設定しておくなどの方法がありましたが、どうしてもScaleを好きなタイミングで変更したかったので、この方法を適用して作業しています。

そもそも、エラーの発生原因が判明してないのが何とも気持ち悪いのですが・・・
PR

コメント

プロフィール

HN:
dacchi
趣味でUnityいじったり、Blenderでモデリングしたり、Warmachineのミニチュアを塗ったり遊んだりしてます。

P R