Dynmap은 마인크래프트에서 웹 지도를 렌더링하고 사용할 수 있게 해주는 플러그인이다. 다이나믹맵이라고도 부른다. 서버의 지도를 웹으로 볼 수 있기 때문에 건축 서버에서 특히 유용한 플러그인이다.

특징

지도 렌더링 플러그인인 만큼 서버 자원을 많이 소모한다는 것이 특징이다. 그렇기 때문에 대형 서버에서는 일정 수준 이상의 서버 성능을 필요로 할 수 있다.

다이나믹맵은 각 청크를 배율별로 사진 찍듯 렌더링하는 방식이기 때문에 서버에 각기 다른 이미지 파일로 저장되며, 따라서 맵이 큰 서버의 경우 렌더링 시간이 오래 걸리는 것은 물론 서버에 저장되는 파일 수도 기하급수적으로 늘어나 서버 이전 또는 파일 삭제에 애를 먹을 수도 있다. 향후 다이나믹맵 렌더링 이미지 타일을 삭제하거나 이동시킬 때는 SSD를 사용하는 것이 속도 향상에 도움이 될 것이다.

설정

웹 설정

내부 서버를 사용하는 경우

마인크래프트 서버를 구동하는 서버와 다이나믹맵이 렌더링한 타일과 웹 구성 파일을 저장하는 서버가 동일한 경우를 말한다. 대부분의 사례가 이에 해당할 것이며, 플러그인을 설치하고 별도의 설정을 하지 않았다면 기본적으로 플러그인 폴더 내에 웹 구성 파일과 맵 타일 이미지가 저장된다.

외부 서버를 사용하는 경우

반면에 외부 서버를 이용해 마인크래프트 서버를 구동하는 컴퓨터와 다른 서버에서 웹 지도를 운영할 수도 있는데, 다이나믹맵 서버를 굴리기 위해서는 어느 정도 감당 가능한 트래픽 용량과 성능이 필요하다는 것을 감안하여야 한다. 만약 서버가 켜져있지 않은 상태에서도 웹 지도를 계속 구동하고 싶다면 본 문단에서 소개하는 방법을 사용하면 된다. 물론 지도 타일 이미지가 별도 서버에 저장되는 만큼 서버 파일 이동도 비교적 자유롭다.

이 문단은 백엔드 웹 개발에 대한 지식을 어느정도 갖추었다는 가정하에 작성되었습니다.

MySQL/MariaDB 설정하기

데이터베이스 기능을 활용하기 위해서는 MySQL 또는 MariaDB[1] 설정이 필요합니다.

데이터베이스 만들기

다음 쿼리 문을 이용해 데이터베이스를 생성해줍니다.

mysql -u 유저이름 -p 비밀번호(존재할 경우)

mysql> CREATE DATABASE 생성할데이터베이스이름;

mysql> exit

Dynmap 플러그인 설치

마인크래프트 서버에 Dynmap 플러그인을 설치하고 서버 실행 후 종료합니다.

configuration.txt 파일 수정

다이나믹맵 플러그인 폴더 내에 있는 configuration.txt을 수정합니다. 만일을 대비해 수정하기 전 파일을 미리 다른 곳에 백업해주세요.

수정 전:

storage:
  # Filetree storage (standard tree of image files for maps)
  type: filetree
  # SQLite db for map storage (uses dbfile as storage location)
  #type: sqlite
  #dbfile: dynmap.db
  # MySQL DB for map storage (at 'hostname':'port' with flags "flags" in database 'database' using user 'userid' password 'password' and table prefix 'prefix')
  #type: mysql
  #hostname: localhost
  #port: 3306
  #database: dynmap
  #userid: dynmap
  #password: dynmap
  #prefix: ""
  #flags: "?allowReconnect=true"

수정 후:

storage:
  # Filetree storage (standard tree of image files for maps)
  #type: filetree <- 꼭 주석 처리하세요!
  # SQLite db for map storage (uses dbfile as storage location)
  #type: sqlite
  #dbfile: dynmap.db
  # MySQL DB for map storage (at 'hostname':'port' with flags "flags" in database 'database' using user 'userid' password 'password' and table prefix 'prefix')
  type: mysql
  hostname: <mysql 서버 ip주소>
  port: <mysql 서버포트: 대개 3306>
  database: <앞서 생성했던 데이터베이스 이름>
  userid: <mysql 사용자명>
  password: <mysql 사용자비밀번호>
  prefix: "" #접두어를 달고 싶다면 이 부분을 수정하세요.
  flags: "?allowReconnect=true"

컴포넌트 설정 변경하기

configuration.txt 폴더에서

- class: org.dynmap.InternalClientUpdateComponent

이 부분을 찾아 다음과 같이 수정합니다.

모두 주석 처리해주는 것입니다.

