2017-01-19 18 views
-1

FBX 형식으로 저장된 3D 캐릭터 모델이 있습니다. 각 모델 또는 관절의 이름 목록을 알고 캐릭터의 해당 부분이 나와 관련이 있는지 여부를 결정할 수 있습니다. Maya 소프트웨어를 사용하지 않습니다. 나는 제 3 자의 3D 모델을 가지고 있으며 unity3D에서 애니메이션을 위해 그 모델을 사용할 것입니다.하지만 unity3d에서 모델을 가져 오기 전에 머리카락, 머리 등 모델 레이블을 알고 싶습니다. 그래서 라벨을 얻는 방법이 있습니다. 프로그래밍 방식으로 FBX 파일에서? 감사합니다 FBX 형식에 대한fbx 파일에서 모든 노드 또는 폴리곤의 이름을 얻으려면 어떻게해야합니까?

+0

이 과정에서 Maya를 사용하고 계십니까? 그렇다면 Maya의 MEL/Python Script를 향한 우리의 시간을 안내하여 여러분을 도울 수 있습니다. 제 솔루션은 모델, 관절 등의 이름으로 Maya에서 목록을 내보내는 것입니다. – SirJames

+0

자바 코딩의 도움을 받아 보았습니다. 먼저 메모장에서 파일을 엽니 다. ++ 그런 다음 모든 공동 이름 뒤에 "ModelS"라는 단어가 있지만 ModelS와 공동 이름 사이에 두 개의 null 단어가있는 패턴을 발견했습니다. 그런 다음 ModelS 단어가있는 행을 인쇄하려고했습니다. 하지만 내가 뭘 해야할지 모르겠다. –

답변

0

"FBX는"FBX는 독점 파일 형식 임에도 불구하고 3D 소프트웨어들에 의해 이용 될 수있는 오토 데스크에 의해 생성 된 컴파일 된 형식이다. 컴파일 되었기 때문에 "NULL"형식의 넓은 범위의 기호로 끝나게됩니다. I.E. -이 때문에

€«±µÈ7L—C«‚›ìŸn»yàn´ZÌ'>ï¯Óp>¸z±ú‘uá#OFªƒû·Pð>U>j}jp[7) 

, 그것은 DAE/콜라다 형식으로 수출 또는 OBJ 형식은 뼈 구조를 사용하고 있지 않을 경우 중 하나에 더 좋다. 콜라다/DAE_FBX/DAE 형식에 대한

이 형식은 오픈 소스이며, 일반적으로 과거에 비디오 게임에 사용되었다. 파일은 XML 기반 파일이며 Java/JavaScript에서 조작하기 쉽습니다. 이 때문에이 파일은 여러분이 좋아하는 메모장 프로그램/app ... 또는 심지어 좋아하는 프로그래밍 언어로 파일을 열 수있는 완전한 지원을 제공합니다.

이 형식을 사용하면 지오메트리가 하위 "지오메트리"아래에 나열됩니다. 당신이 마야를 사용하고 FBX 파일을 내보내기 전에 코드의 비트를 삽입 할 수있는 경우

가 ... 수출하기 전에이 작업을 실행 해보십시오

잠재적 인 솔루션 (마야 파이썬) (파이썬) :

import maya.cmds as cmds 

# Create the location and fileName 
yourDesktopVar = "C:\\Users\\[Your user]\\Desktop\\" 
saveFileName = "Joints_Models_Groups.txt" 
documentToSave = open((yourDesktopVar + saveFileName), "w") 

# Setup arrays full of relative information 

jointNames  = [jn for jn in cmds.ls(type = "joint")] 
meshNames  = [cmds.listRelatives(mn, parent=1)[0] for mn in cmds.ls(type = "mesh")] 

# ================================ 
# Writing Joints 
# ================================ 

documentToSave.write("Joints\n\r") 
documentToSave.write("--------------") 

for eachJointName in jointNames: 
    documentToSave.write(eachJointName + "\n\r") 

# Create a blank space 
documentToSave.write("\n\r\n\r) 

# ================================ 
# Writing Meshes 
# ================================ 
documentToSave.write("Meshes\n\r") 
documentToSave.write("--------------") 

for eachMeshName in meshNames: 
    documentToSave.write(eachMeshName + "\n\r") 

분명히, 형식에 맞게 편집해야하지만, 시작하기에 충분한 정보를 제공하는 기본 텍스트 문서를 만들어야합니다.

+0

아니, 나는 unity3D를 사용하고 있으며, 캐릭터의 모델 조인트 목록을 원한다. –

+0

글쎄, "Maya"를 게시물의 태그로 추가 했으므로 여전히 사용하고 있다고 생각했습니다. 이 경우 유니 코드에서 특정 문자에 연결된 이름을 붙이게 될 스크립트를 작성해야합니다. – SirJames