2009-02-25 8 views
7

JOGL에서 게임을 작성 중이며 게임 내 캐릭터를 표현해야합니다. 나는 캐릭터 이동을 위해 스켈 레탈 애니메이션을 사용할 계획이며 캐릭터는 스키닝 될 것입니다. JOGL 용으로 좋은 모델 로더를 찾을 수없는 것 같아서 사양이나 다른 것을 기반으로 파일 유형을 직접로드 할 계획입니다. 블렌더를 3D 모델러로 사용할 계획이기 때문에 거기에 존재하는 어떤 타입이 가장 좋을 것입니다.수동으로로드 된 게임 내 캐릭터 모델에 권장되는 3D 모델 유형은 무엇입니까?

어떤 파일 형식을 사용 하시겠습니까? .혼합? .x, .3ds, .md2/3/5, ... ?? 내가 임의의 파일 형식을 deobfuscate 할 필요없이 로더를 작성할 수 있도록 명확한 정의 된 형식의 것을 원한다는 것을 기억하십시오. 그리고 앞서 언급 한 기능을 지원해야합니다. 왜 당신이 그것을 선택한 이유와 그것이 최고의 이유에 관해서 당신이 줄 수있는 다른 정보는 매우 도울 것입니다!

감사합니다.

편집 : 블렌더 MS3D 수출 업체를 작성합니다. 끝나면 here이라고 게시합니다.

한편, 아래에 표시된 답변을 참조하십시오. 그 이후로 더 많은 것은 계속되었습니다. 나는이 일을 내가하는 일로 업데이트하지 않을 것이지만 기본적으로 jMonkey Engine을 발견했으며 이미 ms3d importer와 내가 손으로 쓰기 시작한 다른 서브 시스템을 가지고있다. 장면 그래프 (Java3D를 피하는 이유입니다)에도 불구하고, 힘을 합치는 것이 최선의 방법 일 것이라고 생각합니다.

답변

2

우선, 다른 두 명의 답변자에게 감사드립니다.또한 basszero 당신은 블렌드 파일에 대해 옳았습니다. Wikipedia를 먼저 확인 했어야합니다! 블렌더의 메모리에 거의 쓸모없는 이진 덤프입니다.

이 질문을 작성한 직후에 나는 OBJ 로더를 작성하기로 결정했다. 왜냐하면 1) 3D 파일 형식을로드하는 경험을 제공 할 것이고, 2) 일반적으로 사용되는 형식이 좋지만 쉽게로드 할 수 있습니다. 그것은 큰 결정이었습니다. 왜냐하면 그것은 제가 실제로 물질과 그룹의 차이를 알지 못했기 때문에 깨닫게했기 때문에 물질에 대해서도 많이 알지 못했습니다. 이 3D 구조에 대한 코드를 작성하는 데 도움이되었습니다.

두 답변 모두 XML 기반 형식을 권장합니다. 나는 XML 형식을 원하지 않는다. 나는 이것이 이것이 XML에 적합한 장소라고 생각하지 않는다. 필자는 XML이 유연하고 보편적이며 스키마를 쉽게 만들 수 있기 때문에 이러한 형식이 만들어 졌다고 생각합니다. 그러나 이것이 제가 원하는 것은 아닙니다. 나는로드가 빠른 (XML은 상대적으로 말하지 않는다) 형식을 원한다. 유연하거나 인간이 읽을 수있는 형식 일 필요는 없으며, XML 라이브러리에 의존하지 않고 가져 오기를 작성할 수있는 형식이 필요하다. basszero는 심지어 "XML이되는 비용으로 말했습니다."그는 완전히 옳았습니다. 그 부담을 감당할 수 없다고 느끼는 비용입니다.

내 OBJ 로더가 완료되었습니다. 나는 그것을 실제 모델 클래스와 분리하고 MeshFactory 인터페이스로 구현하여 미래에 원하는 경우 다른 로더를 작성할 수 있습니다 ... 어느 것이 계획입니다. 나는 지난 며칠 동안 더 많은 연구를 해왔고 ms3d 포맷을 결정했다.

ms3d 형식은 골격 리깅 (조인트)과 키 프레임 골격 애니메이션을 지원하며 텍스처 맵과 알파 맵을 지원합니다. 또한 사람이 읽을 수있는 태그 및 레이블 등을 사용하여 공간을 낭비하지 않고 (XML 및 OBJ처럼) 쉽게 컴퓨터로 읽을 수있는 이진 형식입니다.

블렌더는 불행히도 (작업 중) ms3d 내보내기 스크립트가 없으므로 직접 스크립트를 작성하겠습니다. 운 좋게도 어려운 과정이 아니며 블렌더의 문서를 읽고 다른 수출 업체를 예제로 사용할 수 있습니다. 내 파이썬을 다듬어야 할 것이다. 그러나 그렇지 않다면 다른 스크립트를 본 것에서부터 매우 직설적으로 보인다. 사물의

자바 측면 ms3d 더 구조이기 때문에 사실 그것은 OBJ 형식보다 더 쉬울 것이다, 쉽게해야합니다. 나는 C 타입 (천재!)의 ms3d 포맷 온라인에 대해 specifications을 찾았습니다. 그래서 그들은 대단히 자명하며 형식에 대해 더 이상의 질문이 없습니다. 나는 나중에 내 자신의 변형을 구현할 수도 있지만,이 스펙의 구현을 기반으로 삼을 것이다. 내 자신의 수입업자와 수출업자를 쓰는 것이 가장 좋습니다. 내가보기에 형식을 수정할 수 있습니다.