수정 전:

  - class: org.dynmap.InternalClientUpdateComponent
    sendhealth: true
    sendposition: true
    allowwebchat: true
    webchat-interval: 5
    hidewebchatip: true
    trustclientname: false
    includehiddenplayers: false
    # (optional) if true, color codes in player display names are used
    use-name-colors: false
    # (optional) if true, player login IDs will be used for web chat when their IPs match
    use-player-login-ip: true
    # (optional) if use-player-login-ip is true, setting this to true will cause chat messages not matching a known player IP to be ignored
    require-player-login-ip: false
    # (optional) block player login IDs that are banned from chatting
    block-banned-player-chat: true
    # Require login for web-to-server chat (requires login-enabled: true)
    webchat-requires-login: false
    # If set to true, users must have dynmap.webchat permission in order to chat
    webchat-permissions: false
    # Limit length of single chat messages
    chatlengthlimit: 256
  # # Optional - make players hidden when they are inside/underground/in shadows (#=light level: 0=full shadow,15=sky)
  # hideifshadow: 4
  # # Optional - make player hidden when they are under cover (#=sky light level,0=underground,15=open to sky)
  # hideifundercover: 14
  # # (Optional) if true, players that are crouching/sneaking will be hidden
    hideifsneaking: false
    # If true, player positions/status is protected (login with ID with dynmap.playermarkers.seeall permission required for info other than self)
    protected-player-info: false
    # If true, hide players with invisibility potion effects active
    hide-if-invisiblity-potion: true
    # If true, player names are not shown on map, chat, list
    hidenames: false

수정 후:

 # - class: org.dynmap.InternalClientUpdateComponent
    #sendhealth: true
    #sendposition: true
    #allowwebchat: true
    #webchat-interval: 5
    #hidewebchatip: false
    #trustclientname: false
    #includehiddenplayers: false
    # (optional) if true, color codes in player display names are used
    #use-name-colors: false
    # (optional) if true, player login IDs will be used for web chat when their IPs match
    #use-player-login-ip: true
    # (optional) if use-player-login-ip is true, setting this to true will cause chat messages not matching a known player IP to be ignored
    #require-player-login-ip: false
    # (optional) block player login IDs that are banned from chatting
    #block-banned-player-chat: true
    # Require login for web-to-server chat (requires login-enabled: true)
    #webchat-requires-login: false
    # If set to true, users must have dynmap.webchat permission in order to chat
    #webchat-permissions: false
    # Limit length of single chat messages
    #chatlengthlimit: 256
  # # Optional - make players hidden when they are inside/underground/in shadows (#=light level: 0=full shadow,15=sky)
  # hideifshadow: 4
  # # Optional - make player hidden when they are under cover (#=sky light level,0=underground,15=open to sky)
  # hideifundercover: 14
  # # (Optional) if true, players that are crouching/sneaking will be hidden
    #hideifsneaking: false
    # If true, player positions/status is protected (login with ID with dynmap.playermarkers.seeall permission required for info other than self)
    #protected-player-info: false
    # If true, hide players with invisibility potion effects active
    #hide-if-invisiblity-potion: true
    # If true, player names are not shown on map, chat, list
    #hidenames: false

그 다음 바로 아래에 있는 항목의 주석 처리를 제거해줍니다.

수정 전:

  #- class: org.dynmap.JsonFileClientUpdateComponent
  # writeinterval: 1
  # sendhealth: true
  # sendposition: true
  # allowwebchat: true
  # webchat-interval: 5
  # hidewebchatip: false
  # includehiddenplayers: false
  # use-name-colors: false
  # use-player-login-ip: false
  # require-player-login-ip: false
  # block-banned-player-chat: true
  # hideifshadow: 0
  # hideifundercover: 0
  # hideifsneaking: false
  # # Require login for web-to-server chat (requires login-enabled: true)
  # webchat-requires-login: false
  # # If set to true, users must have dynmap.webchat permission in order to chat
  # webchat-permissions: false
  # # Limit length of single chat messages
  # chatlengthlimit: 256
  # hide-if-invisiblity-potion: true
  # hidenames: false

수정 후:

  - class: org.dynmap.JsonFileClientUpdateComponent
    writeinterval: 1
    sendhealth: true
    sendposition: true
    allowwebchat: true
    webchat-interval: 5
    hidewebchatip: false
    includehiddenplayers: false
    use-name-colors: false
    use-player-login-ip: false
    require-player-login-ip: false
    block-banned-player-chat: true
    hideifshadow: 0
    hideifundercover: 0
    hideifsneaking: false
  # # Require login for web-to-server chat (requires login-enabled: true)
    webchat-requires-login: false
  # # If set to true, users must have dynmap.webchat permission in order to chat
    webchat-permissions: false
  # # Limit length of single chat messages
    chatlengthlimit: 256
    hide-if-invisiblity-potion: true
    hidenames: false

Dynmap 내부 서버 중지하기

configuration.txt 파일에서 disable-webserver 항목을 찾아 falsetrue로 바꿔줍니다.

Web Sever URL 변경

수정 전:

url:
    # configuration URL
    #configuration: "up/configuration"
    # update URL
    #update: "up/world/{world}/{timestamp}"
    # sendmessage URL
    #sendmessage: "up/sendmessage"
    # login URL
    #login: "up/login"
    # register URL
    #register: "up/register"
    # tiles base URL
    #tiles: "tiles/"
    # markers base URL
    #markers: "tiles/"

