데이터 팩
데이터 팩(Data pack)은 Minecraft의 다양한 기능을 구성하는 데 사용되는 데이터 모음이다. 데이터 팩은 pack.mcmeta
파일을 포함하는 폴더 또는 .zip
파일 형태이다. 데이터 팩은 발전 과제, 차원, 마법 부여, 노획물 목록, 제작법, 구조물, 생물 군계 등을 정의하는 데 사용된다 (전체 목록은 § 내용 참조). 바닐라 기능에 대한 정의는 내장된 데이터 팩을 사용하여 수행된다. 별도의 번들 데이터 팩을 세계에 추가하면 실험이 활성화된다. 마찬가지로, 사용자 정의 데이터 팩을 세계에 추가하여 기능을 추가 또는 수정하고 함수를 정의할 수 있다.
사용[편집 | 원본 편집]
데이터 팩은 새로운 세계 만들기 화면의 기타 탭에서 데이터 팩 버튼을 클릭하여 세계를 만드는 중에 추가할 수 있다. 이 메뉴는 파일 탐색기를 열어 데이터 팩을 바로 끌어서 놓을 수 있게 해준다. 또는 데이터 팩을 .minecraft/saves/<세계>/datapacks
폴더에 수동으로 추가하여 기존 월드에 적용할 수 있다.
세계가 열려 있는 동안 데이터 팩을 추가하는 경우, 레지스트리 태그, 노획물 목록, 제작법, 발전 과제, 아이템 수정자, 술어, 함수, 구조물 템플릿은 /reload
명령을 사용하여 볼러올 수 있다. 나머지 기능은 활성화하거나 변경 사항을 적용하려면 세계를 닫고 다시 불러와야 (또는 서버를 다시 시작해야) 하며, 이는 "실험적"으로 간주된다.
데이터 팩은 순서에 따라 데이터를 불러온다. 이 순서는 세계를 만드는 중에 데이터 팩 화면에서 확인하고 변경할 수 있으며, /datapack
명령어를 사용하여 변경할 수도 있다. 데이터 팩을 불러오는 순서는 level.dat
파일에 저장된다. 만약 파일이 여러 데이터 팩에 있는 경우 마지막 데이터 팩에 있는 파일만 사용된다.
내용[편집 | 원본 편집]
데이터 팩은 폴더 구조를 통해 데이터를 가지며, 최상위 폴더에 데이터 팩의 메타 데이터가 포함된 pack.mcmeta
파일이 있어야 한다. 데이터는 다른 팩의 파일이 의도치 않게 서로 간섭하는 것을 방지하기 위해 이름공간으로 구성된다. 파일은 다음과 같이 불러와진다:
data/<이름공간>/<레지스트리 이름>/<경로>.json
파일은 ID<이름공간>:<경로>
를 사용하여<레지스트리 이름>
레지스트리로 불러온다.<레지스트리 이름>
과<경로>
는 둘 다 슬래시(/
)를 통해 추가 하위 폴더를 사용할 수 있다.- 태그는
data/<이름공간>/tags/<레지스트리 이름>/<경로>.json
파일에서 불러오며,#<이름공간>:<경로>
라는 이름의<레지스트리 이름>
태그가 만들어진다.
폴더 구조[편집 | 원본 편집]
/
<데이터 팩 이름>
pack.mcmeta
: 데이터 팩의 메타 데이터로, 이 파일은 유일한 필수 파일이다.pack.png
: "데이터 팩 선택" 화면에서 데이터 팩 옆에 표시할 사진이다.data
<이름공간>
: 사용할 이름공간 폴더이다 (리소스 위치 § 이름공간 참조).data
디렉토리 아래에 여러 이름공간 폴더가 존재할 수 있다.function
: 명령어 목록이 있는.mcfunction
파일이다.structure
: 저장된 구조물을 정의하는.nbt
파일이다.tags
: 각 하위 폴더는.json
파일을 사용하여 특정 유형의 태그를 정의한다.<레지스트리 이름>
: 모든 레지스트리에 대한 태그를 정의할 수 있다 (태그 § 태그 목록 참조).
- 다음 모든 폴더에는 콘텐츠를 정의하는
.json
파일이 포함된다:
advancement
: 발전 과제를 정의한다.banner_pattern
: 현수막 무늬에 사용할 텍스처와 이름이다.cat_variant
:[차기 버전용: JE 1.21.5] 고양이 변종의 텍스처와 생성 조건을 정의한다.chat_type
: 대화 메시지의 형식이다.cow_variant
:[차기 버전용: JE 1.21.5] 소 변종의 텍스처와 생성 조건을 정의한다.damage_type
: 피해 및 죽음 문구의 특성이다.dimension
: 차원의 생물군계 배치와 지형을 정의한다.dimension_type
: 차원의 속성이다.enchantment
: 마법 부여 효과, 지원 아이템, 레벨 비용 등을 정의한다.enchantment_provider
: 게임 내에서 자연 생성되는 아이템의 마법 부여를 변경한다.frog_variant
:[차기 버전용: JE 1.21.5] 개구리 변종의 텍스처와 생성 조건을 정의한다.instrument
: 염소 뿔의 악기를 정의한다.item_modifier
: 아이템을 수정하는 데 사용되는 노획물 함수이다.jukebox_song
: 주크박스 음악을 정의한다.loot_table
: 몹, 블록, 상자 등에서 얻는 노획물을 정의한다.painting_variant
: 그림의 크기와 텍스처이다.pig_variant
:[차기 버전용: JE 1.21.5] 돼지 변종의 텍스처와 생성 조건을 정의한다.predicate
: 위치, 몹 등을 기반으로 특정 조건을 테스트한다.recipe
: 제작, 제련 등을 위한 제작법이다.test_environment
:[차기 버전용: JE 1.21.5] 게임테스트를 그룹화하고 실행에 필요한 적절한 사전 조건을 제공하는 방법이다.test_instance
:[차기 버전용: JE 1.21.5] 게임테스트 프레임워크로 실행할 수 있는 테스트이다.trial_spawner
: 시련 생성기를 구성한다.trim_material
: 장비 장식의 색이나 소재 등을 변경한다.trim_pattern
: 장비 장식의 이름이나 모양 등을 변경한다.wolf_variant
: 늑대 변종의 텍스처와 생성 조건을 정의한다.worldgen
biome
: 생물 군계 생성 설정, 효과 등을 정의한다.configured_carver
: Carver cave definitionsconfigured_feature
: 특징을 구성한다.density_function
: Mathematical operations to calculate values for each position in the world.noise
: 노이즈의 크기와 진폭이다.noise_settings
: Terrain shape including noise caves, and main terrain block types.placed_feature
: Placement of features within a chunk.processor_list
: 구조물 내 블록을 후처리한다.structure
: 구조물 생성과 허용되는 생물군계를 정의한다.structure_set
: Distribution of a set of structures within the world.template_pool
: A set of templates (structure files) for use in jigsaw structures.world_preset
: Sets of dimensions selectable in the Create World screen.flat_level_generator_preset
: "완전한 평지" 세계 유형에 대해 선택 가능한 사전 설정이다.multi_noise_biome_source_parameter_list
: Name of a preset to use for the multi noise biome layout.
pack.mcmeta
[편집 | 원본 편집]
Minecraft는 데이터 팩의 루트 디렉토리에 JSON 형식의 데이터가 포함된 pack.mcmeta
파일이 있는지에 따라 데이터 팩을 식별한다.
1.21.4의 "vanilla" 데이터 팩에서 사용되는 pack.mcmeta
는 클라이언트 및 공식 서버 jar에서 찾을 수 있다:
{
"pack": {
"description": "The default data for Minecraft",
"pack_format": 61
}
}
팩 형식[편집 | 원본 편집]
값 | 릴리스 | [숨기기]주요 변경 사항 |
---|---|---|
4 | 1.13–1.14.4 | 최초의 팩 형식 버전 4를 추가하였다. |
5 | 1.15–1.16.1 | 술어를 추가하였다. |
6 | 1.16.2–1.16.5 | 사용자 지정 세계 생성을 위한 실험적 지원을 추가하였다. |
7 | 1.17–1.17.1 | /replaceitem 명령어가 /item 으로 대체되었다. set_damage 노획물 함수에는 이제 유효한 type 필드가 필요하다.
|
8 | 1.18–1.18.1 | 이제 노획물 목록 함수 set_contents 및 set_loot_table 에 type 필드가 필요하다. 스코어보드, 점수 보유자 및 팀 이름의 길이 제한이 제거되었다.
|
9 | 1.18.2 | /locate 명령어는 이제 구조물 유형이 아닌 구성된 구조물을 첫 번째 매개변수로 사용하므로 많은 그룹화된 구조물에 구조물 유형 태그가 필요하다. 예를 들어 /locate village 는 이제 /locate #village 이다.
|
10 | 1.19–1.19.3 | 데이터 팩은 이제 pack.mcmeta 에서 filter 섹션을 가질 수 있다. /locatebiome 을 /locate 와 병합해 구문을 변경하였다.
|
12 | 1.19.4 | 피해 유형을 추가하였다. 피해 술어에서 모든 부울 플래그를 제거하였으며, 대신 피해 유형 태그를 테스트할 수 있다. 생물 군계 필드 precipitation이 has_precipitation으로 변경되었다. |
15 | 1.20–1.20.1 | 표지판의 NBT가 변경되었다. 예를 들어 Text1 은 이제 front_text.messages[0] 이다. placed_block , item_used_on_block , allay_drop_item_on_block 발전 과제의 트리거가 단일 위치 필드로 축소되었다. alternative 술어의 이름을 any_of 로 변경하였다.
|
18 | 1.20.2 | 매크로 함수를 추가하였다. 이제 NBT에서 효과는 숫자 값 대신 이름공간 ID를 사용한다. 예를 들어 1 은 이제 minecraft:speed 이다.
|
26 | 1.20.3–1.20.4 | 텍스트 구성 요소 구문이 더 엄격하게 분석된다. grass 블록과 아이템의 이름을 short_grass 로 변경하였다. 스코어보드의 표시 이름과 숫자 형식을 추가하였다.
|
41 | 1.20.5–1.20.6 | sweeping 마법 부여의 이름을 sweeping_edge 로 변경하였다. item_used_on_block 발전 과제 트리거의 동작을 변경하였다. 127을 초과하는 증폭기의 일부 동작을 속성으로 대체하였다. 아이템 스택에 첨부된 구조화되지 않은 NBT 데이터가 구조화된 구성 요소로 대체되었다. 아이템 술어에서 durability , potions , nbt , enchantments 필드를 제거하였다. 이제 제작법 출력에 구성 요소를 지정할 수 있다. worldgen 정의에 사용된 정수 및 부동 소수점 제공자는 더 이상 type 옆의 추가 value 필드에 래핑되지 않는다. 새로운 아이템 하위 술어와 노획물 함수가 추가되었다.
|
48 | 1.21–1.21.1 | 데이터 기반 마법 부여가 추가되었다. 데이터 기반 그림이 추가되었다. 아이템 하위 술어에서 enchantment 필드의 이름을 enchantments 로 변경하였다. loot_tables , tags/items 와 같은 레거시 폴더의 이름을 loot_table , tags/item 으로 변경하였다. power 화염구 태그를 제거하고 acceleration_power 태그로 대체하였다. 이제 속성에는 name 과 uuid 대신 단일 리소스 위치 id 필드를 사용한다.
|
57 | 1.21.2–1.21.3 | generic. 과 같은 속성 ID 접두사를 제거하였다. 데이터 구성 요소, 노획물 목록 및 술어의 형식을 변경하였다. 새로운 데이터 구성 요소, 노획물 목록 및 아이템 태그를 추가하였다. 키 입력 술어를 추가하였다. crafting_transmute 제작법 유형을 추가하였다. 마법 부여 효과 damage_item 의 이름을 change_item_damage 로 변경하였다.
|
61 | 1.21.4 | TNT가 실린 광산 수레의 TNTFuse 이름을 fuse 로 변경하였다. 화로 블록 개체의 필드 이름을 변경하였다. 잔상 효과 입자에 필수 필드 duration 을 추가하였다. custom_model_data 구성 요소와 노획물 함수의 형식이 변경되었다.
|
67 | 1.21.5 | 텍스트 구성 요소는 이제 JSON을 포함하는 문자열이 아닌 NBT 객체로 저장되고 /tellraw 와 같은 많은 명령어는 이제 JSON이 아닌 SNBT를 사용한다. 게임 테스트 시스템은 이제 데이터 팩과 모드를 통해 접근할 수 있다. 많은 새로운 구성 요소를 추가하였다. 개체 변형 구성 요소를 추가하였다. /setblock 과 같이 블록을 배치하는 명령은 이제 strict 인수를 갖는다. 돼지, 개구리, 닭 및 소의 변종은 이제 데이터 기반이다. ArmorItems, HandItems, body_armor_item, SaddleItem, Saddle NBT 태그가 제거되고 equipment 필드로 병합되었다. 두 개의 필드만 있는 아이템 구성 요소(그 중 하나는 show_in_tooltip)는 이제 다른 필드가 최상위 수준에 인라인된다. 모든 구성 요소에서 hide_tooltip 및 hide_additional_tooltip 구성 요소와 show_in_tooltip 필드를 제거하고 새로운 tooltip_display 구성 요소를 도입하였다. 개체 및 블록 개체의 NBT 데이터에 많은 변경 사항이 적용되었다.
|
역사[편집 | 원본 편집]
[숨기기]Java Edition | |||||||
---|---|---|---|---|---|---|---|
1.13 | 17w43a | 데이터 팩이 추가됨. | |||||
17w46a | 불러온 데이터 팩을 제어하는 명령어인 /datapack 이 추가됨. | ||||||
17w48a | 이제 데이터 팩에서 사용자 지정 제작법을 불러올 수 있음. | ||||||
최초의 팩 형식 버전 4 를 추가함. | |||||||
17w49a | 이제 데이터 팩을 사용하여 태그를 만들 수 있음. | ||||||
17w49b | 이제 함수에 대한 태그를 만들 수 있음. | ||||||
minecraft:tick 태그가 붙은 함수는 이제 매 틱마다 실행됨. | |||||||
18w01a | minecraft:load 태그가 붙은 함수는 이제 (다시) 불러온 후에 한 번 실행됨.
| ||||||
이제 충돌 보고서에 활성화된 데이터 팩이 나열됨. | |||||||
1.14 | 18w43a | 개체 유형에 대한 태그를 만들 수 있음. | |||||
1.15 | 19w38a | 술어를 추가함. | |||||
1.16 | 20w22a | 사용자 지정 데이터 팩이 충돌하는 것을 방지하기 위해 데이터 팩이 불러와지는 방식을 약간 변경함. | |||||
데이터 팩을 새로 고침하는 데 실패하면 변경 사항이 적용되지 않으며 게임은 이전 데이터를 사용하여 계속 진행됨. | |||||||
데이터 팩 목록의 변경 사항은 새로 고침이 성공적으로 완료된 후에만 저장됨. | |||||||
기존 데이터 팩 때문에 세계를 불러올 수 없는 경우 게임은 안전 모드에서 세계를 불러올 수 있으며, 바닐라 데이터 팩만 불러옴. | |||||||
바닐라 데이터 팩만 불러올 수 있는 --safeMode 옵션이 서버에 추가됨.
| |||||||
이제 게임에서는 필수 태그가 누락되는 등 중요한 데이터 팩 문제를 감지하여 세계가 불러와지지 않도록 방지함. | |||||||
Pre-release 1 | 이제 세계를 만들기 전에 데이터 팩을 불러올 수 있음. | ||||||
이제 데이터 팩에서 차원 및 차원 유형을 추가하고 변경할 수 있음. | |||||||
1.16.2 | 20w27a | 이제 데이터 팩은 루트 폴더에 pack.png를 가질 수 있으며, 데이터 팩 메뉴에 표시됨. | |||||
20w28a | 사용자 지정 세계는 이제 사용자 지정 생물 군계를 지원하며 사용자 지정 차원 생성기에서 사용할 수 있음. | ||||||
이제 데이터 팩의 worldgen 폴더에서 세계 생성을 사용자 지정할 수 있음. | |||||||
1.17 | 20w45a | version.json의 팩 형식이 데이터 버전과 리소스 버전으로 분리되었음. | |||||
20w46a | 아이템 수정자가 추가되었음. | ||||||
1.18.2 | Pre-release 1 | 실험적 데이터 팩에 사용자 지정 구조물을 추가할 수 있다: 이제 게임은 데이터 기반의 구성된 구조를 만들고 저장함. | |||||
이제 동굴 생성의 상당 부분은 데이터 팩을 통해 구성할 수 있음. | |||||||
1.19 | 22w11a | 이제 데이터 팩을 사용하여 현재 팩보다 우선으로 적용된 팩의 파일을 차단하는 필터를 적용할 수 있음. | |||||
1.19.3 | 22w42a | 대화 유형이 추가됨. | |||||
datapacks 라는 하위 섹션을 추가함.
| |||||||
이제 바닐라 월드 생성 데이터 팩을 게임의 jar 안에서 볼 수 있음. | |||||||
1.19.4 | 23w06a | 피해 유형이 추가됨. | |||||
1.20.2 | 23w31a | 이제 데이터 팩은 여러 팩 형식을 지원할 수 있다. | |||||
이제 데이터 팩에는 팩의 "일반" 콘텐츠 위에 적용되는 overlays가 포함될 수 있음. | |||||||
1.20.5 | 24w10a | 데이터 팩을 통해 정의할 수 있는 늑대 변종이 추가되었음. | |||||
이제 데이터 팩에서 현수막 무늬를 사용자 정의할 수 있음. | |||||||
1.21 | 24w18a | 이제 데이터 팩에서 그림 변형을 사용자 정의할 수 있음. | |||||
이제 마법 부여는 데이터 기반이며 데이터 팩을 통해 정의할 수 있음. | |||||||
데이터 팩은 추가적으로 마법 부여 제공자를 정의할 수 있음. | |||||||
24w19a | 여러 디렉토리의 이름이 변경되었음:
| ||||||
24w21a | 여러 디렉토리의 이름이 변경되었음:
| ||||||
이제 데이터 팩에서 주크박스 음악을 사용자 정의할 수 있음. | |||||||
1.21.2 | 24w33a | 이제 데이터 팩에서 염소 뿔 악기를 사용자 정의할 수 있음. |
문제[편집 | 원본 편집]
"데이터 팩"의 문제점은 버그 트래커에서 관리된다. 문제점들은 그 곳에서 신고 및 확인되어야 한다.
참고[편집 | 원본 편집]
[숨기기] | |||||
---|---|---|---|---|---|
버전 | |||||
개발 |
| ||||
기술적 |
| ||||
멀티플레이어 | |||||
게임 사용자지정 |