2017-09-05 8 views
0

flt形式のいくつかの非常に大きなオブジェクトファイルがあります。これらのオブジェクトは、rgbファイルとrgbaファイルにすべてテクスチャを持っています。私はfltからfbxに変換するのに3DS Maxを使いましたが、すべてのテクスチャはまだrgb/rgba形式です。 Unityはこれらのイメージファイルを受け入れていないようです。そのうちの1つについては、画像magikを使ってすべての画像を変換し、Unityで正しいテクスチャに対応するテクスチャをそれぞれ追加しました。これは苦痛で非常に時間がかかりました。それだけでなく、1つのUnityプロジェクトにしか適用されなかったので、他のプロジェクトやソフトウェアに取り込もうとしたら、もう一度やり直す必要があります。その1つのモデルには数百のテクスチャがあり、他にもテクスチャがあります。rgb/rgbaテクスチャを持つfltオブジェクトからjpg/pngテクスチャを使用してfbxに転送するための素早く効率的な方法

RGB/RGBAテクスチャファイルを含むFLTオブジェクトを、JPG/PNGテクスチャファイルを持つFBXオブジェクトに簡単に変換する方法はありますか?私は簡単にすべてのrgbファイルをjpgに、rgbaファイルをpngに変換することができます(問題があれば)。私は使用できる3DS MaxとMayaを持っています。

答えて

0

これを行うには簡単な方法はありません。最近、FLTもRGBも一般的なファイル形式ではありません。

おそらく、最も良いコード解決策は、すべての画像を一括して(拡張子を変更して)変換してからUnityでAssetPostprocesorと書いて、アセットによって参照されるマテリアルに対応する新しい.tgaまたは.jpgファイルを見つけ出すことです。それらを入れ替えてください。これで、Unityの最後の手作業が節約されます。これが何かになる場合は、しばしばそれは価値があります。

Mayaでは、fbxファイルを空のMayaシーンにインポートし、ファイルテクスチャノードを探し、rgb/rgba拡張子をtgaやjpgなどで置き換えることができます。

def update_fbx(filname, source = 'rgb', target = 'tga'): 
    cmds.file(f=True, new=True) # clear the scene 
    cmds.FBXImport(f=filename) # import the fbx 

    #assuming you have materials with file nodes pointing at 
    # rgb extensions, replace with tga 
    for each_file_node in cmds.ls(type = 'file'): 
     oldname = cmds.getAttr(each_file_node + ".ftn") 
     newname = oldname.replace(source, target) 
     cmds.setAttr(each_file_node + ".ftn", newname) 

新しいFBXとしてシーンを再エクスポートすると、正しいファイル参照が得られます。

ソースファイルの構造に応じて多くの変数がありますが、これはどのように対処できるかという一般的な考え方です。

関連する問題