수정 후:

url:
    # configuration URL
    configuration: "웹서버주소/MySQL_configuration.php"
    # update URL
    update: "웹서버주소/MySQL_update.php?world={world}&ts={timestamp}"
    # sendmessage URL
    sendmessage: "웹서버주소/MySQL_sendmessage.php"
    # login URL
    login: "웹서버주소/MySQL_login.php"
    # register URL
    register: "웹서버주소/MySQL_register.php"
    # tiles base URL
    tiles: "웹서버주소/MySQL_tiles.php?tile="
    # markers base URL
    markers: "웹서버주소/MySQL_markers.php?marker="

웹서버주소는 해당 파일이 위치한 경로를 정확하게 입력하여야 합니다.

서버 구동 후 종료

서버 구동 후 정상 작동하는지 확인한 다음 다시 종료합니다.

로그인 기능 활성화하려면

다이나믹맵 로그인 기능을 활성화하려면 SSL을 설치합니다.

마커 설정

Dynmap은 지도에 의해 렌더링된 것 이상의 내용을 지도에 추가하는 메커니즘을 지원합니다. 이 내용은 Markers라고 일괄적으로 언급되며, 마커(마커 아이콘), 마커 영역, 마커 폴리라인으로 구성됩니다.

플레이시티 블록에서 사용하는 마커 설정을 참조하려면 문서 하단 플레이시티 블록 설정 문단을 참조하십시오.

마커 세트

마커는 Marker Sets이라고 불리는 컬렉션으로 수집되고 구성됩니다. 각 마커 세트는 레이블이 지정된 레이어로, 웹 UI의 레이어 선택자를 사용하여 선택할 수 있습니다. 모든 마커는 특정 마커 세트 내에 포함됩니다. 기본적으로 항상 최소한 하나의 마커 세트가 있으며, 이는 Markers라고 레이블이 지정되고, 다른 마커 세트에 특정으로 할당되지 않은 모든 마커를 포함하는 데 사용됩니다. 마커 세트를 삭제하면 세트 내의 모든 마커가 삭제됩니다.

/dmarker addset <markerset-label> 또는 /dmarker addset id:<markerset-id> 명령어를 사용하여 새로운 마커 세트를 생성할 수 있습니다. 추가 매개변수를 사용하여 세트의 동작을 세밀하게 조정할 수 있습니다: prio:<N>은 레이어 제어에서 다른 세트에 비해 레이어 순서를 제어하는 데 사용됩니다; hide:<true|false>는 세트가 기본적으로 보이는지(체크됨) 또는 숨겨져 있는지(체크 해제) 제어하는 데 사용됩니다; minzoom:<N>은 특정 줌 레벨이 선택될 때까지 세트 내의 마커를 숨기는 데 사용됩니다.

기존 마커 세트의 설정은 /dmarker updateset <markerset-label> 또는 /dmarker updateset id:<markerset-id> 명령어를 사용하여 변경할 수 있으며, 이 때 prio:<N>, hide:<true|false> 또는 newlabel:<new-label>이 매개변수로 사용됩니다.

0.32버전 이후로, showlabels:<true|false|null> 설정이 지원됩니다. 이 설정은 true 또는 false일 때 마커 레이블의 가시성을 활성화하거나 비활성화합니다(비활성화된 가시성은 마우스 커서가 마커 위에 놓일 때만 레이블을 보여줍니다). null 값은 전역 기본 동작을 사용합니다(이는 configuration.txt의 markers 컴포넌트에서 showlabels 설정에 의해 정의됩니다).

마커 세트(기본 마커 세트인 Markers 제외)는 /dmarker deleteset <markerset-label> 또는 /dmarker deleteset id:<markerset-id> 명령어를 사용하여 삭제할 수 있습니다.

마커

마커는 가장 일반적인 맵 마커로, 관련 레이블과/또는 연관 설명 팝업이 있는 간단한 아이콘입니다. 각 마커는 세계 좌표(X, Y, Z 및 월드 ID)에 정의된 위치, 마커 아이콘 ID, 레이블, 그리고 선택적 설명을 가지고 있습니다. 마커 아이콘 ID는 이 페이지 하단에 표시된 표준 마커 ID 중 하나일 수도 있고, 설치된 아이콘에 해당할 수도 있습니다(아래 마커 아이콘 문단 참조).

