BlenderからUnityへ出力する際のメモ

Blenderで作ったモデルをFBXに出力する際のスケールや回転が、出力設定によって色々変わって混乱したのでメモ。

BlenderでApply Transformにチェックを入れないで出力した場合

  • Blenderで出したモデルは頂点座標は 1.0/100.0 されて、スケールに100倍掛けられて出力される。
  • 座標系の違いは、オブジェクトのRotationとして入ってくる

画で説明すると、

f:id:wkpn:20160814113713p:plain
Blenderで、こういうモデルを

f:id:wkpn:20160814113744p:plain
こういう出力で出すと、

f:id:wkpn:20160814113757p:plain
Unityで読み込むとこんな感じになる。Scaleに100、Rotationに90度が入っている。もちろん見た目は一緒。

Apply Transformにチェックを入れて出力した場合

  • 頂点座標は、そのまま。スケールもそのまま出てくる。
  • 座標系の違いは、頂点座標が変換されて出力される。

画で説明すると、

f:id:wkpn:20160814114033p:plain
Blenderで、さっきと同じモデルを

f:id:wkpn:20160814114123p:plain
こういう出力で出すと、

f:id:wkpn:20160814114157p:plain
Unityで読み込むとこんな感じになる。Scaleも1だし、Rotationも特に入っていない(頂点座標として吸収されている)。

  • ※Apply Transformした場合でも、オブジェクトに設定しておいたSRTはそのまま出てくる(頂点座標として吸収されない)。
  • ちなみにBlender上でオブジェクトに設定したSRT変換は、Object->Applyで頂点に適用できる
    • 以下のApply Objectの項目を参照

User:Fade/Doc:2.6/Manual/3D interaction/Transform Control/Reset Object Transformations - BlenderWiki

  • 結論。できるだけBlender上でのSRT変換は頂点座標に適用させて出力するのがUnity上での取り扱いが楽だと思う。

その他

  • Blenderの1GridはUnityの1Grid、つまり1メートルである
  • textureを元のテクスチャ位置と同じ相対パスに、あらかじめ置いておかないとUnity上のマテリアルにはちゃんと適用されない。

Divide Number Puzzle

Divide Number Puzzle

  • Ken Watanabe
  • Games
  • Free
play.google.com