베드락 스킨 팩은 네 가지 파일로 구성되며, 두 가지 오류는 조용히 발생합니다
서로 달라야 하는 두 개의 UUID, 선택 사항이 아닌 lang 파일, 그리고 구두점을 제거하는 스킨 키 — '내 스킨!'과 '내 스킨?'은 오류 없이 하나의 스킨이 됩니다.
.mcpack은 확장자가 다른 zip 파일이며, 그 안에 있는 스킨 팩은 정확히 네 가지 종류의 파일을 필요로 합니다.
manifest.json a header and a skin_pack module, each with its own UUID
skins.json one entry per skin: texture, geometry, and a KEY
texts/en_US.lang the display names — skins.json holds only keys
*.png the textures themselves
네 가지 중 세 가지는 쉽게 올바르게 만들 수 있습니다. 흥미로운 오류들은 모두 파일들 간의 관계에서 발생합니다.
두 UUID는 달라야 합니다
manifest.json는 header에 하나의 UUID를, 그리고 skin_pack 모듈에 또 다른 UUID를 가지고 있습니다.
{
"format_version": 1,
"header": { "name": "…", "uuid": "…", "version": [1, 0, 0] },
"modules": [ { "type": "skin_pack", "uuid": "…", "version": [1, 0, 0] } ]
}
이들은 두 개의 별개의 ID입니다 — 팩 자체와 팩 안에 있는 것 — 그리고 두 값에 하나의 값을 재사용하는 것은 빌드 시에는 아무런 불평이 없지만 실제로는 오류입니다.
두 번째, 더 미묘한 결과가 있습니다: 동일한 UUID로 다시 가져오면 동일한 팩으로 간주되며, 마인크래프트는 이미 가지고 있는 복사본을 조용히 유지합니다. 팩을 편집하고, 동일한 식별자로 다시 빌드하고, 다시 가져오면 아무것도 하지 않은 것처럼 보입니다. 이 페이지의 모든 빌드는 정확히 그 이유 때문에 새로운 UUID를 얻습니다. 이것이 또한 편집된 팩을 다시 가져올 때 이전 팩을 다시 압축하는 대신 새로운 다운로드가 필요한 이유입니다.
lang 파일은 선택 사항이 아닙니다
skins.json은 표시 이름을 포함하지 않습니다. 대신 키를 포함하며, texts/en_US.lang은 그 키를 텍스트에 매핑합니다.
skinpack.<PackKey>=My Pack
skin.<PackKey>.<SkinKey>=My First Skin
lang 파일 없이 팩을 배포하면 아무런 오류도 발생하지 않습니다 — 모든 스킨은 게임에 원시 키로만 나타납니다. 이것이 수동으로 조립된 팩이 유효성 검사는 통과하지만 깨져 보이는 가장 흔한 이유입니다.
키는 구두점을 제거하며, 중복은 합쳐집니다
키는 영숫자여야 합니다. 그 외의 모든 것은 제거됩니다.
| 당신의 이름 | 키 |
|---|---|
My Skin! | MySkin |
My Skin? | MySkin |
Skin #2 | Skin2 |
!!! | Skin1 (위치에 따른 대체) |
첫 두 줄은 함정입니다. 사람이 명확하게 다르게 이름 붙인 두 스킨은 하나의 키가 되며, 중복 키는 오류를 발생시키지 않습니다 — 게임 내에서 하나의 스킨으로 조용히 합쳐집니다. 12개의 스킨을 업로드했는데 11개만 나타나고, 어떤 스킨이 사라졌는지 아무도 알려주지 않습니다.
여기서 빌더는 이미 사용한 키에 카운터를 추가하여 이를 방지합니다. 따라서 두 번째 MySkin은 MySkin1이 됩니다. 팩을 수동으로 조립하는 경우 알아둘 가치가 있습니다: 필요한 검사는 직접 입력한 이름이 아니라 제거된 이름에 대한 것입니다.
구두점으로만 이루어진 이름은 아무것도 남기지 않으므로, Skin와 목록에서의 위치로 대체됩니다.
슬림 스킨은 올바른 지오메트리 문자열이 필요합니다
각 항목은 모델 이름을 지정하며, 두 가지가 있습니다.
geometry.humanoid.custom— 클래식, 4픽셀 팔geometry.humanoid.customSlim— 슬림, 3픽셀 팔
이것을 잘못 설정하는 것이 알렉스 비율의 스킨이 스티브의 뭉툭한 팔로 나타나는 일반적인 원인입니다. 텍스처는 괜찮지만, 요청된 모델이 잘못된 것입니다. 팩 빌더는 네 번째 팔 열을 샘플링하여 이를 추론하지만, 수동으로 작성된 skins.json는 명시적으로 지정해야 하며, 두 문자열은 끝에서 네 글자가 다릅니다.
항목에는 "type": "free"도 포함되며, 망토는 동일한 항목에서 참조되는 선택적 추가 PNG입니다 — 망토는 별도의 다운로드로 제공되는 것이 아니라 스킨 팩 내부에 포함됩니다.