실제로 뭘까
모든 Java 리소스 팩에는 다음 파일이 들어 있어 pack.mcmeta 의 루트에 있어. 작지만 그 안의 숫자 하나가 중요해:
{
"pack": {
"pack_format": 97,
"description": "My texture pack"
}
}그 숫자는 다음의 버전이야 팩 레이아웃, 게임의 버전이 아니야. Mojang은 자산을 옮기거나 이름을 바꾸거나 구조를 바꿀 때마다 이 숫자를 올려. 게임에 어떤 파일 배치를 기대해야 하는지 알려주는 거지. 그래서 버전이 안 맞으면 아예 실행이 안 되는 게 아니라 텍스처가 누락되는 거야. 포맷이 암시하는 위치를 찾아봤는데 그중 일부가 비어 있거든.
모든 버전의 숫자
CreateTextures가 내보내는 포맷들이야. 에디터가 쓰는 레지스트리에서 가져왔어.
| Minecraft 버전 | pack_format |
|---|---|
| 26.3 | 97 |
| 26.2 | 88 |
| 26.1–26.1.2 | 84 |
| 1.21.11 | 75 |
| 1.21.9–1.21.10 | 69 |
| 1.21.7–1.21.8 | 64 |
| 1.21.6 | 63 |
| 1.21.5 | 55 |
| 1.21.4 | 46 |
| 1.21.2–1.21.3 | 42 |
| 1.21.1 | 34 |
| 1.8.9 | 1 |
1.21.9 변경사항
포맷부터 69 부터는 팩에 지원되는 범위 대신 단일 값 대신 min_format 그리고 max_format. 최신 pack.mcmeta는 이렇게 생겼어:
{
"pack": {
"pack_format": 97,
"min_format": [97, 0],
"max_format": [97, 1],
"description": "My texture pack"
}
}평범한 pack_format 키가 그 자리에 남아 있어서 예전 런처나 서드파티 툴도 여전히 알아먹을 수 있어. 범위를 넓히면 하나의 팩으로 여러 버전을 한 번에 지원한다고 선언할 수 있지. 물론 지원한다고 선언하는 것과 그 버전들에 맞는 파일이 실제로 다 있는 건 별개지만.
각 쌍의 두 번째 숫자는 마이너 버전으로, 예전 팩을 고장 내지 않는 변경사항을 위한 거야. 26.3은 하나를 쓰는데, 포맷이 97.1이야. 그래서 26.3 팩의 범위는 [97, 1]까지 가고 pack_format은 정수 97로 유지되지.
틀려도 다시 고칠 수 있어
Bedrock은 이걸 전혀 안 써
Bedrock에는 pack_format이 없어. Bedrock 팩은 manifest.json UUID, 버전 배열, 최소 엔진 버전이 대신 들어가. 두 시스템은 공통점이 하나도 없어서 팩이 버전 간에 호환되지 않는 이유 중 일부이기도 해. 참고: Java 대 Bedrock 리소스 팩.
간단히 말해서
에서 Minecraft 버전을 골라 에디터 내보내기 전에 하면 알맞은 번호가 알아서 적히고, 버전에 따라 min/max 쌍도 같이 적혀. 위에 있는 표는 손수 pack.mcmeta를 수정할 때 보라고 있는 거야.
