見出し画像

UE4へのデータのインポート

いくつか実験してみて違いが分かってきたので勉強のメモとして載せます。
注意として、この記事は普段RhinoはいじるけどMaxはほぼいじったことがないという人が色々試している内容です。
間違いがありましたら是非コメントいただければ!!

結果

先に試した内容と結果のみご報告。
試した内容
3dsMax2020 To UE4
・.udatasmith
・.fbx
Rhino6 to UE4
・.3dm(datasmith)
・.fbx
・.obj
Rhino to Max to UE4
・.igs
・.stp

結果
完ぺきな成功
・3dsMaxのdatasmith
ピボットの位置がおかしいけどそれ以外は成功
・3dsMaxのfbx
・RhinoのDatasmith
・Rhinoの.fbx
・Rhinoの.igesからMaxの.udatasmith
・Rhinoの.objからMaxの.udatasmith
向きがおかしい&アクタ統合
・Rhinoの.obj

datasmithを使用してインポート

3dsMaxからは公式からdatasmithがあるので比較的に楽に行えました。
一応Rhinoも3dmが対応しています。

画像1

複数選択でインポートできたので二つ同時に行いました。

画像2

一見するとよさそう...?(左がmax 右がRhino)
アウトライナ上だと少しだけ違いが。
Rhinoはレイヤがデフォルトとしてアクタになっています。Maxは規定値というレイヤに属しているはずですがそれはありません。
Rhinoだとレイヤにマテリアルが設定してあるため出ているのかも。ただ、UE上でも小さな球として出ているので邪魔でした。
消してみてもマテリアル設定はなくなっていなかったので消去しました。

一つ一つ触れるのでマテリアルの再設定も簡単そうだな~とみていると大きな違いがあることに気づきます。

画像4

画像4

少しわかりにくいかもしれませんが、ピボットの位置がRhinoデータでは複数のオブジェすべての基点が同じ場所であったのに対し、Maxは一つ一つで設定されていました。

多分Rhinoデータの方がやりにくいのではないかな。

Rhinoの基点問題

次の検証として、rhinoデータの基点はどこなのか。
先ほどのデータは選択範囲を基点を指定してエクスポートで3dmで保存していました。ですが、3dmデータなのでいつも通り保存しても読み込むはず!
そうなってくると基点が(0,0,0)なのか念のため検証しなくては。
Maxのデータは一つ一つ設定されていたので検証はしません!

画像5

元データはこのようにして3dmで書き出してみます。

画像6

あぁ~。
こうなると、ピボットはオブジェクトに付随しているわけではなく原点にいるというだけのようですね。
Rhinoで書き出すときは選択オブジェクトでエクスポートにした方がよさそう。

fbx書き出しやobj書き出し

なんとなく違いが分かってきたところで、一般的であろうfbxとかobjで書き出して読み込んでみることにしました。

画像7

RhinoでもMaxでもfbxの読み込みだとこのようなオプションが出てきました。

Fbxは椅子をインポートした場合、座面と足部分と腰当と...といった感じで一つ一つコンテンツブラウザに出してくれます。それを複数選択して一気に放り込めば勝手に合体して椅子になるので一個一個になるのはデメリットではない!
(最初見たときはマジ?くみ上げるの?と思いましたがさすが優秀です)

一応このオプションの中央部分Combine Meshesのところでチェックするとそれを一つにまとめてくれます。
しかし、テクスチャの割り当てを考えると一つ一つ出してくれる方が便利かな。

画像8

それでインポートしたRhinoのfbx(左)とdatasmithでもってきた元3dmのrhinoデータ(右)。
テクスチャ設定とかいじっていないんだけど色味が違う...
Rhinoのデフォルトを考えればRhinoの3dmの方が正しいかな。もしかしたらfbxでやるとテクスチャの色味変わってしまうかも。

画像9

maxもfbxを試してみる。
ピボットさんの位置がすべて同じ原点と同じになってしまった...
fbxにすることに関して言えばRhinoもMaxもそんなに変わらなそう。

次にobjファイル

画像10

デフォルトの向きがおかしくなってる...
Mayaだとピボットの向きが違うとか聞いたことあるしそういう仕様なのかな。インポートする際にFbxのスムージングなんたらとかいうエラーが出ていましたが、Rhinoの書き出しオプションの中にそんな設定なかったんだよな。

あとobjファイルは一つ一つの要素に分解してくれず、椅子という要素として取り込まれるようです。なので後からマテリアルの変更が効かない点は相対的に厳しそうかな。

Rhino to Max to UE4

これは割と無謀。そもそもRhinoとMaxの面のデータ作り方違う...
でも、RhinoからMaxのdatasmith使いたい!と思ってしまったのです。

まず、RhinoからMaxにもっていくときの設定ですが、エクスポートの設定をデフォルトでいくとfbxやobjはうまくいきませんでした。

椅子の足をつないでいる円柱部分がきれいにメッシュになりませんでした。
四角柱になってしまったのです。(Rhino側で先にメッシュコマンドしてfbx書き出し試すの忘れましたが多分結果が同じなので先に進みます)

この書き出し問題はいろいろ議論されているようでMaxのフォーラムにもいくつか質問が投稿されていました。
その中で「RhinoからMaxは特段理由がなければやるメリットないよ!」くらいのことが書かれていましたが、割とうまくいくエクスポート方法として.stpと.igsがおすすめされていました。なのでそれで検証!

RhinoからMaxはfbxのときよりもきれいにメッシュが生成されていたので、そのまま.udatasmithに書き出しました。

結果はfbxたちと同様です。
一つの部材ずつ出力されるけど、基点がみんな同じ。

結論

最初の結果どおりRhinoとMaxを比較するならばMaxのdatasmithが一番いい。でも私はrhinoの方が慣れているからそちらを使うかもしれない...
グループ化してピボットの位置を変更すれば何とか対処できると信じてる!

スキをいただけるだけでも励みになります!