아이템 필터 등 모드를 적용할 때 애를 먹는 이유가 mpq 파일 구조에 대한 이해가 부족해서 그런 경우가 많은 것 같습니다. 개념을 한 번 잡고 가면 손쉽게 적용할 수 있는 것은 물론 다른 모드들을 서로 짬뽕시켜 이용하는 경우에도 많은 도움이 될 수 있으니 꼭 한 번 보고 가세요!
목차
mpq 포맷이란
블리자드에서 개발한 독자적인 압축 포맷입니다. 이 파일 안에 게임에 필요한 모든 데이터들을 다 집어 넣어 관리하고 있습니다. 최근에 CACS(Content Addressable Storage Container) 포맷으로 바뀌었다고 하는데 모드에서는 mpq 포맷을 그대로 사용할 수 있네요. 찾아보면 상세한 설명이 많이 나오긴 하지만 이 정도만 알고 넘어가도 될 듯 싶습니다.
원본 게임 데이터 구성 살펴보기
앞서 언급했듯이 최근에는 CACS 구조로 이루어져 있는데요. Ladik's Casc Viewer를 통해 디아블로2 레저렉션 압축 포맷 내부를 들여다 볼 수 있습니다.
상세한 방법은 아래 글에 잘 나와 있습니다.
데이터 원본의 폴더 구조는 대략적으로 다음과 같이 이루어져 있습니다. 여기에 모든 게임 데이터가 들어 있습니다. 쉽게 이해할 수 있는 부분도 있고 그렇지 않은 부분도 있습니다. 모드에서 이 구성을 그대로 가져가므로 해당 내용을 얼마나 잘 이해하느냐에 따라 모드의 질과 다양성이 결정된다고 볼 수 있겠습니다.
모드 mpq 파일 내부 살펴보기
먼저 MPQ Editor를 다운 받아야 합니다.
GitHub/HighTechLowIQ/ModdingDiablo2Resurrected/blob/master/Tools/mpqeditor_en.zip
직접 업로드도 해 놓겠습니다.
압축을 풀면 나오는 x64 폴더의 MPQEditor.exe 파일을 실행해 보겠습니다.
여기서 제가 만든 예시 모드인 custom.mpq 파일을 한 번 살펴 보겠습니다.
MPQs > Open MPQ(s)를 선택하시면 됩니다.
custom.mpq 파일 안에는 다음과 같은 구조로 폴더가 구성되어 있습니다. 어디서 많이 본 폴더 구조이지 않나요?
맞습니다. 원본 데이터 구조와 완전히 동일합니다. 우리는 필요한 부분만 가져와서 수정하고 원본과 동일한 위치에 동일한 파일을 만든 모드에 가져다 놓으면 됩니다. 명령줄 인수를 통해 이 모드가 있다는 것을 알리면 원본 데이터를 무시하고 모드의 동일한 위치에 있는 파일을 우선적으로 적용하는 개념인 것입니다.
MPQ Editor를 통해 mpq 포맷 내에 필요한 파일을 추가 및 삭제를 할 수 있습니다.
mpq 포맷과 단순 폴더 구조 비교
그런데 여러 모드들을 보다 보면 mpq 파일이 없는 모드들도 있습니다. 대체 왜 그런걸까요?
우리가 보통 보던 구조는 게임 설치 경로\mods\모드이름 안에 모드이름.mpq 파일이었죠.
잘 살펴보면 어떤 모드에서는 mpq 파일이 있는 대신에 파일 명과 동일한 폴더(게임 설치 경로\mods\모드이름 안에 모드이름.mpq 폴더)가 존재하고 있습니다.
한 가지 더 살펴 보면 custom.mpq 파일에서는 모드 정보가 있는 modinfo.json 파일이 가장 상위에 위치해 있는 것을 확인할 수 있습니다.
폴더 구조에서는 custom.mpq 폴더 바로 아래 modinfo.json 파일이 있습니다. 파일 내부와 같죠.
예상하셨겠지만 MPQ Editor를 이용하여 custom.mpq 파일을 만들어 적용하든 그냥 custom.mpq 라는 폴더를 만들어서 적용하든 이 두 가지는 동일하게 적용이 됩니다. 상당히 유사한 구조로 구성이 되어 있긴 하지만 엄연히 이 둘은 다른 형태입니다. 디아블로2 레저렉션의 모드 기능에서 동일하게 인식시켜 주고 있는 것 뿐입니다.
정리하기
이러한 구조만 잘 이해하면 mpq 포맷 파일을 추출하여 폴더 형태로 만들어서 나만의 모드를 구성할 수도 있고 반대로 mpq 폴더를 mpq 포맷 파일로 만들어서 모드를 단일 파일로 관리할 수도 있을 것입니다.
다음 사항을 잘 기억하시기 바랍니다.
1. 원본 데이터 구조와 모드 내부 데이터 구조는 완전 동일하다.
2. 모드에서 mpq 파일과 mpq 폴더는 동일한 개념으로 인식한다.
'디아블로2 레저렉션 > 모드(MOD) 정보' 카테고리의 다른 글
디아블로2 레저렉션 활(화살) 이펙트 변경 방법 (모드) (28) | 2021.10.24 |
---|---|
디아블로2 레저렉션 인트로 동영상 건너뛰기 (모드) (4) | 2021.10.23 |
디아블로2 레저렉션 캐릭터 외형 변경을 위한 texture 파일 수정 (10) | 2021.10.23 |
디아블로2 레저렉션 아이템 줍기 전에 홈(소켓)과 무형(에테리얼) 구분하기 (18) | 2021.10.22 |
디아블로2 레저렉션 아이템 필터 부가 설명 줄바꿈 하는 방법 (7) | 2021.10.21 |
디아블로2 레저렉션 매직, 레어, 세트, 유니크 기본 색상 변경하기 (20) | 2021.10.20 |
디아블로2 레저렉션 sprite 룬 이미지 수정하기 (21) | 2021.10.19 |
디아블로2 레저렉션 유니크 샤코 색상 변경하기 (68) | 2021.10.18 |
댓글