2017-09-05 4 views
0

Ich habe mehrere wirklich große Objektdateien im flt Format. Diese Objekte haben alle ihre Texturen in rgb- und rgba-Dateien. Ich habe 3DS Max benutzt, um von flt in fbx zu konvertieren, aber alle Texturen sind immer noch im rgb/rgba Format. Unity scheint diese Bilddateien nicht zu akzeptieren. Für eines von ihnen habe ich alle Bilder konvertiert, indem ich image magik benutzt habe und dann in Unity jede entsprechende Textur dem richtigen Material hinzugefügt habe. Das war ein Schmerz und sehr zeitaufwendig. Nicht nur, dass es nur für das One Unity-Projekt galt. Wenn ich es in ein anderes Projekt oder eine andere Software einfügen wollte, musste ich es erneut tun. Dieses eine Modell hatte mehrere hundert Texturen und so auch die anderen, die ich habe.Schnelle und effiziente Übertragung von einem flt Objekt mit rgb/rgba Texturen zu fbx mit jpg/png Texturen

Gibt es eine Möglichkeit, ein FLT-Objekt mit RGB/RGBA-Texturdateien einfach in ein FBX-Objekt mit JPG/PNG-Texturdateien zu konvertieren? Ich kann alle rgb-Dateien leicht in jpg und die rgba-Dateien in png konvertieren (wenn das wichtig ist). Ich habe 3DS Max und Maya, die ich benutzen kann.

Antwort

0

Es gibt keine einfache Möglichkeit, dies zu tun - weder FLT noch RGB sind heutzutage gängige Dateiformate.

Wahrscheinlich ist die beste Codelösung, alle Bilder in Masse zu konvertieren (ihre Erweiterungen zu ändern) und dann eine AssetPostprocesor in Unity zu schreiben, die die neuen .tga oder .jpg Dateien findet, die den Materialien entsprechen tausche sie ein. Das wird die Handarbeit am Unity-Ende retten. Wenn das etwas ist, was du oft tust, ist es die Arbeit wert.

Sie könnten so etwas ziemlich ähnlich in Maya: Sie würden die FBX-Datei in eine leere Maya-Szene importieren, suchen Sie nach der Datei Textur Knoten, und ersetzen Sie die rgb/rgba Erweiterungen mit tga oder jpg oder was auch immer. Das wäre in etwa so aussieht:

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) 

dann erneut exportieren die Szene als neuen FBX, die die richtigen Dateireferenzen haben.

Es gibt viele Variablen, abhängig davon, wie die Quelldateien strukturiert sind, aber dies ist eine allgemeine Vorstellung davon, wie Sie damit umgehen können.