블렌드 파일을 생성하기위한 비 블렌더 API가 있습니까?

3D 모델을 생성하는 Python 애플리케이션이 있습니다. 이미 이러한 모델을 FBX, DAE, OBJ 등으로 내보낼 수 있습니다. 대부분의 경우 파이프 라인의 다음 단계는 블렌더 내부 모델을 수정하는 것입니다. 즉, 블렌더에서 모델을 가져와야합니다. 말했다 수출 형식.

하지만 일부 블렌더 관련 기능은 이러한 파일 형식으로 표현할 수 없습니다.이 문제를 해결하기위한 확실한 아이디어는 관련없는 타사 파일 형식 대신 블렌드 파일로 직접 내보내는 것입니다.

이 작업을 수행하는 방법을 연구하면서 하나의 접근 방식처럼 보이는 http://wiki.blender.org/index.php/User%3aIdeasman42/BlenderAsPyModule 를 찾았습니다. . 그러나 이것은 맞춤형 블렌더가 필요한 것 같습니다.

파일 형식, 특히 및 (게시물 ATM에 포함 할 수없는 다른 링크).

… 분명히 가능할 것입니다 (성가신 경우). 약간의 시도 오류로 내보내기 함수를 작성합니다.

하지만이 작업을 수행하기 전에 : 이미 수행 했습니까? 블렌더 외부에서 블렌드 파일을 생성하기위한 기존 라이브러리 / API가 있습니까?

댓글

  • 질문, 사양은 어떻게 고정되어 있습니까?
  • ' DNAStructs 등에 대해 이야기하는 경우 ' 이것이 공식적인 파일 형식 사양이 아니라는 느낌입니다. , 일반적으로 어떻게 보이는지 표시합니다. 혼합 파일은 구조화 된 데이터 구성보다 메모리 덤프와 더 유사합니다. 하지만 저는 ' 전문가가 아닙니다.

답변

블렌더로 직접 내보내는 방법을 모르지만 (너무 복잡해 보임) PLY / STL / etc 파일을 가져올 수 있습니다. 그런 다음 원하는 모든 추가 기능을 스크립팅합니다.

제 경우에는 원본 CAD 프로그램을 자유롭게 선택할 수 있었기 때문에 PyModule을 통해 Blender에서 직접 빌드하기로 선택했습니다. 저는 Blender와 완전히 별개로 작업합니다. GUI이며 외부 python3 및 bpy 모듈에만 의존합니다. bpy 모듈은 쉽게 만들 수 있습니다. 기존 블렌더 설치와 크게 분리하여 유지할 수 있습니다 (소스 폴더에서 실행).

이 명령을 실행하면됩니다. ( $ HOME / src가 없는지 확인 ) :

git clone http://git.blender.org/blender.git && cd blender && git submodule update --init --recursive && git submodule foreach git checkout master && git submodule foreach git pull --rebase origin master && build_files/build_environment/install_deps.sh --with-all --skip-osl && sudo make bpy && cd .. && rm -rf blender && sudo rm -rf build_linux_bpy && rm -rf $HOME/src # this gets bpy python module 

다음 항목도 찾았습니다. https://code.google.com/p/pyblenderfile/ 하지만 솔직히별로 혜택이 없다고 생각합니다. 모든 것을 가져올 수 있도록 허용했기 때문에 bpy 모듈을 사용하여 동일한 작업을 수행하는 더 나은 방법을 찾았습니다.

내가하는 일은 다음과 같습니다.

-블렌더에서 빌드 (공식 애플리케이션을 시작하지 않고 Python을 통해 수행)

import bpy #build stuff bpy.ops.wm.save_as_mainfile(filepath="./objects8.blend") 

-모델 가져 오기

import bpy bpy.ops.wm.open_mainfile(filepath="./objects8.blend") 

잘 작동합니다. GUI에서 할 수있는 작업을 재현하는 데 몇 가지 문제가 있지만 대부분 Blender에 코드 (imo)에 대한 끔찍한 문서가 있기 때문입니다. 그래도 파이썬에서 모든 동등한 명령을 직접 호출하고 bpy 모듈을 사용하여 실행하기 때문에 멋진 작업을 수행 할 수 있습니다.

코멘트

  • 블렌더 사용 api는 이전에 사용한 접근 방식 이었지만 블렌더의 빈번한 API 변경과 블렌더에 플러그인을 설치하는 방법을 ' 알 수없는 사용자의 지원 요청로드로 인해 거의 포기되었습니다. . 그러나 pyblender 파일은 블렌드 파일의 기본 구조를 알아 내기위한 읽기 쉬운 시작처럼 보입니다. 감사합니다!

답변

블렌더 외부에서 블렌더 파일을 작성하기위한 공식 API는 없습니다. 몇몇 사람들은 블렌더 파일을 읽는 방법을 작성했습니다. 내가 본 파이썬에서 열린 유일한 것은 Blender Aid https://code.google.com/p/blender-aid/

it 블렌더 파일을 읽고 한 파일에서 다른 파일로의 링크에 대한 정보를 데이터베이스에 입력합니다.

이 방법을 선택하면 블렌드 파일을 만드는 스크립트를 직접 작성하는 것이 좋은 시작점이 될 수 있습니다. .

Answer

BAM (Bam Asset Manager)은 .blend 파일을 조작 할 수 있습니다. 주어진 .blend (라이브러리, 이미지 …)를 단일 파일로 만드는 경우 코드 를 살펴볼 수 있습니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다