FBX読み込み、書き出し

FBX読み込み、書き出し

Ok_kei
Collaborator Collaborator
2,060件の閲覧回数
6件の返信
メッセージ1/7

FBX読み込み、書き出し

Ok_kei
Collaborator
Collaborator

FBXを読み込む際にファイル単位がセンチメートルになっていました。

メートルで読み込むことは可能でしょうか?また、書き出しの際にメートルにして書き出すということも可能でしょうか?

 

書き出しの際に、任意の位置をx=0、Y=0、Z=,0として書き出すことは可能でしょうか?

書き出しの形式はFBX,もしくはdetasmithを考えています

0 件のいいね
2,061件の閲覧回数
6件の返信
返信 (6)
メッセージ2/7

nagaimo
Advisor
Advisor

Max自体のシステム単位の設定(”カスタマイズ”>”単位設定”>”システム単位”)が
メートルになっているのであれば、センチメートルのFBXを入力時
オプションが”拡張オプション”>”単位”の所の”自動”のチェックが入っていれば
Maxのシステム単位に合わせてスケールされて読み込まれる筈です。

また、FBXの出力時のオプションに”拡張オプション”>”単位”の所に出力する
FBXのファイルの単位を指定するところがあるので、”自動”のチェックを外して
”メートル”を指定してやればメートルで出力されるはずです。

ただ、見た目上単位がメートルでありさえすればよいのであれば、
現在のMaxのシステム単位が何になっているかわかりませんが、
ディスプレイ単位(”カスタマイズ”>”単位設定”)がメートルであれば
cmのFBXを自動変換で取り込んでも作業上は見た目メートルで作業できます。
ただ、cmのFBXであれば、Maxのシステム単位もcmにして取り込んで
ディスプレイ単位のみをメートルにして作業するのが一番トラブルは少ない気はします。

任意の地点を0にというのは、ちょっと分からないですね。
とりあえず適当なポイントヘルパーを、その地点において
全てのオブジェクトをその子供にして出力して、取り込み側で
そのヘルパーを原点に移動して削除とかそういった運用上で
工夫してみるとか

0 件のいいね
メッセージ3/7

Ok_kei
Collaborator
Collaborator

回答有難うございます。

 

見た目上でなく、実際にオブジェクトをm単位にして読みこみたい、書き出したいです。

システム単位とディスプレイ単位は共にメートルにしています。

書き出したものをアンリアルエンジンに読みこみましたが、なぜかかなり小さい感じになっています。

書き出しがうまくできていないのかと思っています。

 

任意の位置を0,0,0にすることは難しいのですね。

AutocadのUCSてきなものでもあればと思ったのですが。

0 件のいいね
メッセージ4/7

nagaimo
Advisor
Advisor

Unrealは内部単位はcmだったと思いますので
Maxのシステム単位もcmに合わせて置いたほうがトラブルは少ないと思います。
ただUnrealへのインポート時にConvert Scene Unitのチェックが入っていれば
Maxのシステム単位をmの状態でFBXにエクスポートしていればデフォルトの状態でしたら
自動でcm単位にスケールしてくれたと思います。

 

0 件のいいね
メッセージ5/7

Ok_kei
Collaborator
Collaborator

回答有難うございます。

cmにしておいた方がいいと思うことでしょうか?

すみません、データスミスの場合は、FBXの段階でcmにするということでしょうか?

FBXですが、Navisworksからの書き出しになり、書き出しの際に単位をcmとm両方でやってみましたが両方同じでした。

3dsmaxで読みこみ、cmにして書き出しすれば良いのでしょうか?

 

今、データスミスでなく普通にFBX読みこみもやってみましたが、ナビスワークスから書き出したm単位とcm単位のFBXをUE4にインポートしましたが、大きさがかなり小さいでした。

しがも、cmとmはインポートすると同じ大きさでした。

UE4で読みこみの際に100倍してやるとそそれなりの大きさになっているようでした。

それなりというのは、UE4側で計測できないので、あくまでもサードパーソンのグレイマンが普通に170~180センチの大きさとしての見た目での判断です。

 

もう一度整理させていただきますが、

データスミス、普通にFBX読みこみの両方をUE4で行いたいために、ナビスワークスから書き出したFBxをどう3dsmaxで書き出しすれば良いのか?または、3dsmaxでの書き出しは必要なくナビスワークスからの書き出しを何倍かして読みこみで良いのか?

誠に申し訳ありませんが、ご教授いただけますでしょうか?

 

0 件のいいね
メッセージ6/7

nagaimo
Advisor
Advisor

>cmにしておいた方がいいと思うことでしょうか?

経験則としてですが、ユニット単位は揃えておいたほうが、不要なトラブルは避けられる場合が多いです
ちょっとNavisWorks自体は全く知らないので、どのようなデータ設定でFBXが出力されるのかわかりませんが
Max上に一度取り込まれて、適切なシステム単位が設定されていて、Max上で正しいスケールで表示されていれば
Unrealに取り込むうえで、デフォルト設定でスケール的な問題は解決しそうですが

ちょっとUnreal自体以前数回使ったきりなので、DataSmith自体は名前しか知りませんが
たしかかなり簡便にUnrealEngineに持ち込むためのプラグインの筈ですので
Max上で正しい状態になっていれば、FBXで取り込むよりそれほど問題は起こらなそうな気はします

