마인크래프트/도시 건축 워크플로
도시 건축 워크플로는 마인크래프트: 자바 에디션에서 도시 규모의 건축을 진행할 때 지형 제작부터 공개까지 여러 도구를 거치는 작업 흐름을 말한다.
개별 건물을 짓는 방법은 마인크래프트/건축 문서에서 다룬다. 이 문서는 도구와 도구 사이를 어떤 순서로, 무엇을 주고받으며 잇는가를 다룬다. 도시 규모에서는 단일 도구로 끝나는 작업이 거의 없고, 각 단계의 결과물을 다음 단계로 넘기는 과정에서 문제가 생기기 쉽다.
전체 흐름
| 단계 | 작업 | 주요 도구 |
|---|---|---|
| 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은 광선 추적 기반의 고화질 타일을 제공한다.
최초 렌더링은 넓은 범위를 한 번에 처리하므로 부하가 크다. 건축이 끝난 구역부터 나누어 렌더링하고, 이용자가 적은 시간대에 실행한다.
단계별 백업 지점
| 시점 | 이유 |
|---|---|
| 월드페인터 병합 전 | 병합은 되돌릴 수 없다 |
| 대량 편집 전 | 실행 취소에 한계가 있다 |
| 서버 판을 올리기 전 | 월드 데이터 형식이 바뀔 수 있다 |
| 지형 디테일 작업 전 | 브러시 작업은 되돌리기가 번거롭다 |