반응형
이 글은 마인크래프트 1.21.4를 기준으로 정리되었습니다.
pack.mcmeta 파일에 대해
마인크래프트에는 데이터팩과 리소스팩을 유저가 직접 만들 수 있습니다.
pack.mcmeta 파일이란 이러한 데이터팩과 리소스팩의 설명, 작동하는 버전 등, 팩의 정보를 담은 파일입니다.
따라서 많은 분들이 그저 해당하는 버전과 설명만 적고 끝내는데요.
사실 pack.mcmeta에는 여러 정보를 더 넣을 수 있습니다.
따라서 이 글에서는 pack.mcmeta로 무엇을 할 수 있는 지 다루어 보겠습니다.
또한 pack.mcmeta 파일의 확장자는 mcmeta이지만 양식은 JSON 파일 형식을 사용합니다.
따라서 숫자를 제외한 요소들은 ""로 감싸주어야 하며 모든 요소를 root object 안에 넣어주어야 합니다.
예시
{
"pack": {
<내용>
},
"filter": {
<내용>
}
}
pack (필수)
- 팩의 정보를 담은 object입니다.
- 형식
"pack": {
"pack_format": 61,
"description": {"text":"potan tistory", "color":"green"},
"supported_formats": [61, 70]
}
- pack_format : 이 팩이 호환되는 마인크래프트 버전을 결정합니다
- 1.21.4 버전에서 데이터팩은 버전 61, 리소스팩은 버전 47을 사용합니다
- description : /datapack list에서 뜨는 팩의 이름에 마우스를 올리거나 리소스팩 설정, 데이터팩 넣기 창 등에서 팩에 뜨는 설명입니다
- String, JSON Text, JSON Text Array 중 하나를 사용할 수 있습니다
- supported_formats (선택사항) : 이 팩이 지원하는 버전의 범위를 지정합니다
- 범위에는 pack_format 값이 포함되어야 합니다.
- Int (: 61), Int Array (: [61, 70), Object (: {"min_inclusive": 60, "max_inclusive": 71} ) 중 하나를 사용할 수 있습니다
filter (선택사항)
- 이 팩보다 우선순위가 낮은 팩에서 filter에서 설정된 패턴과 하나라도 일치하는 모든 파일은 존재하지 않는 것으로 처리합니다
- 자신의 팩 내용물은 filter에서 설정해줘도 막지 않습니다.
- 형식
"filter": {
"block": [
{
"namespace": "potan",
"path": "function/.*"
},
{
"path": "recipe/andesite"
},
{
"namespace": "minecraft",
"path": "recipe/.*slab.*"
}
]
}
- block : 필터링할 패턴의 리스트입니다.
- 패턴 (Object)
- namespace : 필터링될 파일들의 네임스페이스입니다.
- 정규 표현식을 사용합니다.
- 만약 설정하지 않을 경우 모든 네임스페이스에 적용됩니다.
- path : 필터링될 파일들의 경로입니다.
- 정규 표현식을 사용합니다.
- 만약 설정하지 않을 경우 모든 네임스페이스에 적용됩니다.
- namespace : 필터링될 파일들의 네임스페이스입니다.
- 패턴 (Object)
위 예시에서는
- potan 네임스페이스 속 function 폴더의 모든 내용물을 비활성화합니다.
- 모든 네임스페이스에서 recipe 폴더의 andesite 파일을 제거합니다.
- minecraft 네임스페이스 속 recipe 폴더의 파일 중 이름 중간에 slab이 들어가는 모든 파일을 비활성화합니다.
안산암 조합법과 안산암 반블록 조합법이 없어진 모습입니다.
features (선택사항)
- 실험적 기능을 선택하기 위해 사용됩니다.
- 해당 기능은 /reload가 아닌 세계를 재접속해야 적용됩니다.
- 형식
"features": {
"enabled": [
"minecraft:redstone_experiments",
"minecraft:minecart_improvements"
]
}
- enabled : 선택할 실험적 기능들의 resource location (namespace id) 리스트입니다.
- 만약 세계에 해당하는 실험적 기능이 활성화되어 있지 않다면 팩은 작동하지 않습니다.
- 1.21.4 버전 기준 다음 내용을 사용할 수 있습니다.
- minecraft:vanila
- minecraft:trade_rebalance
- minecraft:redstone_experiments
- minecraft:minecart_improvements
물론 이 features 를 지정해주지 않아도 실험적 세계에 들어가면 거기서 추가된 명령어가 담긴 함수는 정상적으로 실행이 됩니다.
다만 그 명령어가 담긴 함수는 일반 세계에 들어가면 해당 함수는 작동하지 않습니다. 엉뚱한 세계에 넣는 것을 방지하기 위함인 것 같습니다.
overlays (선택사항)
- 팩의 오버레이를 설정합니다.
- 오버레이란 팩의 일반 컨텐츠를 대체하는 하위 팩으로 오버레이 각각마다 팩의 최상위 폴더에 data 또는 asset 폴더를 가집니다.
- 형식
"overlays": {
"entries": [
{
"directory": "a",
"formats": [57, 60]
},
{
"directory": "b",
"formats": [48, 56]
}
]
}
- entries: 오버레이 리스트입니다. 오버레이의 순서가 우선순위를 결정합니다.
- 오버레이 (Object)
- directory : 오버레이의 data 또는 asset 폴더가 들어있는 파일의 이름입니다.
- formats : 오버레이가 적용될 팩 버전입니다. (위의 supported_formats와 같은 형식을 사용합니다)
- 오버레이 (Object)
- pack_format이 61일 때
- 마크의 데이터팩 버전이 61일 때 data 폴더가 내용물이 됩니다. (기존과 동일)
- (pack)/data/~
- (리소스팩의 경우) (pack)/assets/~
- 마크의 데이터팩 버전이 57 ~ 60일 때 a 폴더의 data 폴더가 데이터팩의 내용을 대체합니다.
- (pack)/a/data/~
- (리소스팩의 경우) (pack)/a/assets/~
- 마크의 데이터팩 버전이 48 ~ 56일 때 b 폴더의 data 폴더가 데이터팩의 내용을 대체합니다.
- (pack)/b/data/~
- (리소스팩의 경우) (pack)/b/assets/~
language (선택사항, 리소스팩 전용)
- 언어 설정에 새로운 언어를 추가할 수 있습니다.
- 형식
"language": {
"potato": {
"name": "Potato Language",
"region": "Potato",
"bidirectional": false
}
}
- "<언어>" : (Object) assets/<namespace>/lang/<언어>.json 파일을 읽어옵니다.
- name : 언어의 이름입니다.
- region : 국가나 지역 이름입니다.
- bidirectional : true로 설정될 경우 이 언어는 오른쪽에서 왼쪽으로 읽습니다.
"potato" 이므로 파일은 lang 폴더 내부에 potato.json 입니다.
반응형
'마인크래프트 강좌 > 데이터팩 강좌' 카테고리의 다른 글
마인크래프트 데이터팩 강좌 [3-1] - 매크로 - (1) | 2025.02.07 |
---|---|
[부록] Enchantment Provider 마법 부여 공급 (0) | 2024.06.26 |
나만의 마법 부여를 만들어보자 custom enchantment (4) | 2024.06.25 |
마인크래프트 /return 강좌 (0) | 2024.06.22 |
1.20.5에 추가된 커스텀 아이템 조합 만들기 (6) | 2024.04.14 |