概要
Blenderで作ったオブジェクトをUnityに持っていくと、パッと見正しく表示されたように見えますが、Rotationがいい感じに調整されているだけなのでゼロにリセットするとオブジェクトは横倒しになっていることに気づきます。(気にしなければこのままでも使うことはできますがVector3.forwardなどで正しい方向が取得できないかもしれません)
これをRotation X=0 Y=0 Z=0でも正しい表示にする方法を共有します。
本文
まず
BlenderのObjectモードで設定した値はUnityのTansformに反映されてしまいます。
UnityのTransform値をデフォルト状態にしたい場合はObjectモードをむやみにいじらないのが良さそうです(編集作業はEditモードで)
次に
こちらがUnityの座標軸です。Z方向がオブジェクトの正面でY方向が上方向です。
対してBlenderではテンキー1を押した時正面に向くのが-Y方向でZ方向が上方向です
この違いからBlenderで頭の方向(Z軸方向)がUnityに移すと横倒しになる現象が起きてしまいます。
どうすればいいのか?
BlenderでObjectモードのRotationのXだけ90°回転にします。そうすればあとは、テンキー1を押した時こちら側の向きを正面としてモデリングするとうまくいきます。
(以下のスクショでは赤色を正面と見立てて作成しました)
Unityに持っていくとTransformがデフォルト状態で正しく表示されました。(正面Z軸 / 上方向Y軸)
おまけ
エクスポート時の設定例です。(ボーンがある時はArmatureもON)
状況によって設定は変わってきますが、今回の場合Apply ScalingsはFBX Allがいいと思います
おまけ2
既に作成済みのモデルの場合は上の手順を応用します。
ObjectモードでRotationのXだけ90°回転させます。
「R」「X」「90」で90°回転
モデルが横倒しになりますがEditモードに移って
「A」で全選択
「R」「X」「-90」で90°回転
このようにして起こします。
(ピボットポイントが変な位置にあったりオブジェクトが分かれている時などはそれぞれ対応が必要になります)