마커는 다음 두 가지 방법 중 하나를 통해 추가될 수 있습니다:

  • /dmarker add <marker-label> icon:<icon-id> set:<markerset-id> - 이것은 로그인한 플레이어에 의해 작성되어야 하며, 플레이어의 현재 위치에서 마커를 정의하게 합니다. set가 정의되지 않으면, 마커는 기본 마커 세트인 Markers에 포함됩니다. icon이 정의되지 않으면, 기본 마커 아이콘을 사용합니다(default, house).
  • /dmarker add id:<marker-id> <marker-label> icon:<icon-id> set:<markerset-id> x:<x-coord> y:<y-coord> z:<z-coord> world:<Worldname> - 위와 동일하나, 마커의 고유 ID, 위치 및 월드가 지정되어 있어 콘솔에서도 실행할 수 있습니다.
  • 표시판 사용: markers 컴포넌트의 enablesigns 설정이 true이면, 적절한 권한(dynmap.marker.sign)을 가진 사용자는 특별히 레이블이 지정된 표시판을 사용하여 마커를 생성할 수 있습니다. 이를 사용하려면, 표시판의 첫 번째 줄은 반드시 [dynmap]이어야 합니다. 그 이후에는 비어 있지 않은 모든 줄이 마커의 레이블에 포함되며, set:<markerset-id>(마커를 특정 마커 세트에 추가할 수 있게 함) 또는 icon:<icon-id>(마커를 특정 아이콘을 사용하도록 설정할 수 있게 함) 형식으로 작성된 줄을 제외하고 마커의 레이블에 포함됩니다. 아이콘이 지정되지 않으면, 아이콘 표시가 사용됩니다. 만약 마커가 성공적으로 생성되면, 표시판의 텍스트는 [dynmap], set: 그리고 icon: 줄을 지웁니다. 표시판이 나중에 삭제되면, 해당 맵 마커도 삭제됩니다.

마커가 생성된 후에는 마커를 다음 두 가지 명령 중 하나를 사용하여 편집할 수 있습니다:

  • /dmarker movehere <marker-label> set:<markerset-id> 또는 /dmarker movehere id:<marker-id> set:<markerset-id>: 이 명령어는 기존의 마커를 플레이어의 현재 위치로 이동시킵니다. 주의: markerset-id는 기본 마커 세트(markers)에 없는 마커를 선택하는 데 필요합니다.
  • /dmarker update <marker-label> set:<markerset-id> icon:<icon-id> newlabel:<new-label> 또는 /dmarker update id:<marker-id> set:<markerset-id> icon:<icon-id> newlabel:<new-label>. 주의: markerset-id는 기본 마커 세트(markers)에 없는 마커를 선택하는 데 필요합니다 - 마커 세트 ID는 수정할 수 없습니다.

마커에 설명을 추가하려면, 먼저 /dmarker resetdesc id:<marker-id> set:<set-id>를 사용하여 기존의 설명을 제거한 다음, /dmarker appenddesc id:<id> set:<set-id> desc:"<marker-description>"을 사용하여 새 설명을 추가합니다. desc 필드가 문자열임을 정의하려면 주어진 텍스트 주위에 " "를 사용하십시오.

마커는 /dmarker delete <marker-label> set:<markerset-id> 또는 /dmarker delete id:<marker-id> set:<markerset-id> 명령어를 사용하여 삭제할 수 있습니다.

기존 마커 세트와 그들의 속성은 /dmarker listsets 명령어를 사용하여 표시할 수 있습니다.

기존 마커와 그들의 속성은 /dmarker list set:<markerset-id> 명령어를 사용하여 표시할 수 있습니다.

마커 아이콘

마커 아이콘은 마커의 이미지를 제공하는 이미지 리소스입니다. Dynmap은 항상 존재하고 정의되어 있으며 삭제할 수 없는 여러 표준 마커 아이콘을 제공합니다. 사용 가능한 아이콘 목록은 /dmarker icons 명령어를 실행하여 찾을 수 있습니다.

새 마커 아이콘을 설치하려면 다음을 수행합니다:

  • 이미지 파일을 PNG 형식으로 준비하십시오. 이 이미지는 8x8, 16x16 또는 32x32픽셀이어야 하며, 투명 배경이 가능합니다(이는 특히 마커가 아이콘이 아니라 점처럼 보이는 것을 원하는 경우에 유용합니다).
  • 이미지 파일을 이 위치에 복사하십시오: <서버 폴더>/plugins/dynmap/. 만약 아이콘 ID가 'myicon'이라면, 파일 이름은 myicon.png여야 합니다.
  • /dmarker addicon id:<icon-id> <icon-label> file:<path-to-image-file> 명령어를 실행하세요.

이미 존재하는 아이콘 이미지를 업데이트하려면, /dmarker updateicon id:<icon-id> newlabel:<new-label> file:<path-to-image-file> 명령어를 실행하세요.

이미지 파일이 올바르게 복사되고 정상적인 PNG 파일인 경우, myicon이 이제 사용 가능한 아이콘 목록에 포함되어야 합니다.

기존 마커 아이콘을 삭제하려면, /dmarker deleteicon id:<icon-id> 명령어를 실행하세요.

영역 마커

영역 마커는 세계 지도에 2차원 또는 3차원 윤곽선을 배치하는 데 사용됩니다. 영역 마커에 의해 정의된 영역은 2개 이상의 X, Z 좌표의 순서에 따라 정의됩니다. 이는 사각형(2점인 경우, 이들은 사각형의 대각선 코너를 의미합니다) 또는 다각형(3점 이상인 경우, 이들은 첫 번째 점으로 연결되는 다각형의 순서대로 정의된 점을 의미합니다)을 정의합니다. 선택적으로 최소 및 최대 Y 좌표를 제공하여 2차원 형상을 위아래로 평평한 3차원 볼륨으로 확장할 수 있습니다.

