BlueMap
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 봇을 통해 맵 스크린샷 전송 가능