BLP 파일이란 무엇인가
BLP 파일은 블리자드 엔터테인먼트(Blizzard Entertainment)가 개발한 독자적인 그래픽 파일 형식입니다. Blizzard Texture File의 약자로, 주로 월드 오브 워크래프트(World of Warcraft), 워크래프트 III(Warcraft III), 디아블로(Diablo) 시리즈와 같은 게임에서 텍스처 이미지를 저장하는 데 사용됩니다. 이 형식은 게임 내에서 질감 있는 표면, 캐릭터 외형, 배경 요소 등을 표현하기 위해 설계되었으며, 높은 압축 효율과 빠른 로딩 성능을 제공합니다. 일반적인 이미지 형식(JPEG, PNG)과 달리 BLP는 게임 엔진에 최적화되어 있어 미리 계산된 여러 해상도의 이미지(밉맵)를 하나의 파일에 담을 수 있습니다. 또한 알파 채널을 지원하여 투명도가 필요한 오브젝트에도 활용됩니다. BLP 파일은 일반 사용자에게는 생소할 수 있지만, 게임 모딩(Modding) 커뮤니티나 블리자드 게임을 커스터마이징하는 개발자에게는 매우 중요한 파일입니다.
BLP 파일의 역사와 버전
BLP 형식은 2002년 워크래프트 III: 레인 오브 카오스(Warcraft III: Reign of Chaos) 출시와 함께 처음 등장했습니다. 초기 버전은 BLP0, BLP1, BLP2로 나뉩니다. BLP0는 가장 오래된 버전으로 제한된 기능을 제공했으며, BLP1은 워크래프트 III와 월드 오브 워크래프트에서 널리 사용되었습니다. BLP1은 최대 해상도가 512x512 픽셀로 제한되는 단점이 있었습니다. 이후 확장팩 프로즌 쓰론(The Frozen Throne)과 함께 BLP2가 도입되었습니다. BLP2는 해상도 제한을 65535픽셀까지 확장하고 더 다양한 압축 방식을 지원하여 게임의 그래픽 품질을 크게 향상시켰습니다. 현재는 대부분의 블리자드 게임에서 BLP2가 표준으로 사용되며, 특히 월드 오브 워크래프트의 최신 확장팩에서도 이 형식이 계속 쓰이고 있습니다. 블리자드는 공식적으로 BLP 사양을 완전히 공개하지 않았지만, 오픈 소스 도구와 커뮤니티의 노력으로 파일 구조가 상세히 분석되었습니다.
BLP 파일의 구조와 기술적 특징
BLP 파일은 특정한 바이너리 구조를 가집니다. 파일의 첫 4바이트는 시그니처로 'BLP1' 또는 'BLP2'의 ASCII 문자열입니다. 그 뒤를 이어 메인 헤더가 위치하며, 파일 버전, 텍스처 유형, 압축 방식, 이미지 크기, 밉맵 개수 등이 저장됩니다. BLP는 주로 두 가지 압축 방식을 사용합니다.

- 팔레트 기반 압축: 256색 팔레트(BGRA 8888)를 사용하여 각 픽셀을 8비트 인덱스로 저장합니다. 이 방식은 적은 색상 수로도 좋은 화질을 유지할 수 있어 초기 게임에 적합했습니다.
- DXT 압축: DXT1, DXT3, DXT5 같은 S3TC(S3 Texture Compression) 방식을 사용합니다. 이는 RGB와 알파 데이터를 블록 단위로 압축하여 용량을 줄이면서도 높은 품질을 유지합니다. DXT1은 1비트 알파, DXT3는 4비트 알파, DXT5는 8비트 알파를 지원합니다.
또한 BLP 파일은 항상 여러 개의 밉맵(mipmap)을 포함합니다. 밉맵은 원본 이미지를 1/2, 1/4, 1/8 식으로 축소한 복사본으로, 게임이 물체와의 거리에 따라 적절한 해상도의 텍스처를 선택하여 성능을 최적화합니다. 각 밉맵은 파일 내에 순서대로 저장되며, 마지막 밉맵은 1x1 픽셀 크기입니다. 알파 채널은 선택 사항이며, 파일 헤더에서 알파 깊이(0, 1, 4, 8비트)를 지정합니다. BLP2에서는 추가로 플래그 필드가 도입되어 텍스처의 용도(예: 큐브 맵, 노멀 맵)를 명시할 수 있습니다.
BLP 파일을 여는 프로그램
BLP 파일은 일반 그래픽 뷰어로는 열 수 없습니다. 전용 도구나 플러그인이 필요합니다. 아래는 주요 프로그램과 특징을 정리한 표입니다.
| 프로그램 | 지원 버전 | 특징 |
|---|---|---|
| XnView | BLP1, BLP2 | 무료 이미지 뷰어, 플러그인 설치 필요, 내보내기 가능 |
| Addon Studio for World of Warcraft | BLP1, BLP2 | 오픈 소스, WoW 애드온과 텍스처 편집에 특화 |
| BLP Converter (BLP2PNG 등) | BLP1, BLP2 | 명령줄 기반 변환 도구, 배치 작업에 유용 |
| GIMP + BLP 플러그인 | BLP1, BLP2 | 무료 이미지 편집기, 플러그인 추가 시 BLP 읽기/쓰기 가능 |
이 외에도 wowdev 위키에서 제공하는 라이브러리를 활용하면 직접 파서를 만들 수도 있습니다. 대부분의 도구는 BLP를 PNG, TGA, JPEG 같은 일반 형식으로 변환하거나 그 반대로 변환하는 기능을 지원합니다. Windows 기본 뷰어로는 열 수 없으므로 위 도구 중 하나를 설치해야 합니다.

