분류:
BlueMap은 마인크래프트 서버의 월드를 실시간 3D 웹맵으로 렌더링하는 플러그인이다. 고품질의 3차원 맵을 웹 브라우저에서 볼 수 있으며, 플레이어 위치와 마커 기능을 지원한다.
주요 기능
3D 렌더링
- 실시간 3D 월드 렌더링
- 부드러운 카메라 이동과 회전
- 높은 디테일의 블록 모델
- 동적 조명 효과
웹 인터페이스
- 반응형 웹 디자인
- 모바일 기기 지원
- 직관적인 컨트롤
- 다크/라이트 테마
실시간 업데이트
- 블록 변경사항 자동 반영
- 플레이어 위치 실시간 표시
- 라이브 채팅 연동
- 마커 시스템
명령어
| 명령어 | 설명 | 권한 |
|---|---|---|
| /bluemap reload | 설정 리로드 | bluemap.command.reload |
| /bluemap render <월드> | 월드 렌더링 시작 | bluemap.command.render |
| /bluemap stop | 렌더링 중지 | bluemap.command.stop |
| /bluemap purge <맵> | 맵 데이터 삭제 | bluemap.command.purge |
| /bluemap marker create <id> | 마커 생성 | bluemap.command.marker |
| /bluemap freeze <맵> | 맵 업데이트 중지 | bluemap.command.freeze |
| /bluemap debug | 디버그 정보 | bluemap.command.debug |
설정
# bluemap.conf 주요 설정
accept-download: true # EULA 동의
web-server {
enabled: true
port: 8100
ip: "0.0.0.0"
max-connection-count: 100
}
render-threads: 2 # 렌더링 스레드 수
metrics: true # 통계 수집
maps [
{
id: "world"
name: "오버월드"
world: "world"
# 렌더링 설정
render-distance: 10
min-y: -64
max-y: 320
# 초기 카메라 위치
start-pos: {x: 0, y: 100, z: 0}
# 렌더링 품질
hires-tiles {
resolution: 32
view-distance: 4.5
}
lowres-tiles {
resolution: 1024
view-distance: 200
}
}
]
마커 시스템
마커 생성
# markers.yml
markers:
spawn:
type: POI # Point of Interest
position: {x: 0, y: 64, z: 0}
label: "스폰 지점"
icon: "home"
shop:
type: POI
position: {x: 100, y: 70, z: -50}
label: "중앙 상점"
icon: "shopping-cart"
detail: "모든 아이템을 구매할 수 있습니다"
region:
type: SHAPE
shape: "rectangle"
corners: [{x: -100, z: -100}, {x: 100, z: 100}]
label: "보호 구역"
color: "#00FF00"
fill-opacity: 0.3
마커 아이콘
# 사용 가능한 기본 아이콘 - home: 집 - shopping-cart: 상점 - flag: 깃발 - star: 별 - warning: 경고 - info: 정보 - users: 모임 장소 - landmark: 랜드마크
플레이어 표시 설정
# players.conf
players {
enabled: true
update-interval: 1 # 초
# 플레이어 숨기기
hide-invisible: true
hide-spectators: true
hide-vanished: true
# 플레이어 정보 표시
show-name: true
show-head: true
show-direction: true
# 권한별 설정
groups {
default {
visible: true
marker-color: "#FFFFFF"
}
vip {
visible: true
marker-color: "#FFD700"
}
}
}
성능 최적화
# 성능 관련 설정
performance {
# 청크 업데이트 감지
update-detection {
enabled: true
interval: 30 # 초
}
# 렌더링 우선순위
render-priority {
spawn-area: HIGH
player-activity: MEDIUM
default: LOW
}
# 리소스 제한
limits {
max-tiles-per-render: 1000
max-memory-usage: 2048 # MB
}
}
웹서버 커스터마이징
# 웹 인터페이스 설정
web-config {
# 언어 설정
language: "ko_KR"
# UI 테마
default-theme: "dark"
# 기본 맵
default-map: "world"
# 컨트롤 설정
controls {
zoom-speed: 2
rotation-speed: 1.5
pan-speed: 1
}
# 추가 기능
features {
search: true
coordinates: true
compass: true
minimap: true
}
}
고급 기능
리소스팩 지원
# 커스텀 리소스팩 적용
resource-pack {
enabled: true
path: "resourcepacks/custom.zip"
# 블록 모델 오버라이드
block-models {
"minecraft:chest": "custom:fancy_chest"
}
}
API 엔드포인트
BlueMap은 REST API를 제공한다:
- /maps - 맵 목록
- /maps/{map}/players - 플레이어 위치
- /maps/{map}/markers - 마커 정보
- /maps/{map}/tiles - 타일 데이터
활용 예시
- 서버 홍보: 웹사이트에 3D 맵 임베드
- 건축 전시: 건축물 갤러리 구성
- 이벤트 안내: 마커로 이벤트 장소 표시
- 영토 관리: 팩션이나 타운 영역 시각화
문제 해결
- 렌더링이 느림: render-threads 증가, 해상도 조정
- 웹맵 접속 불가: 방화벽 포트 확인
- 메모리 부족: lowres 타일 해상도 감소
- 블록이 표시되지 않음: 리소스팩 호환성 확인
단점
Dynmap과 비교했을 때 맵 서비스를 위한 타일의 용량이 지나치게 비대해 맵 용량 보다 BlueMap의 맵 데이터가 더 큰 경우가 있다. 특히 외부 인스턴스에 의존했을 때 막대한 디스크 및 트래픽 비용을 발생시킬 수 있다는 것이 최대 단점이다.
다른 플러그인과의 연동
- GriefPrevention: 클레임 영역 표시
- WorldGuard: 보호 구역 경계 표시
- Towny: 마을 영역 시각화
- DiscordSRV: Discord에 맵 링크 공유[1]
- ↑ Discord 봇을 통해 맵 스크린샷 전송 가능