blender <> MAYA <> 3dsMAXのモデルデータやり取りの注意点

3DCGの仕事をしていると会社さんによって、使ってるソフトが異なる場合があります。3DCGソフトは、ほぼすべてのソフトでほとんど互換性がありません。基本的には似た様なことしかしてないはずなのですが、微妙に違うデータ形式や操作方法を持ってます。

今回は、特によく使われている3つのソフトでデータを受け渡す際に注意することをまとめてみました。

まず、前提として、データの受け渡しに使うファイル形式はFBXというものが使用されます。これは、オートデスクが提唱している互換性の高いファイル形式です。

しかし、このFBXがやっかいな問題を引き起こします。同じ会社の3DSMAXとMAYAの間ですら、厳密な互換性がありません。でもまあ、ある程度注意してファイルをやり取りすると、モデルデータのやり取りくらいは、なんとか上手くいきます。


毎度毎度、スタッフやクライアントでトラブルが起きるので、この機会にわたしの分かる範囲で、注意した方が良いポイントをまとめてみました。

今回使用しているソフトは以下の通りです。

▼blender2.78a

東北ずん子で覚える! アニメキャラクターモデリング

▼MAYA2016

マヤ道! ! : The Road of Maya (CG Pro Insights) 

▼3dsMAX2016

世界一わかりやすい3ds Max 操作と3DCG制作の教科書 (世界一わかりやすい教科書)


まず第一に、ファイルのやり取りをする場合、そもそも、どういうデータなのかというの知っておく必要があります。今回はblenderのスザンヌさんのデータを使用しました。


基点となる数値というのは、モデルの位置が原点にあり、回転されておらず、拡大縮小もされていない状態です。つまり何の変形もされてない状態です。

もし変形してしまったモデルであれば、トラブルの元になるので、書き出す前に、オブジェクト>適用>位置 回転 拡大縮小を適用しておきましょう。これをすると、見た目は変わらず、基点となる数値が初期値に置き換わります。意図的に変形をしてない場合は適用機能をつかって、見た目のまま数値だけをリセットする必要があるのです!もし意図的に変形をしている場合は、オブジェクト>クリア>位置 回転 拡大縮小で数値ではなく見た目の変形をクリアしておきましょう。

さて、それではいよいよblenderからFBXファイルを書き出します。

今回検証のためにblender2.78aのディフォルト状態で書き出し、MAYAと3dsMAXで読み込んでみてどんな状態になるか確認していきます。


上記のようにスザンヌさんのデータをディフォルトでFBXに書き出しました。

それではさっそくMAYAで読み込んでみましょう。読み込みの設定もとくにせず、FBXを読み込んでみました。

チャンネルボックスの値を確認すると、少しおかしな事になっています。

回転Xに-90 スケールXYZが100になっています。

MAYAの場合、基点となる値は、移動X0Y0Z0 回転X0Y0Z0 スケールX1Y1Z1です。

MAYAでこの基点を戻すには、修正>トランスフォームのフリーズを行います。

次はスザンヌさんのサイズを確認してみましょう。

約2.734メートルで、元のブレンダーと同じ数字です。MAYAでは100=1メートルとなります。つまりディフォルトはセンチメートル表示ですね。メートルにそろえたいときは、プリファレンスの設定から可能です。

結論としては、blenderから標準で書き出したFBXはMAYA側でトランスフォームのフリーズを行えば問題なく使用できるという事になります。

さて、次は、3dsMAXで読み込んでみましょう!

3dsMAXでは、基点となる値はキー入力変換というもので見ることができます。位置と回転は0になっていますので、スケールを確認してみましょう!

なんとスケールには、なぞの数値3937.008というものが入っていました。これを基点の数値に戻さないと後々まずいことになります。


階層>基点>リセット>スケールを押すと絶対値のローカルが100になります。

blenderやMAYAでは基点のスケールは1でしたが、3dsMAXでは100が基点のようです。

つぎにサイズに異常がないか確認してみましょう。

ユーティリティ>計測>次元でスザンヌさんの寸法をみることができます。

あれ?なんかおかしな数字ですね。


カスタマイズ>単位設定でメートルに切り替えてみましょう!

どうやら表示がおかしいだけで、2.7347メートルを維持していたようです。

2016/12/21追記

3dsMAXにはシステム単位というものがあります。こちらが読み込みの時にかなり大きく影響するようです。上記説明ではディスプレイ単位だけを変更しているので、ディフォルトではシステム単位がインチになっています。そのため、システム単位を変更しているマシンとやり取りするとみかけの大きさが同じになりません。


システム単位を両方ともメートルに設定して読み込むと、スケールが変わることがないようです。ただし、インチからメートルにシステムを変更すると、見た目はすごく小さくなります。


センチメートルにして読み込むとだいたい良い感じのサイズになりました。しかし、スケールはなぜか10000という数値が入っていました。

MAXの場合は、クライアントとシステム単位を決めてから作業するのが良いかもしれませんね。


【まとめ】
blenderからMAYAと3dsMAXにFBX(ディフォルト出力)でモデルデータを持って行くと、基点となる値におかしな値が入りますが、メートル法としての値は正常にインポートされるようです。もらったデータを加工する場合は、MAYAならトランスフォームのフリーズ、3dsMAXなら基点のリセットを行う必要があるようです。


もし共通で、モデルのサイズを決める場合は、単位を統一するのが良いかと思います。

[アマゾンはこちら]