BLP 파일 변환 방법
게임 모드를 만들거나 텍스처를 수정하려면 BLP 파일을 편집 가능한 형식으로 변환해야 합니다. 가장 일반적인 방법은 PNG로 변환하는 것입니다. 아래는 단계별 프로세스입니다. 첫째, BLP 변환 전용 프로그램을 다운로드합니다. BLPLab이나 BLPConverter 같은 무료 도구가 많이 있습니다. 둘째, 변환하려는 BLP 파일을 프로그램에 로드합니다. 셋째, 출력 형식(PNG, TGA, DDS 등)과 해상도를 선택합니다. 주의할 점은 밉맵까지 보존하려면 DDS 형식을 사용하는 것이 좋습니다. 넷째, 변환을 실행하고 저장합니다. 반대로 PNG나 다른 이미지를 BLP로 만들고 싶다면, 같은 도구에서 역변환 기능을 사용하면 됩니다. 단, BLP 사양을 완전히 만족하려면 이미지 크기를 2의 제곱(예: 256, 512, 1024)으로 맞추고 알파 채널을 적절히 처리해야 합니다. Hive Workshop의 BLP 명세를 참고하면 자세한 제약 조건을 알 수 있습니다.
BLP 파일의 다양한 사용처
BLP는 블리자드 게임 외에도 일부 다른 소프트웨어에서 사용됩니다. 예를 들어 퍼즐 게임 Speedy Eggbert에서 .blp 확장자를 가진 데이터 파일이 사용되지만, 이는 블리자드 형식과는 전혀 다른 구조입니다. 하지만 대부분의 사용자는 블리자드 게임을 위해 BLP를 다룹니다. 특히 월드 오브 워크래프트에서는 사용자 인터페이스(UI) 스킨, 미니맵, 캐릭터 외형 변경 등에 BLP 텍스처가 활용됩니다. 워크래프트 III의 커스텀 맵 제작자들은 맵의 지형 타일, 유닛 아이콘, 버튼 이미지를 BLP로 제작하여 게임에 삽입합니다. 디아블로 III에서도 일부 텍스처는 여전히 BLP 형식을 사용합니다. 따라서 게임 모딩에 관심이 있다면 BLP 파일을 이해하고 변환할 줄 아는 것이 필수적입니다.
자주 묻는 질문
Q: BLP 파일을 웹에서 바로 볼 수 있나요? A: 일반 웹 브라우저는 BLP를 지원하지 않습니다. 온라인 변환기를 사용해 PNG로 바꾼 후 보거나 전용 뷰어를 설치해야 합니다.

Q: BLP 파일의 용량이 큰 이유는 무엇인가요? A: 여러 밉맵을 포함하기 때문입니다. 하나의 BLP 파일 안에 수많은 해상도의 이미지가 들어 있어 전체 용량이 커지지만, 게임 실행 시 성능 최적화에 도움이 됩니다.
Q: BLP 파일을 만들 때 이미지 크기 제한이 있나요? A: BLP1은 512x512, BLP2는 65535x65535까지 가능하지만, 실제 게임 엔진에서 지원하는 크기는 게임마다 다릅니다. 1024x1024 이하를 권장합니다.
Q: 알파 채널이 없는 BLP 파일은 어떻게 처리하나요? A: 투명도가 필요하지 않은 텍스처는 알파 채널 없이 DXT1 압축을 사용합니다. 변환 시 알파를 무시하면 됩니다.

참고 자료
이 글을 작성하는 데 다음 자료를 참고하였습니다.
wowdev Wiki - BLP: https://wowdev.wiki/BLP (기술적 상세 구조 및 압축 방식 설명)
Just Solve the File Format Problem: http://justsolve.archiveteam.org/wiki/BLP (BLP2 시그니처 확인 및 블리자드 기원)

Solvusoft: https://www.solvusoft.com/en/file-extensions/file-extension-blp/ (워크래프트 III 연관성 및 파일 연결)
Hive Workshop: https://www.hiveworkshop.com/threads/blp-specifications-wc3.279306/ (BLP0/BLP1 해상도 제한 및 버전 상세)
Small chat 참고: Speedy Eggbert 데이터 파일과의 차이점





