원본을 덮어쓰지 않고 커스텀 그림과 음악 디스크 추가하기
둘 다 데이터팩 레지스트리가 되었기 때문에, 바닐라를 덮어쓰는 대신 새로운 것을 추가할 수 있습니다. 그림에 필요한 두 파일과 음악 디스크에 필요한 세 파일, 그리고 그림이 따라야 하는 크기 규칙을 소개합니다.
커스텀 그림을 얻는 예전 방식은 paintings_kristoffer_zetterstrand.png을 덮어쓰고 바닐라 그림 하나를 잃는 것이었습니다. 이제 그림과 음악 디스크는 모두 레지스트리(registry)이므로, 교체가 아니라 추가를 합니다.
그림에는 두 개의 파일이 필요합니다
그림을 정의하는 데이터팩 항목:
data/<namespace>/painting_variant/my_art.json
{
"asset_id": "my_pack:my_art",
"width": 2,
"height": 2,
"title": { "text": "My Art" },
"author": { "text": "Me" }
}
그리고 이미지를 제공하는 리소스 팩:
assets/my_pack/textures/painting/my_art.png
width과 height는 블록 단위이며, 텍스처는 그 비율과 일치해야 합니다. 바닐라는 블록당 16픽셀을 그리므로 2×1 그림은 32×16이지만, 64×32도 똑같이 잘 작동합니다. 비율이 틀리면 늘어나며, 자동 맞춤은 없습니다.
바닐라 크기는 1×1부터 4×4까지입니다. 더 큰 것도 작동하지만 그에 맞는 벽이 필요합니다.
얻을 수 있게 만들기
변형을 추가한다고 해서 게임에 들어가는 것은 아닙니다. 두 가지 경로가 있습니다:
- 배치 태그 —
#minecraft:placeable에 추가하면 일반 그림 아이템이 무작위로 그것이 될 수 있습니다. - 직접 —
/give @p painting[entity_data={id:"minecraft:painting",variant:"my_pack:my_art"}]
대부분의 맵 제작자는 두 번째를 원합니다: 무작위가 아닌 특정 그림 말입니다.
음악 디스크에는 세 개가 필요합니다
data/<namespace>/jukebox_song/my_song.json
{
"sound_event": { "sound_id": "my_pack:music/my_song" },
"description": { "text": "My Artist - My Song" },
"length_in_seconds": 154,
"comparator_output": 12
}
여기에 그 사운드 id를 파일에 매핑하는 sounds.json, 그리고 .ogg 자체가 더해집니다:
assets/my_pack/sounds.json
assets/my_pack/sounds/music/my_song.ogg
세 가지 세부 사항이 중요합니다:
length_in_seconds가 올바라야 합니다. 이것이 주크박스가 멈추는 시점을 결정합니다 — 입자, 레드스톤 출력, 그리고 그 지점에서 잘리는 오디오까지요. 너무 길면 끝에 무음이 생기고, 너무 짧으면 트랙이 잘립니다.comparator_output는 0–15이며 비교기가 읽는 값입니다. 바닐라에는 디스크가 22개인데 값은 15개뿐이라, 이미 일곱 쌍이 하나를 공유합니다. 레드스톤으로 구분해야 하는 디스크들이 쓰지 않는 값을 고르세요.- ogg를 스트리밍하세요. 음악 길이에는
sounds.json의"stream": true를 사용하세요.
그런 다음 이것을 주세요:
/give @p music_disc_13[jukebox_playable="my_pack:my_song"]
어떤 디스크 아이템이든 운반체로 작동합니다 — 컴포넌트가 무엇이 재생될지 결정합니다.
이것이 덮어쓰기보다 나은 이유
바닐라 에셋을 교체하는 팩은 같은 일을 하는 다른 모든 팩과 충돌하고, Mojang이 파일 이름을 바꾸면 깨집니다. 레지스트리 추가는 네임스페이스가 있으므로, 그림을 추가하는 두 팩이 공존합니다. 또한 편집 없이 버전 업그레이드를 견디는 유일한 방법입니다.
그림 변형, 주크박스 노래, 토템, 채팅 이모지를 커스텀 콘텐츠 팩 제작기로 하나의 완성된 리소스 팩 zip에 담아 만드세요.