(도시 건축 워크플로에서 넘어옴)

도시 건축 워크플로마인크래프트: 자바 에디션에서 도시 규모의 건축을 진행할 때 지형 제작부터 공개까지 여러 도구를 거치는 작업 흐름을 말한다.

개별 건물을 짓는 방법은 마인크래프트/건축 문서에서 다룬다. 이 문서는 도구와 도구 사이를 어떤 순서로, 무엇을 주고받으며 잇는가를 다룬다. 도시 규모에서는 단일 도구로 끝나는 작업이 거의 없고, 각 단계의 결과물을 다음 단계로 넘기는 과정에서 문제가 생기기 쉽다.

전체 흐름

단계 작업 주요 도구
1 지형 제작 월드페인터
2 월드 반입과 사전 생성 Chunky
3 대량 편집 FastAsyncWorldEdit
4 지형 디테일 GoBrush, GoPaint, VoxelSniper
5 건물 배치 WorldEdit 스키매틱, Axiom
6 검수 게임 내 확인, Replay Mod
7 공개 BlueMap, Dynmap

각 단계는 되돌리기 어려운 지점을 하나씩 갖고 있다. 단계를 넘어가기 전에 백업을 남기는 것이 이 흐름 전체를 관통하는 원칙이다.

1단계 · 지형 제작

월드페인터로 게임 밖에서 지형을 만든다. 붓으로 높이를 조형하고 생물군계와 식생을 칠하는 방식이므로, 넓은 범위의 지형을 게임 안에서 만드는 것보다 훨씬 빠르다.

가장 주의할 지점은 기존 월드와의 관계다. 월드페인터는 지도 생성기이지 맵 편집기가 아니어서, 기존 월드를 가져오는 기능이 제한적이다. 지형의 높이와 생물군계는 가져오지만 구조물이나 나무 같은 요소는 보존되지 않는다.

따라서 다음 두 경우를 구분해야 한다.

  • 새 지역을 만드는 경우 — 새 월드로 내보낸다.
  • 기존 월드를 손보는 경우 — 내보내기가 아니라 병합을 사용한다. 가져온 월드를 다시 내보내면 청크 오류가 발생할 수 있다.

이미 건축물이 있는 월드에 월드페인터를 적용하려 한다면, 작업 전에 반드시 월드 전체를 복사해 둔다.

2단계 · 반입과 사전 생성

지형을 서버에 올린 뒤에는 청크를 미리 생성한다. Chunky로 사전 생성하면 이용자가 새 지역을 탐험할 때 발생하는 부하를 미리 처리할 수 있다.

이 시점에 월드 경계를 정해 두는 것이 좋다. 경계 없이 두면 이후 지도 렌더링과 백업 대상이 계속 늘어난다.

사전 생성은 CPU와 디스크를 오래 점유하므로 이용자가 적은 시간대에 실행한다. 마인크래프트/서버 최적화를 참고한다.

3단계 · 대량 편집

지형 위에 도로, 부지, 옹벽 같은 큰 구조를 잡는 단계다. FastAsyncWorldEdit를 사용한다.

WorldEdit도 같은 명령을 제공하지만, 도시 규모에서는 편집 범위가 커서 비동기 처리와 청크 단위 배치를 제공하는 FAWE 쪽이 적합하다.

상황 권장
수천 블록 이하의 편집 WorldEdit로 충분
수십만 블록 이상, 서버 운영 중 편집 FastAsyncWorldEdit
편집 중 서버가 멈추면 안 되는 경우 FastAsyncWorldEdit

주의할 점

  • //lazycopy는 원본을 참조한다. 복사 뒤 원본을 바꾸면 붙여넣기 결과에 반영된다. 장기 보관용 구조물은 일반 클립보드로 복사해 스키매틱 파일로 저장한다.
  • 실행 취소에는 한계가 있다. 매우 큰 편집은 기록이 남지 않거나 되돌리는 데 오래 걸린다.
  • 선택 영역을 다시 확인한다. 기준점을 잘못 잡은 채 실행한 대량 편집은 복구 비용이 크다.
  • 편집 직후 월드 저장이 몰리면 청크 저장 실패가 발생할 수 있다.

4단계 · 지형 디테일

큰 구조가 잡힌 뒤 지형의 표면을 다듬는다.

도구 역할
GoBrush 높이맵 브러시로 산과 언덕의 형태를 만든다
GoPaint 표면 재료를 칠해 질감을 만든다
VoxelSniper · FastAsyncVoxelSniper 브러시로 유기적인 형태를 조형한다

이 단계는 결과가 눈에 잘 띄지 않으면서 작업량이 많다. 좁은 구역에서 기준이 되는 표현을 먼저 완성한 뒤, 같은 설정으로 범위를 넓히는 방식이 효율적이다.

5단계 · 건물 배치

개별 건물의 설계와 시공은 마인크래프트/건축 문서에서 다룬다. 도시 규모에서는 여기에 반복 배치라는 문제가 더해진다.

같은 형태를 여러 곳에 세울 때는 스키매틱 파일로 저장해 두고 불러온다. 매번 복사·붙여넣기를 반복하면 클립보드가 초기화되거나 회전 각도가 어긋나기 쉽다.

//copy
//schem save 상가건물A
//schem load 상가건물A
//paste

반복 배치한 뒤에는 끝부분과 모서리를 개별로 손본다. 같은 건물이 그대로 늘어선 구간은 멀리서 볼 때 특히 눈에 띈다.

Axiom 같은 클라이언트 모드는 화면에서 형태를 직접 조정할 수 있어 배치 검토에 유용하다. 다만 서버 플러그인이 아니므로 적용 방식과 권한을 확인해야 한다.

6단계 · 검수

작업 중에는 가까이에서 보게 되므로 전체 인상을 놓치기 쉽다. 다음을 바꿔 가며 확인한다.

  • 거리 — 보행 시점, 건물 높이, 상공
  • 시간대 — 낮과 밤의 조도 차이
  • 시야 거리 — 원경에서 실루엣이 어떻게 보이는지
  • 렌더링 — 셰이더를 켠 상태와 기본 화면

Replay Mod로 카메라 경로를 만들면 같은 시점을 반복해 비교할 수 있어, 변경 전후를 대조할 때 유용하다.

7단계 · 공개

웹 지도로 결과를 공개한다. BlueMap은 입체 지도를, Dynmap은 평면 지도를, ChunkyMap은 광선 추적 기반의 고화질 타일을 제공한다.

최초 렌더링은 넓은 범위를 한 번에 처리하므로 부하가 크다. 건축이 끝난 구역부터 나누어 렌더링하고, 이용자가 적은 시간대에 실행한다.

단계별 백업 지점

시점 이유
월드페인터 병합 전 병합은 되돌릴 수 없다
대량 편집 전 실행 취소에 한계가 있다
서버 판을 올리기 전 월드 데이터 형식이 바뀔 수 있다
지형 디테일 작업 전 브러시 작업은 되돌리기가 번거롭다

같이 보기