2013-08-07 2 views
2

저는 자바로 작성된 작은 3D 엔진을 만들고 있습니다. Java는 주로 이식성 (데스크탑 및 안드로이드) 및 사용 가능한 라이브러리에 사용됩니다. 블렌더는 레벨을 디자인하기위한 도구를 제공합니다.블렌더에서 자바 라이브러리 사용하기

맞춤 데이터를 내보내고로드하는 데 동일한 자바 라이브러리를 사용하고 싶습니다.

블렌더, 파이썬 및 자바를 어떻게 섞을 수 있습니까?

나는 BlenderJava과 자이 썬에 대해 생각했지만 이것은 매우 실험적이다.

감사

PS

: 사람이 이미 블렌더로 execnet을 사용 했습니까?

+0

어? Blender를 Java로 이식하는 것은 무엇입니까? – Devolus

+0

블렌더를 자바로 포팅하려는 것이 아니라 믹서기와 자바 라이브러리를 붙이고 싶습니다. –

+0

자바에 대해 원하는 형식으로 원하는 데이터를 내보내는 Python 스크립트를 작성해야한다고 생각합니다. 파이썬은 실제로 실제로 좋은 언어이며 픽업하기 쉽습니다. –

답변

1

블렌더 + 자바 :

글쎄, 당신은 .blend 파일을로드 그 안 좋은 접근 방법을 장면을 생성하고 말하는 건가. 레벨/문자/etc를 다른 것으로 내 보내려합니다. 나는 전에 openGL과 java로 작업 해왔다. collada (.dae 파일)로 내보내기하는 것이 좋습니다. Collada 파일은 XML 기반이며 (DOM 또는 SAX를 사용하여 구문 분석하기 쉽습니다) 어쨌든 gl에서 사용할 수없는 여분의 블렌더 데이터는 가지고 있지 않습니다. Collada 파일은 애니메이션 프레임, 뼈대 구조, 광원, 재질, 텍스처, 색상, 법선 및 정점을 지원합니다. 또한 XML 기반 파일이기 때문에 텍스트 편집기를 사용하여 파일을 열고 파일 형식을 쉽게 연구 할 수 있습니다. java에는 이미 라이브러리에 XML 파서가 있으므로이 파일 유형은 사용하기 쉽고 읽기 쉽습니다. 이 데이터는 거의 즉시 BufferObject 또는 즉시 렌더링 모드로 덤핑 될 수 있습니다.

Fbx는 블렌더의 모든 요소를 ​​지원하는 또 다른 파일 유형입니다. 이 유형의 문제점은 바이너리와 텍스트 형식을 모두 가지고 있다는 것입니다. 구조가 조금씩 다르므로 이진 파일 형식을 설명하는 리소스를 찾는 것이 어렵습니다. 또한 저작권이있는 파일 형식입니다.

Obj 파일을 읽고 사용하는 것이 가장 쉽습니다. 그러나 텍스처/재료 데이터를 별도의 외부 파일에 저장합니다. 또한 그들은 애니메이션을 지원하지 않습니다. 이 때문에 그들은 여러 가지 이유로 빈약 한 선택입니다. 그러나 정적 개체 (상자 또는 무해한 트리)가있는 경우이 파일 형식이 유용 할 수 있습니다.

앞서 언급했듯이 양측에서 쉽게 읽을 수있는 파일 유형없이 블렌더와 자바를 직접 혼합하기는 어렵습니다. 블렌드 파일은 java에서 쉽게 읽을 수 없습니다.

자바 + 파이썬 :

좀 더 까다 롭습니다. 나는 자이 썬이 시작하기에 좋은 곳이라고 생각한다. 적어도 엔진과 함께 사용되는 경우 Python은 스크립팅과 유사하게 사용할 수 있습니다. 구현 방법을 전적으로 선택해야합니다.

저는 개인적으로 미리 만들어진 java 명령으로 게임 콘솔을 만드는 것을 발견했습니다. 스크립트를 사용하기 위해 콘솔에 명령을 호출하는 간단한 텍스트 파일이 있습니다. 스크립트는 AI 이동 및 자원로드와 같은 것을 정의 할 수 있습니다.

저는 스크립트 엔진 (파이썬으로 작성했을 가능성이있는 것)을 게임 엔진에 통합해야하는 강력한 이유를 찾기 위해 고심하고 있습니다. 나는 이것이 내가 많이 연구했던 엔진 개발 분야가 아니라는 것을 인정할 것이다. 어떤 방법 으로든, 나는 마치 자바 클래스의 명령 (또는 메소드)을 호출 할 것이다. 아마도 누군가는 우리 모두를위한 게임 엔진에서 파이썬에 대한 더 강력한 용도를 분명히 할 수 있습니다.

마지막으로 파이썬보다 javaScript를 권하고 싶습니다.파이썬은 대중성 때문에 그리고 대부분의 엔진이 C++이나 C#으로 코딩되어 있기 때문에 사용됩니다. 자바와 달리이 언어에는 스크립팅 "동생"이 없습니다. 이것을 진정한 자바 엔진으로 만들려고한다면, JS를 사용하는 라이브러리가 이미 JDK와 함께 패키지화되어 있기 때문에 JS 언어를 스크립팅 언어로 사용하는 것이 훨씬 쉬울 것입니다.

희망이 있으면 도움이 될 것입니다.

+0

아니요 블렌드 파일을로드하고 싶지 않습니다.하지만 자바 라이브러리 (내 엔진의 일부)를 사용하여 내 보낸 파일입니다. 사실 XML과 관련된 Java 도구를 사용합니다. –

+0

Blender에서 자이 썬을 사용하는 방법을 알고 계십니까? –

+0

누군가가 이미 블렌더로 execnet을 테스트 했습니까? –

0

그래서, 내가 얻는 것은 자신 만의 파일 형식을 만들고 읽으려는 것입니다. 아마 XML 기반? 파이썬을 통해서만 블렌더에 자신의 라이브러리를 통합 할 수 있습니다. 나는 사람들이 블렌더 (애니메이션 수출업자 포함)를위한 파이썬 확장과 플러그인을 빌드했다는 것을 알고있다.

사람들은 일반적으로 고유 한 파일 유형 (예 : 믹서기와 같은 프로그램을 만든 경우) 만 사용합니다. 누군가 다른 3D 모델링 소프트웨어를 사용하기를 원하기 때문에 엔진을 사용할 수 없기 때문입니다. 도구와 렌더링 엔진이 서로 독립적으로 기능하는 것이 이상적입니다. 블렌더는 훨씬 더 큰 유연성을 제공하는 몇 가지 표준 파일 유형을 이미 내보낼 수 있습니다.

사용자 지정 도구를 만들지 않는 한 사용자 지정 파일 형식을 내보내는 라이브러리를 만들지 않습니다. 그것은 단지 다른 사람들이 당신이 아닌 다른 엔진을 사용하도록 장려 할 것입니다.

덧붙여서이 질문은 stackexchange에 속하지 않습니다.

+0

나는 이미 라이브러리를 만들었으므로 이제 그것을 블렌더에 통합하려고합니다. 엔진을 공유하거나 판매하는 것은 별 문제가되지 않습니다. –

+0

그게 가능할지 모르겠습니다. 내 경험에 의하면 믹서기는 그런 식으로 구성되어 있지 않습니다. – guyfleeman

관련 문제