장소
장소는 데이터이며 지도는 레이어입니다. 상하 계층, 3D 지형 및 숲, 평면 지도와 드로잉, 미배치 장소와 각본 참조 보호를 다룹니다.
장소 데이터와 지도 레이어의 역할 분담
이 둘은 의도적으로 분리된 별개의 개념입니다. '장소'는 데이터 레코드입니다: 위나라, 촉나라, 청두—각각이 이름, 환경 묘사, 별칭/옛 지명, 장별 변화 및 이를 참조하는 각본 내 씬 목록을 보관하는 카드가 될 수 있습니다. '지도'는 인터랙티브 레이어입니다: 특정 장소가 어느 지도에서 어느 그리드 또는 폴리곤 영역을 차지하는지, 그 아래에 어떤 지형이 펼쳐져 있는지를 다룹니다.
따라서 특정 장소가 어떤 지도에도 표시되지 않더라도 데이터상으로는 완전히 유효합니다. 반대로 지도 상의 영역을 삭제하더라도 장소 카드가 삭제되지 않습니다. 각본 집필에는 데이터 레코드 계층만 있으면 충분하며, 지도는 작가에게 공간적 관계를 시각화해 주기 위해 존재합니다.
화면 구성: 좌측 캔버스와 우측 2개 패널
좌측 내비게이션에서 '장소' 메뉴로 진입합니다. 지도를 위한 전용 워크벤치 화면이 열립니다:
- 캔버스: 화면을 열자마자 내부 프레임에 지도가 가득 채워지며 불필요한 테두리나 페이지 세로 스크롤이 발생하지 않습니다. 드래그와 줌은 지도 내용물만 이동시킬 뿐 상단 툴바를 화면 밖으로 밀어내지 않습니다.
- 우측 하단 플로팅 바: 현재 지도 이름과 배치된 장소 수, 3D / 평면 전환 토글, 그리고 프로젝트 레벨의 실행 취소(Undo), 다시 실행(Redo), 화면 맞춤 및 설정이 제공됩니다.
- 상단 툴바: 3D 모드에서는 둘러보기(Browse), 조형(Sculpt), 지형(Terrain), 숲(Forest), 자르기(Crop)가 제공되며, 평면 모드에서는 둘러보기(Browse), 브러시(Brush), 지우개(Eraser), 3단계 선 굵기, 색상, 구역 그리기(Draw region) 및 구역 표시 여부가 단일 행 캡슐 형태로 정돈되어 표시됩니다.
- 우측 사이드바 상단 '지형(Maps)': 월드 맵 및 하위 상세 지도 목록을 관리하며 서브 맵 생성, 이름 변경, 삭제가 가능합니다. 하단 '장소 보관함(Location library)': 장소 데이터 레코드를 관리하며 '미배치 장소' 필터를 지원합니다.
지도 행을 더블 클릭하면 해당 지도로 진입하고, 장소 행을 더블 클릭하면 해당 장소의 레코드를 편집합니다. 상세 지도 생성이나 장소 배치는 우클릭 메뉴를 통해서만 명확하게 시작되며, 목록 행은 행 끝의 드래그 핸들을 잡고 이동하므로 우클릭 조작과 간섭을 일으키지 않습니다.
단일 진실 공급원으로서의 계층 구조
상하 계층 관계는 장소 자체의 '상위 장소' 필드에 단 한 번만 저장됩니다. 하위 장소 목록은 필요할 때 실시간으로 계산되며 별도의 복제본을 저장하지 않습니다. 따라서 한쪽을 수정했을 때 다른 쪽이 동기화되지 않는 문제가 없습니다: 인스펙터, 어시스턴트, 관계 그래프, 지도가 모두 동일한 관계를 읽습니다.
- 장소 행의 우클릭 메뉴는 명확한 동작을 안내합니다: 레코드 편집, 상세 지도 생성, 최상위로 이동, 현재 지도에 배치.
- 2단계 장소 행을 목록 맨 위의 '최상위' 드롭 영역으로 드래그하면 1단계 장소로 승격되며, 다른 장소 위로 드래그하면 해당 장소의 하위 장소로 지정됩니다.
- 장소 편집 패널에는 장소 이름, 환경 묘사, 별칭/옛 지명, 장소 색상, 하위 장소 미리보기, 현재 위치 표현, 각본 씬 목록이 포함됩니다.
- 삭제는 확인 팝업을 거칩니다. 장소 또는 그 하위 트리가 각본에서 참조되고 있는 동안에는 삭제할 수 없으며 상위 장소를 변경할 수도 없습니다. 각본 씬 블록에 모든 참조 항목('제N씬 · 씬 제목', 시공간 참조는 '· 시공간 전환' 표시)이 나열되며, 클릭하면 각본의 해당 위치로 바로 이동하여 참조를 먼저 해제할 수 있습니다.
3D 지도: 영역 설정, 지형 조형, 숲 배치
3D 지도는 그리드 상의 셀을 기반으로 위치를 지정하지만 스프레드시트처럼 보이지 않습니다: A/B/C나 1/2/3 같은 머리글이 없으며 각 셀이 지형 타일로 렌더링되어 그리드이기 전에 지도다운 느낌을 먼저 줍니다.
- 둘러보기(Browse)기본 모드입니다. 드래그하여 이동하고 휠로 확대/축소하며 스페이스바를 누른 채 이동할 수 있습니다. 영역을 더블 클릭하면 상세 지도가 있는 경우 상세 지도로 진입하고, 없다면 해당 장소의 레코드를 엽니다.
- 영역 그리기영역 모드로 전환한 뒤 셀 위를 드래그하여 여러 셀을 선택하면 영역 중심 위에 명명 상자가 떠오릅니다(캔버스나 툴바를 밀어내지 않습니다). Option(⌥) 키를 누른 채 드래그하면 선택 영역에서 셀을 제외할 수 있습니다.
- 지형과 숲지형 브러시는 지표면을 변경하고, 숲 브러시는 숲의 범위만 추가하거나 제거합니다. 나무, 바위, 풀은 해당 범위와 밑바탕 지형에 따라 자동으로 형성됩니다. 브러시는 1×1 / 3×3 / 5×5의 세 가지 크기를 제공하며 마우스 중심 셀에 스냅되고, 미리보기 격자와 실제 수정되는 격자가 항상 완벽히 일치합니다.
숨기기 브러시는 현재 지도에서 해당 셀을 지웁니다(해당 셀의 숲도 함께 제거됨). 만약 그 위치에 장소가 배치되어 있었다면 현재 지도 상의 표현만 사라질 뿐 장소 데이터 레코드는 그대로 보존됩니다.
평면 뷰: 밑그림, 펜 드로잉, 구역의 3단계 레이어
각 지도의 평면 뷰에는 하나의 밑그림 이미지가 사용됩니다. 로컬 PNG 또는 JPEG 파일을 업로드할 수 있으며(원본 파일 크기 최대 30MB, 기준을 초과하는 대형 이미지는 가장 긴 변 기준 8192px로 자동 리사이즈 안내 표시), 아직 밑그림이 없을 때는 빈 캔버스를 열어 첫 드로잉을 직접 그릴 수 있습니다. 그 후 브러시와 지우개는 동일한 이미지 위에서 계속 작동합니다: 스트로크는 상대 좌표를 기반으로 독립된 레이어에 저장되며 원본 이미지는 절대 훼손되지 않고 지우개도 오직 스트로크 레이어만 지웁니다.
- 마우스를 눌렀다 떼는 동작 한 번이 하나의 스트로크로 계산됩니다: 펜을 떼는 순간 자동 저장되며 정확히 1회의 프로젝트 실행 취소 단계로 기록됩니다. Cmd / Ctrl + Z를 누르면 스트로크 단위로 되돌아갑니다.
- 구역(Region)은 밑그림 위에 점을 하나씩 찍어가며 그리며 시작점을 다시 클릭하거나 더블 클릭하여 닫습니다. 닫힌 구역은 기존 장소 또는 새로 생성할 장소와 반드시 연결해야 하며, 연결을 취소하면 아무것도 저장되지 않습니다. 폴리곤은 스스로 교차할 수 없으며 구멍을 뚫는 형태는 지원되지 않습니다.
- 그리는 도중에도 마우스 휠로 확대/축소하고 스페이스바로 캔버스를 이동할 수 있으며 Esc를 누르면 취소됩니다. 이미 꼭짓점을 찍은 상태에서 뷰, 지도, 모드를 전환하려 하면 꼭짓점을 폐기할지 묻는 대화상자가 표시됩니다.
- 구역을 선택하면 경계 편집, 장소 열기, 장소 변경, 삭제 액션이 동일한 툴바 캡슐 우측에 추가로 표시됩니다: 꼭짓점을 드래그하여 보정하고, 변을 클릭하여 점을 추가하고, 점을 삭제(최소 3개 유지)하거나, 내부를 드래그하여 구역 전체를 이동할 수 있습니다.
- 구역과 스트로크는 이미지의 상대 좌표로 저장되므로 밑그림 이미지를 교체하더라도 유지됩니다. 밑그림을 교체하거나 삭제할 때는 '평면 주석(flat annotations)'을 유지할지 함께 지울지 한 번 확인합니다.
하나의 장소가 공간적으로 분리된 여러 개의 구역을 소유할 수 있으며 서로 다른 장소의 구역이 겹치거나 중첩될 수 있습니다. 더 작은 구역이 큰 구역 위에 자연스럽게 표시되며 라벨은 구역 내부에 자동으로 배치됩니다. 수동 레이어 순서 지정이나 수동 라벨 위치 조정은 필요하지 않으며 제공되지 않습니다. 또한 3D 그리드와 평면 폴리곤은 상호 변환되지 않고 각 뷰가 고유한 지오메트리를 유지합니다.
미배치 장소를 지도 위에 올리는 방법
각본 본문에서 확정된 장소 이름은 즉시 정식 장소 카드가 되지만 어떤 지도에도 아직 올라가지 않은 상태입니다. 우측의 장소 보관함은 이미 등록된 모든 장소를 모아 보여주며, '미배치' 필터를 통해 현재 뷰의 지도에 배치되지 않은 장소들을 걸러낼 수 있습니다.
- 3D: 배치하기장소 행을 캔버스의 특정 셀로 드래그하거나 우클릭 메뉴에서 '현재 지도에 배치'를 선택한 뒤 영역을 칠합니다.
- 평면: 먼저 그리고 나중에 연결평면 뷰에서는 먼저 밑그림 위에 폴리곤을 그린 뒤, 바인딩 패널에서 기존 장소를 선택하거나 새 장소를 생성하여 연결합니다.
- 배치 삭제는 부담 없는 작업입니다배치를 삭제하면 해당 장소가 '미배치' 상태로 돌아갈 뿐입니다. 장소 데이터 레코드, 다른 뷰의 지오메트리, 서브 맵은 전혀 삭제되지 않습니다.
각본과의 연동
씬과 시공간의 장소는 단순한 텍스트 문자열이 아니라 장소의 고유 엔티티 식별자를 참조합니다. 씬의 메인 장소가 '촉나라'로 지정되어 있을 때 시공간에 '관아 안채'를 입력하면 해당 하위 트리 내에서 유일하게 일치하는 장소를 재사용합니다. 하위 트리에 없는 이름이라면 '촉나라' 바로 아래에 직계 하위 장소를 새로 생성합니다. 시간만 입력하고 장소를 비워두는 것도 정상적인 작성법입니다: 빈 시공간 필드는 '해당 씬의 장소 상속'을 의미하며 레코드에 역으로 채워지지 않습니다.
하위 장소는 상위 장소의 영역 내로 자동 투영되며(천하 지도 레벨의 촉나라 영역 내에 청두가 표시됨), 투영된 위치는 나중에 수동으로 보정할 수 있습니다. 모든 장소는 한 단계 더 깊은 상세 지도로 들어갈 수 있으며 '영역형'과 '포인트형'을 나누는 별도의 규칙은 없습니다.
제한 사항 및 문제 해결
- 구역 표시 여부 토글은 현재 캔버스에만 영향을 줍니다: 비활성화하면 채우기, 테두리, 이름, 클릭 영역이 일괄 숨김 처리됩니다. 새 구역을 그리거나 사이드바에서 구역을 찾으면 다시 표시되며, 이 스위치는 프로젝트 데이터에 저장되지 않습니다.
- 분할 화면은 창 너비에 맞춰 자동 조절되어 우측 레일의 버튼과 메뉴 공간을 항상 확보합니다. 캔버스 이동은 가장 바깥쪽 가시 격자에서 멈추므로 광활한 여백 때문에 지도를 잃어버리는 일이 없습니다.
- 구버전 프로젝트 데이터 자동 업그레이드: 과거 장소 필드에 지도 데이터를 직접 보관하던 프로젝트를 읽을 때는 기본 '세계 지도'와 배치를 최대한 충실하게 복원하여 생성합니다. 평면 필드가 없는 지도는 기본적으로 3D로 열립니다.
이번 버전에서 지원하지 않는 범위도 명확히 밝힙니다: AI 밑그림 생성, 다중 밑그림 레이어, 밑그림 자르기/회전/늘이기 및 불투명도 조절, 포인트 핀 및 경로선 그리기, 세션 간 스트로크 히스토리 또는 단일 스트로크 색상 변경, 육각형(Hex) 그리드는 지원하지 않습니다. 자세한 내용은 모듈 간 연동 및 엔티티 참조와 @를 참고하십시오.