2017-09-05 7 views
0

flt 형식의 여러 가지 큰 오브젝트 파일이 있습니다. 이 객체는 rgb 및 rgba 파일에 모든 텍스처를 가지고 있습니다. flt에서 fbx로 변환하기 위해 3DS Max를 사용했지만 모든 텍스처는 여전히 rgb/rgba 형식입니다. 유니티는 이러한 이미지 파일을 받아들이지 않습니다. 그들 중 한 명을 위해, 나는 이미지 magik을 사용하고 Unity에서 올바른 재료에 각각의 텍스처를 추가하여 모든 이미지를 변환했다. 이것은 고통이었고 시간이 많이 걸렸습니다. 뿐만 아니라 하나의 Unity 프로젝트에만 적용되었으므로 다른 프로젝트 나 소프트웨어로 가져오고 싶다면 다시해야 할 것입니다. 그 한 모델에는 수백 개의 텍스처가 있었고 다른 모델에도 텍스처가있었습니다.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 파일을 찾은 다음 그것들을 바꿔 넣으십시오. 그러면 유니티쪽에 손을 넣을 필요가 없습니다. 이것이 당신이 자주하는 일이 될 것이라면 그것은 가치있는 일입니다.

Maya에서 fbx 파일을 빈 마야 장면으로 가져 와서 파일 텍스처 노드를 찾고 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로 장면을 다시 수출 : 그것은 것 같이 보입니다.

소스 파일의 구조에 따라 많은 변수가 있지만, 어떻게 해결할 수 있는지에 대한 일반적인 아이디어입니다.