다른 폴더 구조
Java는 모든 것에 네임스페이스를 붙여 assets/minecraft/, 모드나 데이터 팩이 바닐라 옆에 자신만의 네임스페이스를 추가할 수 있게 존재하는 구조야. Bedrock에는 그런 개념이 없고 텍스처를 루트 가까이에 두지.
Java Bedrock
pack.mcmeta manifest.json
pack.png pack_icon.png
assets/ textures/
└── minecraft/ ├── blocks/
└── textures/ └── items/
├── block/
└── item/단수와 복수 차이도 알아둬. Java는 block/ 그리고 item/, Bedrock은 blocks/ 그리고 items/. 폴더 이름 안 바꾸고 파일만 덜렁 복사하면 어느 쪽 게임도 찾지 못하는 곳에 텍스처가 들어가 버려.
다른 메타데이터 파일
Java가 팩을 식별하는 방식은 pack.mcmeta 그리고 단 하나의 pack_format 숫자. Bedrock은 manifest.json, 진짜 UUID랑 버전 배열이 필요해:
{
"format_version": 2,
"header": {
"name": "My pack",
"description": "",
"uuid": "<unique uuid>",
"version": [1, 0, 0],
"min_engine_version": [1, 21, 0]
},
"modules": [
{
"type": "resources",
"uuid": "<a different unique uuid>",
"version": [1, 0, 0]
}
]
}그 두 UUID는 서로 달라야 하고 설치된 다른 모든 팩과도 달라야 해. 남의 팩을 시작점으로 복사해 놓고 이걸 새로 만드는 걸 깜빡하면, 팩을 가져오긴 했는데 목록에 절대 안 뜨는 흔한 원인이 돼. Bedrock은 이걸 복사해 온 팩의 중복으로 보거든.
다른 파일 이름
두 버전 다 똑같은 블록이 있어도 텍스처 이름이 확실히 똑같지 않은 경우가 많고, 각자 상대방에게 없는 콘텐츠를 추가하면서 시간이 흐를수록 더 멀어졌어. 이름을 변환하는 일반적인 규칙 같은 건 없고, 변환하는 게 아니라 그냥 찾아봐야 하는 거야.
다른 배포 방식
Java 팩은 평범한 .zip 파일을 폴더에 넣었을 때. Bedrock 팩은 .mcpack — 역시 zip 파일이지만 게임이 인식하는 확장자가 있어서, 파일을 열면 Minecraft한테 넘겨서 가져오게 해 주지. 그래서 Bedrock 설치는 "파일 열기"가 되고 Java 설치는 "파일 이동"이 되는 거야. 자세한 건 설치 가이드.
Java는 못 하고 Bedrock만 할 수 있는 것
둘 다 지원하기
정직한 원클릭 변환 같은 건 없어. 현실적인 방법은 아트워크는 공유하고 패키징은 버전별로 따로 하는 거야. 텍스처를 한 번 디자인한 다음, 각 버전의 레이아웃, 메타데이터, 파일 이름을 따로 만들어내는 거지.
이게 바로 편집기 이 알아서 해줄 거야. 에디터에서 버전을 골르고 내보내면 똑같은 작업을 다른 버전용으로 또 내보낼 수 있어. Java는 알맞은 pack_format; Bedrock은 새로 만든 매니페스트가 포함된 .mcpack으로 나와서 UUID 충돌 문제가 절대 안 생겨.
