BlenderとUnityで軸が違うことの検証と解決方法

スポンサーリンク

BlenderとUnityの軸の違い 概要

Blenderは前方がY軸の負方向、上方がZ軸の正方向とする右手座標系のようです。Unityは前方がZ軸正方向、上方がY軸正方向の左手座標系です。この違いにより、Unityの操作で不都合が生じることがあります。この軸の違いを解決する方法ですがネット上には中途半端な情報が多いのでここでまとめておきたいと思います。

スポンサーリンク

BlenderとUnityで軸が違うことの解決方法

BlenderとUnityで軸が違うことを解決する方法はBlenderのエクスポーターで設定を変える方法があります。これはネット上によくある情報です。しかしエクスポーターの使い方や細かい注意点などがありますので、これらを把握しておかないと往生します。

Blenderでの正しい設定方法

Blenderのエクスポート拡張子は.fbxを使用します。エクスポートにすすむと左側に画像のような項目があるはずです。
screenshot 20181225 1231
こちらのエクスポーターの設定でUnityの軸と合わせることができるようになります。重要な設定項目を箇条書きで解説します。

  • Selected Objects → チェックを入れていなければBlenderのすべてのオブジェクトがエクスポートされる。チェックを入れていれば選択中のオブジェクトのみエクスポートされる
  • Forword,UP → -Z ForwordとY UpでUnityと同じ軸になる
  • EXPERIMENTAL Apply Transform → これにチェックを入れておかないとForword,UPの設定が反映されない。

この点から正しい設定方法はSelectedObjectsにはチェックを入れず、Forword,UPの設定をしたうえでEXPERIMENTAL Apply Transformにチェックを入れる。ということになります。

Blenderで軸の設定をしたのにも関わらずUnityでうまくいかない理由

さきほどの見出しでBlenderで正しく軸の設定を行ったのにもかかわらずうまくいかない場合があります。この理由は個々のオブジェクトが回転値をもっているからです。たとえば以下の画像のタイヤはシリンダーをy方向に90°回転させたオブジェクトです。
screenshot 20181225 1244
これがBlenderの軸設定をただしく行っているにもも関わらずUnityでうまくいかない理由です。Unityでインポートしたときに個々の回転値をひきついでしまっているためYが上方向にならないのです。

BlenderとUnityの軸の違いを解決するには結局どうしたらいい?

わたしの見解では個々のオブジェクトの回転値をUnity側でひきつがないようにする設定方法はありません。なので結局のところBlenderでオブジェクトの回転値がないときだけUnityただしくインポートできるということになります。

結論。BlenderとUnityの軸の違いは気にしなくてよい

やることにもよるとは思いますが実をいうとBlenderとUnityの軸の違いはあまりきにしなくてもよいです。Blenderで作成したオブジェクトにコンポーネントを追加するとおかしくなることがありますが、そのときはUintyの空のゲームオブジェクトを使えばよいのです。ですので、Blenderで作成したモデルはUnity上ではただの見た目を決めるためだけのもと割り切ったほうがよいかもしれません。

あまり参考にならないかもしれませんが、これが筆者の見解です。

UnityとBlenderの軸の問題は思った以上に深刻?

UnityとBlenderの軸の問題は思った以上に深刻です。Blenderのエクスポーターで正しく設定を行っていても、Unityにimportしたときにおかしくなっていることがあります。そのときはやはりUnityの空のゲームオブジェクトを使用するのが確実です。詳しくはこちらの記事にも書いています。
UnityのAutoCamの動きがおかしいときの原因と解決策。

コメント

タイトルとURLをコピーしました