今回はZbrushとMAYAで作業を行う際、サイズがどのように扱われているのか気になりましたので検証を行いました。
検証詳細に画像もあわせて記載しましたので気になる方は一読いただけますと幸いです。
検証内容
①Zbrush上でデモソルジャーを180cmにしてobj/fbxとして書き出し、
MAYAへインポート。
スケールマスターのobj書き出しとFBXエクスポートの違いを検証
②MAYAで180cmに設定したデモソルジャーをZbrushにインポート(ma)
MAYAから読み込んだZbrush上のデモソルジャーを再びMAYAへ(fbx)
検証結果
①objの場合はスケールマスターの出力をcmにすると
同じ数値で出力される (Unitサイズではなさそうです。)
ZbrushのFBXエクスポートでは初期単位がcmとなり、
この参照先はスケールマスターのUnitサイズ。
【Unitサイズ 〇〇*〇〇*〇〇】cmとなる。(おそらく)
スケールマスターでmmで1800mmで設定していると、unitサイズは1800となり
FBXとしては1800cmと計算されてしまうので注意が必要。
②MAYA作業単位ごとに、インポート時Zbrushのunitが変わってしまう。
cmにしておくと上記②の検証結果通りfbx間のやり取りがスムーズに行える。
mの場合、180cmは【1.8m】となり Zbrushにインポートした際に
1.8unitとなってしまう。
Zbrushに持ち込んだ1.8unitをFBX(初期単位=cm)で書き出すと1.8cmとなってしまい
100分の1のスケールになってしまう。
mmは1800mm が1800unitとなり、fbxで書き出すと1800cmとなってしまう。
要点
- ZbrushとMAYAで作業を行う際は、作業単位cmで行うとわかりやすい。
理由としては、ZbrushのFBXの単位とMAYAの作業単位でモデルのサイズに差がてしまう可能性があるため。cmだと双方で合う。
(デメリットはZbrushの最適なサイズ2から離れてしまう) - Zbrushでのサイズ変更は
スケールマスターまたは「サイズ」と「エクスポート」で可能。
スケールマスターでの変更は、レイヤーやモーフは元のサイズを参照するのでベイクしておく必要がある - Zbrushのobj書き出しを行う際は、
スケールマスターの書き出しを【cm】に設定する - ZbrushのFBX書き出しは初期単位cmとなっている。
参照数値はスケールマスターのシーンスケールセットにあるunit単位で
【Unitサイズ 〇〇*〇〇*〇〇】 cm】となる。
サブツールの一番上のモデルの大きさを参考に他のモデルの大きさを決めてし まうので、一番上のメッシュのエクスポートの数値は必要でない限りサイズやエクスポートの数値を触らない方がよい。
※FBXのサイズを大きくしたい場合は、
【エクスポート】の数値を0.1倍や100倍を行う - maをZbrushにインポートするとき、MAYAの作業単位でunitが変更される
MAYA:1800mm → .ma → Zbrush unitY 1800 → FBX(cm) → 1800cm
MAYA:180cm → .ma → Zbrush unitY 180 → FBX(cm) → 180cm
MAYA:1.8m → .ma → Zbrush unitY 1.8 → FBX(cm) → 1.8cm - maデータをインポートする際、unitの大きさが【ジオメトリ/サイズ】と【エクスポート】に自動で計算されてしまい、サイズがそのモデルのサイズではない状態となる。
インポート前にPolyMesh3Dを選びポリメッシュ3D化をして
maをインポートを行うと【エクスポート】は1になり、【ジオメトリ/サイズ】はそのモデルのサイズとなる。
検証詳細
★①Zbrush上でデモソルジャーを180cmにしてobj/fbxとして書き出し、
MAYAへインポート。
スケールマスターを使用して、デモソルジャーを180cmに変更
スケールマスターで大きさを変更する場合以下の手順で行うことができる
- シーンスケールセットで現在のサイズ(unit)5.44*7.91*1.45がどのような単位か選択。最初はmmで検証
- mmが選択されていることを確認し、念のためスライダ>サブツールサイズを押す
(このボタンは選択されている単位で、正しい数値を取得するもの) - Yを1800(mm)に設定。この時XとZも数値が動くことを確認する
- サブツールリサイズボタンを押す
- これで1800mmにサイズを変更することができました。
この時プレーンをだして、位置が0であることを確認して、デモソルジャーをプレーンの上にもっていくことで、maya上で原点から立たせることができる
Zbrush obj書き出し
サブツールマスターのobj書き出し。MAYA(作業単位mm)へインポート
検証内容
- パターン1:スケールマスターの書き出し単位を【mm】に設定しExport
- パターン2:スケールマスターの書き出し単位を【cm】に設定しExport
結果:パターン1のmmで書き出しは、10倍の18000mm でMAYAにインポートされ
パターン2のcmで書き出したobjは1800mmとしてMAYAでインポートが
できました
これは MAYA作業単位cmにして先ほどのobjをインポートしても同様の結果でした。
MAYAの作業単位は関係ないことがわかりました。
なぜmmで書き出したものは10倍の18000mm(1800cm)でMAYAへインポートされたのか気になります。。
試しにZbrushのリサイズをcmで計算して、
書き出しをmmとcmで行いましたが、結果は上記と同様のサイズとなりました。
Zbrushのobj書き出しの結論:
スケールマスターの設定を【cm】で書き出しを行うことがベスト。
おそらくZbrush内部で1800mm(180cm)という数字を持っていて
単位をmmでobj書き出しを行うとmmをcmに置き換えて書き出されているようです。
1800mmをmmで書き出し →1800mm cm →→1800cm ✕
1800mmをcmで書き出し →内部的には180cmcm →→180cm 〇
180cmをmmで書き出し →内部的には1800mm cm →→1800cm ✕
180cmをcmで書き出し →180cmcm →→180cm 〇
Zbrush fbx書き出し
検証内容
- パターン1:スケールマスターを1800mmにしてFBXエクスポート
- パターン2:スケールマスターを180cmにしてFBXエクスポート
結果パターン1も2も10倍の18000mmとして書き出されました。
これはZbrushのもっているunitが関係しているそうです。
シーンスケールセット内にUnitサイズが書いてあり、
この数値をfbxで書き出しを行う際、fbx初期単位cmで書き出されているので
10倍の大きさになってしまいました。(1237*1800*329)cm
このFBXのファイル単位はMAYAのFBXのオプションからも確認でき、
zbrushcentralでも記述がありました。
https://www.zbrushcentral.com/t/fbx-export-scale/327953/3
・ The default units for FBX are centimeters (cm)
unitサイズを180にして書き出すと正常に180cmとして書き出すことができました。
unitサイズの変更は以下の二つのどちらかで可能です。
- サブツールマスターで変更
- ツール/ジオメトリ/サイズとツール/エクスポート
(unitサイズ=サイズ*エクスポート)
ここでもう一点注意があります。
このFBXエクスポートはサブツールの一番上にあるunitサイズを参考に、他のモデルの大きさを決めているので、一番上にスフィアを新規で追加し
180の半分のunitサイズ90(サイズ0.18*エスクポート500)にして書き出してみると、
スフィア90cmを基準にデモソルジャーも変化してしまいます。
ZbrushのFBX書き出しの結論:
FBXエクスポーターを使用する際は、unitサイズがcmに変換される。
FBXの初期単位はcm。
unitサイズは、以下のどちらかで変更可能。
サブツールマスターまたは、ツール/ジオメトリ/サイズとツール/エクスポート。
サブツールの一番上にあるメッシュのunitを基準に他のメッシュの大きさが変化する
注意点は、レイヤーやモーフはスケールマスターをかける前のサイズを参照しているのでついてこない。
★②MAYAで180cmに設定したデモソルジャーをZbrushにインポート(ma)
MAYAから読み込んだZbrush上のデモソルジャーを再びMAYAへ(fbx)
検証内容
- MAYAの単位をmmに設定。1800mmのモデルをmaで保存。
Zbrushにインポートして、FBXエクスポーターで書き出しを行いMAYAインポート - MAYAの単位をcmに設定。180cmのモデルをmaで保存。
Zbrushにインポートして、FBXエクスポーターで書き出しを行いMAYAインポート - MAYAの単位をmに設定。1.8mのモデルをmaで保存。
Zbrushにインポートして、FBXエクスポーターで書き出しを行いMAYAインポート
結果:作業単位での数値がそのままunitとして計算され、FBXで書き出すとそのunit数値がcmに置き換わる
MAYAのma書き出しの結論:
MAYAの作業単位はcmでの作業がベスト。(ZbrushのFBXがcmで計算されるため)
MAYA上で同じ大きさでも作業単位で、
Zbrushのmaを読み込んだ時のunitサイズが変更されてしまう。
MAYAでmmで作業を行う場合は、FBX書き出し時にエクスポートで0.1倍する
MAYAでmの場合は100倍すると同じ大きさになる
また注意点は、maデータをインポートする際、unitの大きさが【ジオメトリ/サイズ】と【エクスポート】に自動で計算されるので
インポート前にPolyMesh3Dを選びポリメッシュ3D化をして
maをインポートを行うと【エクスポート】は1になり、【ジオメトリ/サイズ】はそのモデルのサイズとなる。
まとめ(要点再掲)
- ZbrushとMAYAで作業を行う際は、作業単位cmで行うとわかりやすい。
理由としては、ZbrushのFBXの単位とMAYAの作業単位でモデルのサイズに差がてしまう可能性があるため。cmだと双方で合う。
(デメリットはZbrushの最適なサイズ2から離れてしまう) - Zbrushでのサイズ変更は
スケールマスターまたは「サイズ」と「エクスポート」で可能。
スケールマスターでの変更は、レイヤーやモーフは元のサイズを参照するのでベイクしておく必要がある - Zbrushのobj書き出しを行う際は、
スケールマスターの書き出しを【cm】に設定する - ZbrushのFBX書き出しは初期単位cmとなっている。
参照数値はスケールマスターのシーンスケールセットにあるunit単位で
【Unitサイズ 〇〇*〇〇*〇〇】 cm】となる。
サブツールの一番上のモデルの大きさを参考に他のモデルの大きさを決めてし まうので、一番上のメッシュのエクスポートの数値は必要でない限りサイズやエクスポートの数値を触らない方がよい。
※FBXのサイズを大きくしたい場合は、
【エクスポート】の数値を0.1倍や100倍を行う - maをZbrushにインポートするとき、MAYAの作業単位でunitが変更される
MAYA:1800mm → .ma → Zbrush unitY 1800 → FBX(cm) → 1800cm
MAYA:180cm → .ma → Zbrush unitY 180 → FBX(cm) → 180cm
MAYA:1.8m → .ma → Zbrush unitY 1.8 → FBX(cm) → 1.8cm - maデータをインポートする際、unitの大きさが【ジオメトリ/サイズ】と【エクスポート】に自動で計算されてしまい、サイズがそのモデルのサイズではない状態となる。
インポート前にPolyMesh3Dを選びポリメッシュ3D化をして
maをインポートを行うと【エクスポート】は1になり、【ジオメトリ/サイズ】はそのモデルのサイズとなる。
いかがでしたでしょうか。
MAYAの作業単位がそのままunitとしてZbrushにインポートされて、FBXは「unit」cmになることがわかり、Zbrushのサイズについて少し知ることできてよかったです。
またSubstancePainterでFBXの大きさを比べると、
MAYAでの作業単位がmで1.8mのFBXとZbrushのunit1.8のFBXが同じ大きさ且つ、MAYAから書き出した180cmのFBXのほうが大きかったので、MAYA1.8をそのまま数値(cm?)として受け取っている印象でした・・・。
今回は文面やわかりやすさの都合上、Zbrushの最適なサイズ2(Zbrushスケールユニファイ)やMAYAのFBXインポートのスケール係数のお話は省きましたが、
補足や不備等ございましたらコメントいただけますと幸いです!
参考サイト