윤곽선의 가장자리의 모양은 색상 속성 (HEX: RRGGBB), 선 무게 (0-N), 투명도 (0.0-1.0)을 설정하여 제어할 수 있습니다. 윤곽선 내의 채워진 영역의 모양은 채우기 색상 속성 (HEX: RRGGBB), 채우기 투명도 (0.0-1.0)을 설정하여 제어할 수 있습니다.

영역을 만들려면, 코너 목록이 제공되어야 합니다. 코너는 다음과 같이 입력할 수 있습니다:

  • /dmarker addcorner를 실행하여 플레이어의 현재 위치를 코너로 추가합니다.
  • /dmarker addcorner <x> <y> <z> 또는 /dmarker addcorner <x> <y> <z> <world>를 실행하여 특정 좌표를 코너로 추가합니다.

필요한 경우 코너 목록은 /dmarker clearcorners를 사용하여 재설정할 수 있습니다.

모든 코너를 입력한 후, /dmarker addarea <area-label> set:<markerset-id> 또는 /dmarker addarea id:<area-id> <area-label> set:<markerset-id> 명령어를 사용하여 영역 마커를 만들 수 있습니다. 이러한 명령어를 사용하여 추가 속성을 설정하거나, /dmarker updatearea id:<area-id> set:<markerset-id> 또는 /dmarker updatearea <area-label> set:<markerset-id> newset:<new-markerset-id> 명령어를 사용하여 나중에 업데이트할 수 있습니다. 이 설정에는 다음이 포함됩니다:

  • color - 윤곽선 색상 (color:RRGGBB)
  • fillcolor - 채우기 색상 (윤곽선 내부) (fillcolor:RRGGBB)
  • opacity - 윤곽선 획의 투명도 (0.0 = 투명, 1.0 = 실선)
  • fillopacity - 채운 색상 영역의 투명도 (0.0 = 투명, 1.0 = 실선)
  • weight - 윤곽선의 선 무게 (0=최소, 높을수록 더 두꺼움)
  • ytop - 영역의 상단 Y 좌표 (기본값=64)
  • ybottom - 영역의 하단 Y 좌표 (기본값=64)

주의: 현재 기존 영역의 코너를 업데이트할 수 없습니다 - 기존 영역을 삭제하고 새 영역을 추가하여 이를 업데이트하십시오. 또한, 코너 목록은 /dmarker addarea 명령을 사용하여 새 영역을 만든 후에 재설정됩니다.

영역 마커를 삭제하려면 /dmarker deletearea id:<area-id> set:<markerset-id> 명령어를 사용하십시오.

기존 영역 및 그들의 속성은 /dmarker listareas set:<markerset-id> 명령어를 사용하여 표시할 수 있습니다.

원형 마커

원형 마커는 세계 지도에 2차원 원형(또는 타원형) 윤곽선을 배치하는 데 사용됩니다. 원형 마커에 의해 정의된 영역은 중심점 (x, y, z)과 반경(원에 대한 radius 설정을 통해) 또는 X 대 Z 반경(타원에 대한 radiusx 및 radiusz 설정을 통해)에 의해 정의됩니다.

윤곽선의 가장자리의 모양은 색상 속성 (HEX: RRGGBB), 선 무게 (0-N), 투명도 (0.0-1.0)을 설정하여 제어할 수 있습니다. 윤곽선 내의 채워진 영역의 모양은 채우기 색상 속성 (HEX: RRGGBB), 채우기 투명도 (0.0-1.0)을 설정하여 제어할 수 있습니다.

원형 마커는 /dmarker addcircle <circle-label> set:<markerset-id> 또는 /dmarker addcircle id:<circle-id> <circle-label> set:<markerset-id> 명령어를 사용하여 생성할 수 있습니다. 이러한 명령어를 사용하여 추가 속성을 설정하거나, /dmarker updatecircle id:<circle-id> set:<markerset-id> 또는 /dmarker updatecircle <circle-label> set:<markerset-id> 명령어를 사용하여 나중에 업데이트할 수 있습니다. 이 설정에는 다음이 포함됩니다:

  • x - 중심의 X 좌표 (기본값은 명령어를 발행하는 플레이어의 현재 위치입니다)
  • y - 중심의 Y 좌표 (기본값은 명령어를 발행하는 플레이어의 현재 위치입니다)
  • z - 중심의 Z 좌표 (기본값은 명령어를 발행하는 플레이어의 현재 위치입니다)
  • radius - 원의 반경 (기본값은 1입니다)
  • radiusx - X축에서의 타원의 반경 (기본값은 1입니다)
  • radiusz - Z축에서의 타원의 반경 (기본값은 1입니다)
  • world - 중심의 세계 (기본값은 명령어를 발행하는 플레이어의 현재 위치입니다)
  • color - 윤곽선 색상 (color:RRGGBB 형식)
  • fillcolor - 채우기 색상 (윤곽선 내부) (fillcolor:RRGGBB 형식)
  • opacity - 윤곽선 획의 투명도 (0.0 = 투명, 1.0 = 실선)
  • fillopacity - 채운 색상 영역의 투명도 (0.0 = 투명, 1.0 = 실선)
  • weight - 윤곽선의 선 무게 (0=최소, 높을수록 더 두꺼움)