이 모든 것이 최선의 해결책이라고 판단했습니다.

내 OBJ 로더에서 보았 듯이 basszero, 당신은 절대적으로 옳습니다 : "일단 모든 정보를 가져 오면 (표시 목록, 텍스처, 정점 배열, 정점 버퍼 등) 렌더링은 완전히 다른 짐승이다. "

Cruachan : 나를위한 Java3D가 없으며 JOGL을 고수하고 있습니다. 모델을 어떻게로드했는지는 기억이 나지 않지만 실제로는이 책을 소유하고 있습니다. (실제로는 접근 할 수 없지만) 자동으로 수행하는 Java3D 형식 로더를 사용했는지는 확실합니다. 내가 사용할 계획이 아니야 ... 미안해!

-Ricket

3

그냥 지오메트리로 살 수 있거나 자신 만의 질감을 처리 할 준비가되어 있다면 .obj는 아마도 가장 간단하고 널리 지원되는 3D 파일 형식 일 것입니다. 그것은 기본적으로 3D 모델링의 ascii입니다.

그렇지 않으면 vrml을 선호합니다. 잘 정의되어 있고 시작하기에 최소한 코드가 있습니다. 자유롭게 사용할 수있는 코드를 사용하여 vrml 모델을 java3D에 성공적으로로드했습니다. 기본 파일 크기는 커지는 경향이 있지만 압축 형식을 사용하여 해결할 수 있습니다.

.3ds는 권장하지 않습니다. 필자가이 형식에 대한 독자를 처리 한 유일한시기는 Delphi Pascal에서 였고, 처리가 어렵고 엉성하고 정의하기 어렵고 많은 '유사 콘텐츠'가있는 경향이있어서 내 독자가 내 보낸 모델을 3D-MAX 자체는 3DS 형식으로 주장되었지만 제대로 구성되지 않은 다른 패키지의 많은 모델을 거부해도 괜찮습니다.

추가 : 또한 Java3D API와 O'Reilly 서적 Killer Game Programming in Java을 살펴볼 것을 권합니다. Java3D 경로를 따라 가지 않아도 많은 질문에 답할 가능성이 높습니다.

+0

내가 .OBJ에 대해서는, 매우 비효율적 인 것 같습니다 그래서 확실하지 않다. 나는 인간이 읽을 수있는 형식이 필요하지 않습니다. 나는 vrml을 크게 만드는 것에 대해 조사 할 것이고 어쩌면 내 자신의 꼬인 버전을 만들 것입니다. 감사합니다! 다른 사람? :) – Ricket

+0

Obj는 비효율적이지만 매우 표준 적입니다. Java3D와 특히 많은 질문에 답할 수있는 O'Reilly의 'Killer Game Programming in Java'를 살펴 보는 것도 좋을 것입니다. – Cruachan

1

블렌더는 대부분 블렌더의 메모리 구조에 대한 바이너리 덤프라고 생각합니다. 믹서기 밖에서는 도움이되지 않습니다. 블렌더를 사용하여 모델을 만들지 만 다른 형식으로 내보내십시오.

약간 자세한 정보가있을 수 있지만 Collada가 3D 정보를 아주 멋지게 포착했다고 들었습니다. 위쪽은 JAXB를 통과 할 수있는 적절한 스키마 정의가있을 가능성이 높기 때문에 전체 구문 분석기를 사용할 수 있습니다.

.md * 형식도 좋은 대안이 될 수 있습니다. 그것들은 iD 엔진 (q1, q2, q3, q4, doom3)에 있으며 문서화되어 있습니다. 또한 애니메이션 시퀀스가 ​​포함되어 있습니다.

일단 모든 정보를 가져 오면 데이터 구성 (표시 목록, 텍스처, 정점 배열, 정점 버퍼 등)과 렌더링은 완전히 다른 짐승입니다.

0

와우, 사람, 당신은 당신이 그것을 완료 할 때 ms3d 수출을 출시 할 건가요? 그렇다면 어떻게 될까요? 애니메이션 작업을하고 Fragmotion이 사용하는 수출 업체에 실제로 손을 얹을 필요가 있습니다. 내 작업이 내 마지막 희망 인 것처럼 보입니다.

+0

나는 블렌더 수출업자를 아직 코딩하지 않았다. 내 연구 결과 지난주에 매우 바빴습니다. 어때? http://rickyc.org/ms3dexporter/에 주목해라. 끝내면 거기에 넣을 것이다. – Ricket

+0

계획이 좋습니다. 나는 그것을 계속 지켜 볼 것이다. –

+0

나는 마침내 MS3D 수출업자를 쓰기 시작했습니다. 앞으로 며칠 이내에이 작업을 완료해야합니다. 나는 그것을 지금까지 되돌려 놓았다는 것을 안다. (이제 3 개월 후가되었지만 ...) 그러나 여전히 당신이 그것을 필요로한다면, 나는 그것을 발표 할 것이다. 나는 또한 당신이이 메시지를받지 못할 수도 있다는 것을 알고 있기 때문에 그것과 다운로드에 대한 정보로 그 링크를 업데이트 할 것이다. – Ricket

0

오픈 소스가 있습니다.메쉬, 텍스처, 스켈레톤 및 애니메이션을 포함한 .blend 파일에서 정보를 추출 할 수있는 혼합 파일 판독기.

여기 오우거와으로 Irrlicht를 사용하여 몇 가지 예를 참조하십시오 http://gamekit.googlecode.com