- README.md 를 개발 명세에서 프로젝트 개요/구성/빠른 시작 형식으로 재작성 - docs/installer.md (음악퀴즈 간편설치기 단계별 사용 가이드) 신설 - docs/admin-site.md (관리 사이트 운영자 가이드) 신설 - docs/resourcepack-installer.md (리소스팩 간편설치기 동작 명세) 신설 - 중복된 docs/add.md 제거 (resourcepack-installer.md 로 이전)
3.2 KiB
3.2 KiB
리소스팩 간편설치기
음악퀴즈에 등록된 음악·사진 목록을 yt-dlp 로 받아 마인크래프트 1.21+ painting variant 텍스처 리소스팩으로 패키징하는 별도 설치기입니다.
기본 골격은 음악퀴즈 간편설치기(src/installer/)와 동일하므로 UI/스토어 코드를 공유합니다. 진입점은 src/installer-rp/main.ts + installer-rp/ 렌더러.
실행
npm run installer:rp # 개발 실행
윈도우 .exe 패키징은 tsconfig.installer-rp.json 으로 컴파일한 뒤 electron-builder 로 수동 패키징합니다.
단계
번호가 붙은 단계는 "이전 / 다음" 으로 이동 가능합니다.
1) 음악퀴즈 선택
- 도메인의
manifest.json에서 음악퀴즈 카드 목록을 표시. - 선택한 음악퀴즈의
file/list/<key>.json에서 다음을 로드:- 음악 목록(유튜브 영상 주소).
- 사진 목록(유튜브 주소 또는 일반 이미지 주소).
2) 리소스팩 설치 (자동 시작)
- "다음" 누르면 즉시 시작.
- 설치 로그를 실시간으로 표시(곡 제목 노출 없이
n번 노래 다운로드 중…형식). - 취소 버튼 / 창 닫기 / 강제 종료 시: 진행 중 다운로드를 안전하게 중단하고 임시 파일을 정리한 뒤 정상 종료.
2-1. yt-dlp 준비
- 자동 설치 위치:
%APPDATA%/.mc_custom/(Linux~/.config/.mc_custom/, macOS~/Library/Application Support/.mc_custom/). - 이미 있으면 업데이트 확인 후 그대로 사용.
- 시스템
PATH에yt-dlp가 있으면 그것을 우선 사용 후 업데이트 확인. - 자동 설치가 실패하는 환경은
yt-dlp-setup.md참고.
2-2. 음악 다운로드 (순차)
- 임시 경로:
%APPDATA%/.mc_custom/.temp/. - 각 곡을
ogg로 변환(Minecraft 사운드 호환 포맷). ffmpeg 필요. - 중단되거나 모두 끝나면
.temp내용 삭제.
2-3. 사진 다운로드 → painting variant 텍스처
이미지는 두 형태로 들어옵니다.
- 유튜브 주소 — yt-dlp 가 알려준 영상 ID 로
https://i.ytimg.com/vi/<id>/maxresdefault.jpg1차 시도, 실패하면hqdefault.jpg폴백. - 일반 이미지 주소 — HTTP GET 으로 그대로.
정규화 규칙:
- 슬롯 규격(고정, 데이터팩 측):
4 × 4블록 정사각,cover_01 … cover_N. - 최종 PNG 규격(리소스팩 측): 정사각 1:1, 최대
1024 × 1024px.4 × 4블록 × 블록당256px (×16 배율) → 1024×1024 가 픽셀 그리드와 정확히 일치.
- 알고리즘:
- 가운데 정사각 크롭:
s = min(원본 가로, 원본 세로)→s × s. s > 1024이면1024 × 1024로 축소 (Lanczos 권장).s ≤ 1024이면 그대로s × s유지(업스케일 없음).
- 가운데 정사각 크롭:
- 파일명:
cover_<NN>.png(NN은 2자리 0패딩). - 저장 경로:
resourcepack/assets/musicquiz/textures/painting/. - 패키지 완성된 리소스팩을
%APPDATA%/.minecraft/resourcepacks/에 zip 으로 배치.
painting variant 의 슬롯·태그 구조와 게임 내 호출 예시는 painting-variant.md 참고.
3) 설치 완료
- "확인" 누르면 프로그램 종료.