원형 마커를 삭제하려면 /dmarker deletecircle id:<circle-id> set:<markerset-id> 명령어를 사용하십시오.

기존 원들과 그들의 속성은 /dmarker listcircles set:<markerset-id> 명령어를 사용하여 표시할 수 있습니다.

폴리라인 마커

폴리라인 마커는 세계 지도에 연결된 선 분할의 순서를 배치하는 데 사용됩니다. 각 폴리라인 마커는 1개 이상의 X, Y, Z 좌표의 순서, 라벨, 선택적 설명 팝업, 연관된 선 색상, 무게, 투명도 설정에 의해 정의됩니다.

선의 모양은 색상 속성 (#RRGGBB), 선 무게 (0-N), 투명도 (0.0-1.0)을 설정하여 제어할 수 있습니다.

폴리라인을 만들려면, 코너 목록이 제공되어야 합니다. 코너는 다음과 같이 입력할 수 있습니다:

  • /dmarker addcorner를 실행하여 플레이어의 현재 위치를 코너로 추가합니다.
  • /dmarker addcorner <x> <y> <z> 또는 /dmarker addcorner <x> <y> <z> <world>를 실행하여 특정 좌표를 코너로 추가합니다.

필요한 경우 코너 목록은 /dmarker clearcorners를 사용하여 재설정할 수 있습니다.

모든 코너를 입력한 후, /dmarker addline <line-label> set:<markerset-id> 또는 /dmarker addline id:<line-id> <line-label> set:<markerset-id> 명령어를 사용하여 폴리라인 마커를 만들 수 있습니다. 이 명령어를 사용하여 추가 속성을 설정하거나, /dmarker updateline id:<line-id> set:<markerset-id> 또는 /dmarker updateline <line-label> set:<markerset-id> 명령어를 사용하여 나중에 업데이트할 수 있습니다. 이 설정에는 다음이 포함됩니다:

  • color - 선 색상 (color:RRGGBB 형식)
  • opacity - 선의 투명도 (0.0 = 투명, 1.0 = 실선)
  • weight - 선의 무게 (0=최소, 높을수록 더 두꺼움)

기존 선들과 그들의 속성은 /dmarker listlines set:<markerset-id> 명령어를 사용하여 표시할 수 있습니다. 선을 삭제하려면 /dmarker deleteline id:<line-id> set:<markerset-id> 명령어를 사용하십시오.

주의: 현재 기존 폴리라인의 코너를 업데이트할 수 없습니다 - 기존 폴리라인을 삭제하고 새 폴리라인을 추가하여 이를 업데이트하십시오. 또한, 코너 목록은 /dmarker addline 명령을 사용하여 새 폴리라인을 만든 후에 재설정됩니다.

고급 설정

고급 지도 설정

사전 정의된 커스텀 지도 각도 목록

사전에 미리 설정된 커스텀 지도 각도는 perspective.txt에서 찾을 수 있다. 참고로 아래에 없는 각도도 custom-perspectives.txt에 추가하여 사용할 수 있으며, 기존에 정의된 각도를 수정할 때도 되도록 custom-perspectives.txt 사용을 권장한다.

  • 기본값: 동남쪽 뷰, 방위각 135도, 기울기 60도, 스케일 4

다음은 HD Map 기준 사전 정의된 각도 명칭이다.

  • iso_S_60_vlowres
  • iso_S_60_lowres
  • iso_S_60_medres
  • iso_S_60_hires
  • iso_SE_60_vlowres
  • iso_SE_60_lowres
  • iso_SE_60_medres
  • iso_SE_60_hires
  • iso_E_60_vlowres
  • iso_E_60_lowres
  • iso_E_60_medres
  • iso_E_60_hires
  • iso_NE_60_vlowres
  • iso_NE_60_lowres
  • iso_NE_60_medres
  • iso_NE_60_hires
  • iso_N_60_vlowres
  • iso_N_60_lowres
  • iso_N_60_medres
  • iso_N_60_hires
  • iso_NW_60_vlowres
  • iso_NW_60_lowres
  • iso_NW_60_medres
  • iso_NW_60_hires
  • iso_W_60_vlowres
  • iso_W_60_lowres
  • iso_W_60_medres
  • iso_W_60_hires
  • iso_SW_60_vlowres
  • iso_SW_60_lowres
  • iso_SW_60_medres
  • iso_SW_60_hires
  • iso_S_30_vlowres
  • iso_S_30_lowres
  • iso_S_30_medres
  • iso_S_30_hires
  • iso_SE_30_vlowres
  • iso_SE_30_lowres
  • iso_SE_30_medres
  • iso_SE_30_hires
  • iso_E_30_vlowres
  • iso_E_30_lowres
  • iso_E_30_medres
  • iso_E_30_hires
  • iso_NE_30_vlowres
  • iso_NE_30_lowres
  • iso_NE_30_medres
  • iso_NE_30_hires
  • iso_N_30_vlowres
  • iso_N_30_lowres
  • iso_N_30_medres
  • iso_N_30_hires
  • iso_NW_30_vlowres
  • iso_NW_30_lowres
  • iso_NW_30_medres
  • iso_NW_30_hires
  • iso_W_30_vlowres
  • iso_W_30_lowres
  • iso_W_30_medres
  • iso_W_30_hires
  • iso_SW_30_vlowres
  • iso_SW_30_lowres
  • iso_SW_30_medres
  • iso_SW_30_hires
  • iso_N_90_vlowres
  • iso_N_90_lowres
  • iso_N_90_medres
  • iso_N_90_hires
  • iso_S_90_vlowres
  • iso_S_90_lowres
  • iso_S_90_medres
  • iso_S_90_hires
  • iso_E_90_vlowres
  • iso_E_90_lowres
  • iso_E_90_medres
  • iso_E_90_hires
  • iso_W_90_vlowres
  • iso_W_90_lowres
  • iso_W_90_medres
  • iso_W_90_hires

커스텀 지도 각도 설정

커스텀 조명

lightings.txt를 수정하면 사용자 정의 조명 값을 사용할 수 있다.

현재 DefaultHDLightingShadowHDLighting 설정을 사용할 수 있다.

DefaultHDLighting는 셰이더의 색상 값을 수정하지 않으며 모든 블럭이 받는 일광량이 일정해 그림자 표현이 없다.

ShadowHDLighting는 주변 조명 강도를 반영하고 그림자 강도를 정할 수 있다. 또한 필요시 낮과 밤 타일을 구분하여 렌더링할 수 있다.

일반적인 조명 설정값은 다음과 같다.

lightings:
  - class: org.dynmap.hdmap.ShadowHDLighting
    name: my-custom-lighting
    shadowstrength: 1.0
    ambientlight: 4
    night-and-day: true
    smooth-lighting: false

ShadowHDLighting의 설정

  • name : 각 조명 설정의 고유 이름으로, custom-lightings.txt에 사용자 지정 설정을 추가하고 불러올 때 이 것을 기준으로 설정을 구분한다.
  • shadowstrength : 그림자 세기를 설정한다. 기본 값은 0.0[2]이며, 일반적인 그림자는 1.0값을 사용한다. 이보다 크면 인위적인 세기의 그림자가 생성되며 1.0보다 작으면 그림자가 연해진다.
  • ambientlight : 하늘에서 내리는 빛의 양을 조절한다. 기본적인 낮의 빛 강도는 15이며, 일반적으로 달빛이 비추늠 밤은 4 값을 사용한다.
  • night-and-day : 이 항목의 값을 true로 설정하면 주간과 야간 버전 타일이 모두 생성되며 서버 시간의 흐름에 따라 다이나믹맵의 낮 밤 타일이 자동으로 변경된다. 기본 값은 false
  • smooth-lighting : 0 또는 1 을 사용해 부드러운 조명 옵션을 토글한다. 이 기능을 활성화하면 렌더링 성능이 약 10% 가량 더 소모되지만 그림자와 조명이 훨씬 부드럽게 렌더링된다. 만약 정의되지 않은 경우 configuration.txt의 smooth-lighting값이 사용된다.

커스텀 셰이더

shaders.txt에 사전 정의된 셰이더 설정을 사용하거나 custom-shaders.txt에 사용자 지정 설정을 추가[3]하여 사용할 수 있다.

  • org.dynmap.hdmap.DefaultHDShader : 이 셰이더는 기본설정에 입각해 다양한 블록과 바이옴을 지원하여 렌더링한다.
  • org.dynmap.hdmap.CaveHDShader : 이 셰이더는 동굴을 렌더링할 수 있다.
  • org.dynmap.hdmap.TexturePackHDShader : 이 셰이더는 마인크래프트 기본 리소스팩을 포함하여 마인크래프트 리소스팩을 사용할 수 있도록 해준다.
  • org.dynmap.hdmap.TopoHDShader : 이 셰이더는 렌더링된 블록의 고도에 따라 지형지도를 볼 수 있도록 지도 색상을 설정한다.

플레이시티 블록 설정

마커 세트

다음은 플레이시티 블록에서 사용하는 마커 세트와 마커 세트를 추가하기 위한 명령어입니다.

sets:
label - id - priority - minzoom

1 광역단체경계 Regional 0 0
2 기초단체경계 Municipal 0 0
3 도시 Cities 0 0
4 전철역 Stations_Metro 0 2
5 철도역 Stations 0 1
6 트램정류장 Stations_Tram 0 3
7 전철노선 Lines_Metro 8 0
8 고속철도노선 Lines_HSR 7 0
9 일반철도노선 Lines_Railway 9 0
10 트램노선 Lines_Tram 10 1
11 도로 Lines_Road 11 0
12 교통 Transport 12 1
13 자연 Natural_Wonders 13 3
14 역사 Historic 14 2
15 교육·박물관 EducationAndMuseum 15 3
16 추천 Curation 16 3
17 시설 Facilities 17 5
18 지구 Areas 18 1
19 세상의 끝 EndOfTheWorld 19 0
  • dmarker addset id:Regional label:"광역단체경계" hide:false prio:1 minzoom:0
  • dmarker addset id:Municipal label:"기초단체경계" hide:false prio:2 minzoom:0
  • dmarker addset id:Cities label:"도시" hide:false prio:3 minzoom:0
  • dmarker addset id:Stations_Metro label:"전철역" hide:false prio:4 minzoom:2
  • dmarker addset id:Stations label:"철도역" hide:false prio:5 minzoom:1
  • dmarker addset id:Stations_Tram label:"트램정류장" hide:false prio:6 minzoom:3
  • dmarker addset id:Lines_Metro label:"전철노선" hide:false prio:7 minzoom:0
  • dmarker addset id:Lines_HSR label:"고속철도노선" hide:false prio:8 minzoom:0
  • dmarker addset id:Lines_Railway label:"일반철도노선" hide:false prio:9 minzoom:0
  • dmarker addset id:Lines_Tram label:"트램노선" hide:false prio:10 minzoom:1
  • dmarker addset id:Lines_Road label:도로 prio:11 hide:false minzoom:0
  • dmarker addset id:Transport label:"교통" hide:false prio:12 minzoom:1
  • dmarker addset id:Natural_Wonders label:"자연" hide:false prio:13 minzoom:3
  • dmarker addset id:Historic label:"역사" hide:false prio:14 minzoom:2
  • dmarker addset id:EducationAndMuseum label:"교육·박물관" hide:false prio:15 minzoom:3
  • dmarker addset id:Curation label:"추천" hide:false prio:16 minzoom:3
  • dmarker addset id:Facilities label:"시설" hide:false prio:17 minzoom:5
  • dmarker addset id:Areas label:지구 prio:18 hide:true minzoom:1
  • dmarker addset id:EndOfTheWorld label:"세상의 끝" hide:false prio:19 minzoom:0

마커

마커 아이콘을 사용하는 몇 가지 예시입니다.

  • 도시: dmarker add id:city_cheongna label:"청라특별시" set:Cities icon:city_cheongna x:-976 y:38 z:2784 world:block16
  • 전철역: dmarker add id:MetroCR_Seoariul label:"서아리울" set:Stations_Metro icon:custom_metrocheongna x:46 y:38 z:7330 world:block16
  • 철도역: dmarker add id:Station_Pyeongcheon label:"평천" set:Stations icon:custom_train x:5187 y:38 z:-550 world:block16
  • 트램정류장: dmarker add id:TramC_Y115 label:"양정시청" set:Stations_Tram icon:tram x:16156 y:38 z:12015 world:block16
  • 항구: dmarker add id:Port_Mangwon label:"망원항" set:Transport icon:dot x:-2918 y:38 z:-5469 world:block16
  • 공항: dmarker add id:Airport_Cheongna label:"청라공항" set:Transport icon:airport x:-216 y:38 z:5873 world:block16
  • 교량: dmarker add id:Bridge_Naehae label:"내해대교" set:Transport icon:bridge x:7335 y:38 z:7064 world:block16
  • 등대: dmarker add id:Lighthouse_Tokkiseom label:"토끼섬 등대" set:Transport icon:lighthouse2 x:5793 y:38 z:6486 world:block16
  • 역사: dmarker add id:Historic_Hwangnyongsa label:"황룡사" set:Historic icon:historic x:-1290 y:38 z:13414 world:block16
  • 박물관: dmarker add id:Museum_JisanNational label:"국립지산박물관" set:EducationAndMuseum icon:museum x:-2026 y:38 z:13169 world:block16
  • 대학교: dmarker add id:Univ_Ariul label:"아리울대학교 남산캠퍼스" set:EducationAndMuseum icon:school x:2478 y:38 z:12035 world:block16

폴리 라인 마커

폴리 라인 마커를 사용하는 몇 가지 예시입니다.

  • 청라A선

dmarker addcorner 50 38 6802 block16

dmarker addcorner 50 38 7824

dmarker addcorner 48 38 7911

dmarker addcorner 44 38 7990

dmarker addcorner 35 38 8124

dmarker addcorner 22 38 8247

dmarker addcorner -14 38 8495

dmarker addcorner -33 38 8614

dmarker addcorner -52 38 8729

dmarker addcorner -69 38 8837

dmarker addcorner -86 38 8946

dmarker addcorner -105 38 9063

dmarker addcorner -125 38 9226

dmarker addcorner -138 38 9437

dmarker addcorner -139 38 9604

dmarker addcorner -139 38 10060

dmarker addline id:MetroLine_CR label:"청라 A선" set:Lines_Metro color:1496CD opacity:0.8 weight:3

각주

  1. MySQL과 완전히 호환되는 기능을 사용할 수 있으며, 일반적으로 더 권장됩니다.
  2. 그림자 없음
  3. 권장하는 방법이다.