배포와 갤러리 등록

zip 압축 파일 레이아웃, 공식 갤러리 등록 절차, 심사 기준, 버전 관리 및 라이선스 정책을 설명합니다.

zip 압축 파일 구조와 제약 조건

사용자에게 팩을 배포하거나 공식 갤러리에 제출할 때는 .zip 아카이브로 묶어야 합니다. MMDX12 설치 관리자는 안전을 위해 엄격한 검증을 거칩니다:

아카이브 내부 구조

압축 파일 루트에 최상위 폴더 <id>/가 있고 그 안에 파일들이 들어가거나, 혹은 압축 파일 루트에 파일들이 바로 위치해야 합니다:

my_pack.zip
└── my_pack/
    ├── pack.json
    ├── surface.hlsl
    ├── preview.png (선택)
    ├── README.md (선택)
    └── LICENSE (선택)

허용 파일 규칙

  • 허용 확장자: pack.json, *.hlsl, *.hlsli, *.png, *.jpg, *.jpeg, *.md, *.txt, LICENSE*.
  • 금지 항목: 심볼릭 링크(링크 파일), 실행 파일(.exe, .dll 등), 스크립트 파일 등 허용되지 않은 파일이 하나라도 포함되어 있으면 설치 프로그램이 즉시 거부합니다.
  • 용량 및 파일 수 한도: 총 압축 해제 용량 32MB 이하, 총 파일 수 200개 이하.

공식 갤러리 등록 신청

MMDX12 공식 갤러리(https://mmdx.codingbot.kr/shader-packs/)에 내 팩을 올리려면 GitHub 이슈를 통해 등록을 신청합니다:

  1. MMDX12 GitHub 이슈 저장소로 이동합니다.
  2. 새 이슈를 작성하고 제목을 Shader pack: <팩 이름> 형식으로 지정합니다.
  3. 이슈 본문에 다음 내용을 포함합니다:
    • 완성된 .zip 파일 첨부 (또는 소스 코드 저장소 링크)
    • 팩 적용 전후를 비교할 수 있는 스크린샷 (기본 MMD 음영 vs 팩 적용 화면)
    • 재배포 라이선스 명시 (MIT, Apache-2.0, CC-BY 등)
    • 지원 모델 설명 및 권장 설정

메인테이너 심사 기준

갤러리 등록 심사 시 메인테이너는 다음 기준을 검토합니다:

  1. 컴파일 검증: pack_check.exe <pack.zip> --compile을 실행했을 때 종료 코드 0으로 오류 없이 통과해야 합니다.
  2. 라이선스 및 저작권 준수:
    • 오픈 소스 재배포를 허용하는 라이선스여야 합니다.
    • 타인의 셰이더 코드나 상용 에셋을 무단으로 도용하지 않아야 합니다.
  3. 미리보기 이미지 규격: 팩의 preview.png 또는 preview.jpg는 16:9 화면비(예: 1280x720 또는 1920x1080)여야 합니다.
  4. 다국어 매니페스트: name, description, recommendedFor, 파라미터 label에 가능한 한 다국어 번역(ko, en, ja, zh)을 충실히 제공하는 것을 권장합니다.
  5. GPU 성능 적합성:
    • 셰이더는 GPU 상에서만 실행되므로 파일이나 네트워크에 접근하지 못합니다.
    • 그러나 지나치게 무거운 무한 루프나 과도한 반복 연산은 전체 프레임레이트를 떨어뜨릴 수 있으므로 루프 횟수는 제한되어야 합니다.

버전 관리와 자동 업데이트

  • 버전 규칙: 팩 코드나 매니페스트를 수정하여 배포할 때마다 pack.json의 version 번호를 올려야 합니다 (예: 1.0.0 -> 1.0.1).
  • 갤러리 인덱스 반영: 공식 갤러리는 버전별로 독립된 zip 파일과 SHA-256 해시를 index.json에 기록합니다.
  • 앱 내 업데이트 안내: 사용자의 MMDX12 앱은 갤러리 인덱스를 조회하여 설치된 버전보다 갤러리의 버전이 높으면 자동으로 업데이트 버튼을 띄워 줍니다.