可能性としては、他ソフト間でやり取りしたデータですと、
どうしても汚いデータになっていてトラブルを起こすことがあります。
オブジェクトにマイナススケールが入っていたり、不均等スケールが入っていたり
法線が裏返っていたり名称に2バイトコードが入っていたりとか
ですので通常ゲームなどでデータをエクスポートする際は一度Max上でデータをきれいにしてやります。

例えばスケールに関する所であれば、オブジェクトを選択して
ツールタブの"Xフォームをリセット"を押すとマイナススケールや不均等スケールや、
Pivot位置がおかしい状態などはリセットされます
あと、親のオブジェクトやグループなどにマイナススケールや不均等スケールが
入っている場合もあるので、必要のない階層は整理して、余分なスケールや回転の入っていない
必要最小限の階層に組みなおしたりします。

>しがも、cmとmはインポートすると同じ大きさでした
1mの物がcmで出力してもmで出力しても同じ大きさなのは正しいような気がしますが、
1cmの物をcmで出力と1mの物をmで出力した比較ということでしょうか?
いつからかのバージョンからUnrealはFBXインポート時にConvert Scene Unitのチェックを入れれば
FBX内のユニット設定を見てスケールを調整してくれるようになった筈ですが
そのチェックを入れてもということでしょうか?

>3dsmaxでの書き出しは必要なくナビスワークスからの書き出しを何倍かして読みこみで良いのか?

今回NavisWorksからUnrealに持ち込むのが一番のメイン目的で、Max上で特に必要な作業がないのであれば
出来ることならNavisWorks→Unreal直に持ち込むほうが話は早いような気はしますが
それだと、NavisWorksのフォーラムで聞いたほうが詳しい人がいるかもしれません

メッセージ7/7

Ok_kei
Collaborator
Collaborator

度々の回答有難うございます。

 

単位を合わすことでトラブルから回避ができる場合が多いのですね。

3dsmaxは今回はじめて触っていますので、初歩的な意味のわからない質問になってしまっておりすみません。

 

オブジェクトにマイナススケールが入っていたり、不均等スケールが入っていたり
法線が裏返っていたり名称に2バイトコードが入っていたりとか

 

このようなことがあるのですね。今までAutocadなどで作業する場合考えたことがありませんでした。

そういうせいなのでしょうか、アンリアルにインポートした際に、Autocadでは画面上方向(プラス方向)に向いていたオブジェクトが、アンリアルでは数学座標でいうX軸に対して反転して画面下方向(autocadでマイナス方向)にむいていたのでなぜなのかと疑問に思っていました。

 

 

1mの物がcmで出力してもmで出力しても同じ大きさなのは正しいような気がしますが、
1cmの物をcmで出力と1mの物をmで出力した比較ということでしょうか?
いつからかのバージョンからUnrealはFBXインポート時にConvert Scene Unitのチェックを入れれば
FBX内のユニット設定を見てスケールを調整してくれるようになった筈ですが
そのチェックを入れてもということでしょうか?

 

ここですが、1mの物がcmで出力してもmで出力しても同じ大きさなのは正しいような気がしますがとありますが、

1mのものをcmで出力すると100cmとなるとばかり思っていましたが違うのですね。

1cmの物をcmで出力と1mの物をmで出力した比較というか、Navis側でFBXに出力する際にcmのデータとmのデータの2種類を書き出して、3dsmaxにそれぞれ読み込んで、3dsmaxからFBX出力したものをアンリアルで読み込んだということです。

まだ不慣れなせいか、3dsmaxからのFBX出力の際の設定をきちんとできていない状態でFBXに出力していたからかもしれません。

何度も確認して誠にに申し訳ありませんが、

3dsmaxでFBXを読み込む際にダイアログで単位がcmであった場合、そのまま読み込んで3dsmaxから出力する際にcmそのままで書き出す

3dsmaxでFBXを読み込む際にダイアログで単位がmであった場合、そのまま読み込んで、3dsmaxから出力する際に単位をcmで出力ということで大丈夫でしょうか?

3dsmaxで単位の変換して書き出すということですが、mをcmにするというのは,、単純に1mから100cmにしてくれるということですか?それとも違いますか?

また、UnrealはFBXインポート時にConvert Scene Unitのチェックを入れれば
FBX内のユニット設定を見てスケールを調整してくれるようになったとありましたが、すみません、ここは見ていませんでした。確認してみたいと思います。

 

 

今回NavisWorksからUnrealに持ち込むのが一番のメイン目的で、Max上で特に必要な作業がないのであれば
出来ることならNavisWorks→Unreal直に持ち込むほうが話は早いような気はしますが
それだと、NavisWorksのフォーラムで聞いたほうが詳しい人がいるかもしれません

 

3dsmaxを使う理由としては、単位の確認、マテリアルをつけたい、データスミスを使ってみたいとの思いから3dsmaxにインポートしようとしています。

Navisuworksでもマテリアルはつけられるようですが・・・

 

何度も詳しく説明いただいているのに、理解ができておらずすみません。

宜しくお願いいたします。

 

 

 

 

0 件のいいね