Unity備忘録48頁目「スケール色々」

江上宿六です。

 

今までスケールとかで考えたり苦労した事があまりなかった()ので、

いきなり妙な問題に直面して驚いたので記事になる運びとなりました。

Unity備忘録とは言えBlenderも関わっている話だったりする。

前回のブロードソード、Blenderで作ったものをfbxとしてエクスポートした

(一応)何の変哲もないものなんですが、これをUnityにインポートして配置すると

f:id:y6yegami:20190731130915p:plain

画面上は正しく見えている状態ですけどなんか妙な回転が加わっています。

それよりもスケールが100とか何かとんでもない事になっています。 一応これを

このまま使う事も出来る(というか普通に使う)のですが、気味が悪いのは確かです。

 

どうしてこんな事になるのかというとBlenderとUnityで座標軸やスケールとかが

異なっているからということらしいのですが、とりあえず面倒な話は置いといて

どうやってそこを埋めるかというのが重要です。

 

最も簡単な方法だと思うのはBlenderのエクスポート設定をいじる事です。

f:id:y6yegami:20190731134439p:plain

ここの前方を-Zが前方、上をYが上というUnityと同様の左手系の座標軸に設定し

下の!実験的機能!トランスフォーム適用にチェックを入れます、これだけです。

あとスケールもすべてFBXにしておくのも良いかもしれません、よく知りませんが。

f:id:y6yegami:20190731134614p:plain

この設定をしたfbxをUnityにインポートしてシーンに配置してみるとシーン上の

見た目は先ほどのと同じですが、スケールや回転が正しい感じになっています。

f:id:y6yegami:20190729152709p:plain

因みに前回のこの画像とかはその辺を設定してない状態でやったので軸が変です。

ちゃんと自分のUnity内では直しておきました。

 

それともう一つスケール系のアレで、キャラクターのfbxなんですが。

f:id:y6yegami:20190731135722p:plain

これもミスなんですけど、サイズ調整としてスケールを0.108(0.1075)に縮小したのを

適用せずにそのまま放置して進めてしまっていました。 今は何故か正しく動いて

いるように見えますけど、後でガタが来ないように祈ります。

f:id:y6yegami:20190731144256p:plain

モデルだけ見ると普通なんですけどアーマチュアを確認すると先ほどと同様に軸が

変だったり、スケールが10.75になっていたりしてます。 10.75というのは

Blenderでのスケールが0.1075なのでその100倍、上のブロードソードでもあった

100と同じ様なものでしょう。

 

こちらも改善しようとしたんですけど、Blender側のサイズを適用すると

ボーンが歪むんですよね。 それによってアニメーションに限らずポーズや表情も

全て作り直しになってしまうのでなかなか二の足を踏むというやつです。

出力を変えても特に意味が無かったので今は放置することにしました(諦め)。

 

 

ともかくこんな変な状態でもちゃんと運用するためのEquipオブジェクトです。

f:id:y6yegami:20190731160158p:plain

Equipのスケールをアーマチュアの値と掛け合わせて1に近づくサイズに

してやる事で、スケール1でInstantiateした時に適切なサイズで表示をさせることが

できます。 苦し紛れの技ですけど仕方がないですね。

f:id:y6yegami:20190731160521p:plain

というわけで前回と合わせて正しく装備の表示が出来ました。

 

モデルの方を正しくするために色々奔走していたらUnityの方の構成が壊れてしまい

愕然としたりもしましたが。 ちゃんとPrefabとかとっておけば良かったですね。

まぁ、結論として困った事には対処すべきで、困ってない事は放置で良いです。

 

次回はインベントリでの装備状態をどうこうしたいですけど、別に備忘録に

記すことでもなかったら適当に何か考えておきます。