本日はモデリング枠です。
モデリングをしている際に基本的にBlender,Mayaだけで完結するなら問題はないことも多いのですが、Unity、UnrealEngineなどにエクスポートする場合はBlender,Mayaと大きさや挙動が変わることがあります。
多くはオブジェクトモードで操作をしてしまったなどの理由でデフォルトのTransformが0.01などになってしまっていることなどが原因ですが、筆者はモデリング暦10年ほどですが、筆者でもいまだに起こしてしまいます。
今回はBlender、Mayaそれぞれにおいてトランスフォームの正規化方法をまとめていきます。
〇トランスフォームの正規化とは?
トランスフォームの正規化はあるオブジェクトに対して今の見た目上の位置、大きさをもって(位置、回転、スケール)=(0,0,0,0,0,0,1,1,1)に設定することです。
もっとわかりやすく簡単に書くと、今の見た目上の大きさを決定するということです。
この正規化が行われていないと、見た目上の大きさ(ユーザーが望んでいる大きさ)と、実際の大きさ(スケール値=1,1,1)がずれている状態となり、UnityやUnrealEnigineにインポートした場合は、スケール値=1,1,1で読み込まれます。そのためBlenderやMayaの見た目とUnity、UnrealEngineでの見た目が変わってしまうのです。
〇Blenderでの正規化の方法
次のような状態で考えてみましょう。デフォルトのキューブのように見えますが、このオブジェクトはオブジェクトモードでスケールを変えてしまっています。

具体的にはデフォルトの状態でスケールの値が600になってしまっています。

この状態でエクスポートしてUnityなどで見た場合スケールは1,1,1にされることが多いため、見た目はものすごく小さくなってしまいます。

Blenderの場合トランスフォームを正規化するためにはオブジェクトモードで対象を選択している状態でCtlr+Aキーを押し全トランスフォームを適応します。

これによって見た目上の大きさで位置、回転がそれぞれ0になり、スケールが1になります。

〇Mayaでの正規化の方法
Mayaの場合はチャンネルボックス/レイヤエディタから確認できます。
今回もBlenderと同様にスケール値が正規化されていません。

Mayaの場合は上部ワールドメニュー修正からトランスフォームのフリーズを使用します。

これによってトランスフォームが正規化されます。

以上が両ツールでのトランスフォームの正規化手順でした。
本日は以上です。