# 리소스팩 간편설치기 음악퀴즈에 등록된 음악·사진 목록을 yt-dlp 로 받아 마인크래프트 1.21+ painting variant 텍스처 리소스팩으로 패키징하는 별도 설치기입니다. 기본 골격은 음악퀴즈 간편설치기(`src/installer/`)와 동일하므로 UI/스토어 코드를 공유합니다. 진입점은 `src/installer-rp/main.ts` + `installer-rp/` 렌더러. ## 실행 ```bash npm run installer:rp # 개발 실행 ``` 윈도우 `.exe` 패키징은 `tsconfig.installer-rp.json` 으로 컴파일한 뒤 `electron-builder` 로 수동 패키징합니다. ## 단계 번호가 붙은 단계는 "이전 / 다음" 으로 이동 가능합니다. ### 1) 음악퀴즈 선택 - 도메인의 `manifest.json` 에서 음악퀴즈 카드 목록을 표시. - 선택한 음악퀴즈의 `file/list/.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`](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//maxresdefault.jpg` 1차 시도, 실패하면 `hqdefault.jpg` 폴백. - **일반 이미지 주소** — HTTP GET 으로 그대로. 정규화 규칙: - **슬롯 규격(고정, 데이터팩 측)**: `4 × 4` 블록 정사각, `cover_01 … cover_N`. - **최종 PNG 규격(리소스팩 측)**: 정사각 1:1, 최대 `1024 × 1024` px. - `4 × 4` 블록 × 블록당 `256` px (×16 배율) → 1024×1024 가 픽셀 그리드와 정확히 일치. - **알고리즘**: 1. 가운데 정사각 크롭: `s = min(원본 가로, 원본 세로)` → `s × s`. 2. `s > 1024` 이면 `1024 × 1024` 로 축소 (Lanczos 권장). 3. `s ≤ 1024` 이면 그대로 `s × s` 유지(업스케일 없음). - 파일명: `cover_.png` (`NN` 은 2자리 0패딩). - 저장 경로: `resourcepack/assets/musicquiz/textures/painting/`. - 패키지 완성된 리소스팩을 `%APPDATA%/.minecraft/resourcepacks/` 에 zip 으로 배치. painting variant 의 슬롯·태그 구조와 게임 내 호출 예시는 [`painting-variant.md`](painting-variant.md) 참고. ### 3) 설치 완료 - "확인" 누르면 프로그램 종료.