레벨 디자인 (0)편: 개요와 인터페이스

레벨 디자인 (1)편: 방 생성 기초 1/2

레벨 디자인 (2)편: 방 생성 기초 2/2

레벨 디자인 (3)편: 잡동사니 꾸미기Cluttering


이 강의는 크리에이션 킷 위키의 "베데스다 공식 레벨 디자인 가이드 1편"의 내용을 상당 부분 참고하였다.


앞선 강의에서 레벨 디자인은 1. "주어진 재료들을 이용하여 일정한 공간을 만드는 방법"을 포함한다고 언급했다.

그러므로 이제 CK툴에 존재하는 셀과 객체들을 이용하여 간단한 공간을 한번 만들어 보자.


=


0. 조립세트kits미리보기 창preview window, 객체의 이름짓기 규칙naming rules

스카이림 내 공간은 주로 "조립세트Kits"를 이용하여 만들어진다. 조립세트를 이용하면 최소한의 부품만으로도 광범위한 공간을 빠르게 만들 수 있고, 다양한 분위기를 연출할 수도 있다.

이번 강의에서 우리가 사용해볼 것은 "고대 노드 유적Ancient Nord Ruin" 조립세트이다. 스카이림 던전을 제작할 때 가장 흔하게 사용되는 조립세트이므로 익숙할 것이다.


일단 Skyrim.esm을 마스터 파일로 요구하는 플러그인을 하나 만들어서 준비하자, 이름은 영어로 된 것이라면 아무렇게나 지어도 좋다, 나는 testquest.esp라는 플러그인을 만들었다.


이제 "고노유" 조립세트를 불러와야 한다, 객체 창의 왼쪽 카테고리에서 WorldObjects>Static>Dungeons을 들어가면 여러 가지 조립세트들이 보일 것이다, 이 중에서 Nordic 소범주를 클릭하자. 이것이 고대 노드 유적 조립세트이다.

Nordic이라는 큰 범주의 조립세트 안에는, 다시 여러 가지 하위 범주의 조립세트들이 있다. 딱 봐도 현관halls, 방rooms, 교량bridges처럼 방의 기능에 따라서 분류했다는 것을 짐작할 수 있다.

오른쪽의 리스트에는 범주 안에 담긴 부품들이 표시되고 있다. 그런데 이름만으로는 이 객체들이 어떻게 생겼는지 확인할 수가 없으므로, 원하는 객체의 이름에다가 우클릭을 하여 Preview를 한번 눌러보자.

그럼 미리보기 창Preview Window을 통해 객체의 모습을 볼 수 있다. 객체 창 목록에서 다른 객체를 선택하면 미리보기 창이 자동으로 갱신되면서 다른 객체의 모습을 보여주므로, 빠르게 돌려 보기에도 편리하다.

미리보기 창에서도 렌더 뷰처럼 카메라를 조작할 수 있지만 기능이 많이 제한되어 있어서 좌클릭과 줌 인/아웃만 가능하다. 다른 것들은 아직 알 필요가 없다, Ground plane 체크박스를 클릭하면 지표면이 표시된다는 것만 알아두자, 단축키는 G이다.


이제 SmRooms 카테고리에서 NorRmSmWallSideExSm01라는, 부호같이 생긴 이름을 가진 부품을 다뤄보자. 그 전에 먼저 조립키트의 부품들은 모두 특별한 이름짓기 규칙을 따른다는 것을 알아야 한다. 해당 부품의 이름을 나누어 읽어 보면서 이 규칙을 대강 파악해보자.


NorRmSm


Nor "노드Nord"의 줄임말. 이는 노드 유적 조립세트의 부품이란걸 알려준다.
Rm "방room"의 줄임말. 이 부품이 속한 하위 조립세트가 무엇인지 알려준다. 예를 들면, NorHall 로 시작되는 부품은 노드 홀 하위 조립세트에 속한다.
Sm "소형small"의 줄임말. "Sm"은 소형 방이고 "Bg"는 대형 방이다.


WallSide


Wall 문자 그대로 벽을 말한다. 벽wall, 중간mid, 구석cor, corner 부품이 있다.
Cor 구석 모퉁이 부품이다. 좀 더 자세히 지정하면 모퉁이 안쪽CorIn, inside corner 또는 모퉁이 바깥쪽CorOut, Outside corner으로 나눌 수 있다.
Side 나중에 보게 될 노드 소형 방 조립세트에 들어있는 부품 중에는 "앞쪽Front" 또는 "옆쪽Side"처럼 서로 맞는 짝이 있다.


ExSm01


Ex 출입구 부품임을 의미한다. 이는 문과 잘 맞물리고 같은 조립세트에 있는 "Ex"라는 부호가 붙은 출입구 부품과 짝을 이룬다.
Sm 출입구 부품의 크기를 의미한다. 노드 방 조립세트는 소형 출입구를 의미하는 "Sm" 과 대형 출입구를 의미하는 "Bg" 부호가 붙는다. 같은 부호가 붙은 부품끼리만 서로 들어맞는다.
01 이 숫자 접미사는 보통 이런 부품과 비슷한 여러 변형품들이 또 있다는 것을 의미한다. 다른 변형 부품에는 이보다 더 큰 숫자가 붙어 있어 비슷한 부품끼리 구분해준다.


객체 창의 필터에서는 순서에 맞게 부호를 입력하면 원하는 부품을 검색할 수 있다. 예를 들어, 만약 노드 소형 방 부품들을 전부 보고 싶다면, 필터에 "NorRmSm" 을 치면 된다. 검색시 객체 창의 왼쪽에서 선택한 범주에 따라 결과가 출력된다.

또한 순서랑 상관없이 원하는 부품을 찾고 싶을 때는 "*" 기호를 이용해 "와일드카드"라는 특수한 검색을 해볼 수 있다. 예를 들면, 노드 소형 방에 필요한 출입구를 검색한다면, 객체 창 필터에 "NorRmSm*Ex" 를 입력하면 된다. 노드 소형방에서 사용할 수 있는 출입구 부품이 나타날 것이다.


=

1. 방 만들기


naming rules도 얼추 파악했고, 조립세트의 개념도 이해했으니 이제 실제로 방을 만들어보는 일만 남았다.


1단계: 셀 만들기


방을 만들려면 먼저 일정한 공간이 있어야 한다. 우리는 기존에 존재하던 셀cell을 편집하여 새롭게 빈 공간을 만들어낼 것이다. 오른쪽 셀 뷰 창에서 aaaMarkers라는 이름의 실내 셀을 찾아서 우클릭한 뒤 Duplicate Cell을 선택하여 복제해주자. 그러면 바로 밑에 신규 셀이 생성되는 걸 볼 수 있을 것이다. 신규 셀을 선택해 F2키를 눌러 이름을 마음대로 바꿔주자. 나는 LokirsTomb으로 짓도록 하겠다


이제 작업을 할 수 있는 실내 공간이 생겼다. 잘못해서 실수로 다른 셀을 선택하지 말고 LokirsTomb 셀을 더블클릭하여 선택해 주자(aaaMarkers 셀이 아니다). 우선 깨끗한 상태에서 시작하기 위해 셀 뷰 창 오른쪽에 나타나는 레퍼런스들을 모두 지워주자.


그러면 렌더 뷰가 깔끔해지는걸 볼 수 있다.


2단계: 첫 부품 배치하기


이제 첫 부품을 놓아보자. 객체 창에서 "World Objects > STATIC > Dungeons > Nordic" 을 연다. 많은 하위 조립세트가 보이겠지만, 지금은 일단 "SmRooms" 이것만 다루도록 하자. SmRooms 하위 조립세트를 열면, 객체 창 오른쪽 목록에 "NorRmSm"으로 시작하는 부품들이 표시될 것이다.


이제 하위 조립세트를 불러와 작업할 준비가 끝났다. "NorRmSmWallSide01"을 선택한 뒤 랜더 창에 드래그해 두는 식으로 셀 안에 놓아보자. 랜더 창에 객체가 제대로 보일 수도 있지만, 잘 보이지 않을 수 있다. 딱히 상관은 없으니 셀 뷰 창 오른쪽 목록에 새로 생성된 참조 ID(reference ID)를 우클릭해라. "편집(Edit)"을 선택해라. 아래 그림에 나온 것처럼, XYZ 좌표를 0,0,0 으로 수정한 뒤 OK를 누르자. 원점에 놓이도록 좌표값을 수정하면 즉시 객체를 확인할 수 있다. 

또한 셀 창에 보이는 참조 ID를 더블클릭하여 수동으로 카메라 시점을 객체에 맞출 수도 있다. 그러면 부품 바닥이 공간에 떠있는 것이 보일 것이다. 또한 ID를 더블 클릭하면 객체를 선택한 상태로 두게 된다. 이제 객체를 인터페이스 튜토리얼에서 설명했던 카메라 조작키를 이용해 시점을 변경해 볼 수 있다.


격자grid 이해하기


진도를 더 나가기 전에, "격자the Grid"와 "맞추기Snapping"라는 개념에 대해 이해할 필요가 있다. 눈에는 보이지 않지만 랜더 창에서 객체를 움직이는 등의 여러 각종 작업은 3차원 데카르트 좌표계의 격자 내에서 작업하는 것이다. 이 격자의 중심, X축, Y축, Z축이 직교하는 점(0,0,0)을 "원점Origin"이라고 부른다. 앞서 NorRmSmWallSide01의 좌표position를 수동으로 맞췄는데, 그 점이 바로 원점이다.


(렌더 창의 내부는 무수히 많은 수의 3차원 격자들로 이루어져 있다. 참조의 위치를 바꾸는 일은 버텍스vertex를 수정함으로써 이루어진다)


작업 내내 격자를 맞춰 줄 필요는 없다. 예를 들어 적 npc를 배치하거나, 보물 상자를 회전시키거나, 조명 위치를 조정하는 일을 그렇게 정밀하게 할 필요는 없다. 하지만 조립세트로 작업을 할 때는 격자가 중요하다. 조립세트 부품들은 서로 정확히 "맞물리도록(snap)" 설계되어 있다. 이렇게 조립세트를 정밀하게 맞추는 작업은 격자가 있어야지만 가능하다. "눈대중으로 대충 부품을 맞추게 되면 틈새가 벌어지고 간격이 생길 수밖에 없다.


크리에이션 킷 내부의 모든 것들은 단위Units에 맞춰져 있다. 이 단위는 실제 현실 세계의 측정 단위와는 일치하지 않으며, 아래 그림을 보면 캐릭터와 조립세트가 어떤 비율로 맞춰져 있는지 이해할 수 있을 것이다.


노드 유적은 128단위의 격자에 맞춰 작업하기 쉽도록 만들어져 있다. 단위를 설정하려면, 랜더 창 아무데서나 오른쪽 클릭 후에 "렌더 창 속성(Render Window Properties)"를 선택하거나 주 도구 모음에서 3번째에 있는 아이콘을 클릭하면 된다. 이걸 누르면 아래 그림과 비슷한 창이 뜰 것이다. 만약 이 창에서 다른 탭이 선택된 상태라면 "운동 탭(Movement Tab)"을 선택하자. 이 탭에는 여러 옵션들이 있다. 하지만 일단 지금은 "격자에 맞추기(Snap To Grid)" 가 128로, "각도에 맞추기(Snap To Angle)"가 45로 설정되어 있는지만 확인하면 된다. Apply를 눌러 설정을 저장하고 창을 닫도록 하자.


(SE버전 CK툴은 생긴게 조금 다르지만, Movement 탭만 찾을수 있으면 된다.)


다시 랜더 창으로 돌아와서, 격자에 맞추기 기능이 활성화됐는지 확인해보자. Q키를 누르거나 메인 툴바의 단추를 눌러 격자에 맞추기 기능을 켜고 끌 수 있다. 마찬가지로 각도에 맞추기 기능도 활성화되어 있어야 한다. 각도에 맞추기 기능은 Ctrl+Q를 누르거나 주 도구 모음의 버튼을 눌러 켜고 끌 수 있다.

(파란색으로 동그라미 친 부분의 왼쪽에서부터 각각 격자에 맞추기snap to grid, 각도에 맞추기snap to angle이다)


격자, 각도에 맞추기 기능이 켜져 있다면 객체를 이동시킬 때 (설정한) 각에 정확히 맞춰서 움직이게 된다.

(Snap to grid(상) / Snap to angle(하) 기능이 활성화되었을 때의 모습. 부품을 한 번 움직일 때마다 해당 참조의 격자grid는 정확히 128만큼, 각도angle는 45도만큼 이동한다.)


3단계: 부품들의 각을 맞추기


놓아둔 NorRmSmWallSide01 를 선택하자. "ctrl+D" 단축키를 눌러 복사품을 만들자. 그러면 새로운 NorRmSmWallSide01 참조가 기존의 참조 위에 직접 배치된다. 미리 알려두자면 복제된 개체는 자동으로 선택된다.


랜더 창 안의 객체를 클릭하고 드래그하여 새로 생성 된 벽 부품을 이동하라. 격자 맞추기 기능이 켜져 있으면 해당 위치에 딱 맞춰서 고정된다.

두 개의 벽만으로는 방을 만들 수 없다. 방을 만들려면 모퉁이가 필요하다! 객체 창에서 "NorRmSmCorIn01"을 검색한 다음 렌더 창으로 드래그하라. 부품을 바른 방향으로 회전시킨 뒤 벽 중 하나와 줄을 맞추고 제자리에 놓는다. 아래 그림을 확인하라. 각도에 맞추기 기능이 45도로 맞게 켜져있는지 기억해둬라. (빨간색 화살표로 표시된 참조가 바로 NorRmSmCorIn01이다)


그리고 이제 객체 창에서 "NorRmSmWallFront01"을 찾아 랜더 창으로 드래그하라. 필요한 경우 조각을 회전하여 모서리 조각 중 하나와 나란하게 만들어라. "NorRmSmWallFront01" 부품 2개를 추가해 외벽을 완성해보자. 그런 다음 모서리와 같은 개수의 "NorRmSmWallFront01"과 "NorRmSmWallSide01"조각을 사용하여 방의 벽 각면을 마무리 할 수 있다.


방은 거의 완벽하다. 중앙에 있는 틈새 구멍을 제외하면 말이다. 아래 그림을 참고하라. 틈새에 끼워 넣을 수 있는 NorRmSmMid01 부품을 놓는다. 이 중간 바닥 부품을 복사해서 구멍이 채워질 때까지 맞춰 넣는다. 이 시점에서 확인해야 할 사항이 있다.이 부분도 특정 흐름을 가지고 있으므로 회전이 중요하다. 자세히 보지 않으면 그런 흐름이 보이지 않을 수도 있다.

또한 NorRmSmMid01 부품은 바닥뿐만 아니라 천장으로도 구성되어 있다. 천장 흐름을 확인하려면 천장을 보도록 카메라를 돌려야 한다. 부품의 천장 부분을 보고 방향에 주의하여 맞춰라. 각도를 맞추는 데 필요한 경우 각 Mid 부품을 따로 회전시켜야 한다. 올바른 배치를 보려면 아래 그림을 확인하라.


4단계: 방 연결하기, 실내공간 배치 마무리하기


벽, 천장, 바닥이 있는 방을 완성했다. 그런데 빠져 나갈 길이 없으므로, 이제 문을 추가할 시간이다. NorRmSmWallFront01 부품 중 하나를 렌더링 창에서 선택한 다음 "삭제"를 눌러 삭제하라. 객체 창에서 NorRmSmWallFrontExSm01을 검색하여 렌더 창으로 드래그하라. 이때 전면과 측면의 일관성을 유지해야 한다는걸 기억하자. 이 출구는 "전면" 벽에 있으므로 "전면" 출구 부품을 사용해야 한다.


+어떤 객체를 선택했는지 잘 모르겠는가? 크리에이션 킷 주 도구 모음 창의 왼쪽 하단 모서리에 선택된 객체의 이름이 표시된다. 선택한 개체가 여러 개인 경우 가장 최근에 선택한 개체 이름과 "+ X more"가 표시되어 선택한 객체 갯수를 알 수 있다. 셀 뷰 창에도 현재 선택한 객체 항목이 강조 표시된다.


새 출입구에 연결된 복도를 만들어보자. 객체 창에서 WorldObjects> Static> Dungeons> Nordic> SmHalls을 열어라. 여기서 NorHallSm1WayEndExSm01을 검색한다. "Exit Small"의 줄임말 인 ExSm 접미사에 유의하라. 이렇게 하면 노드 유적 조립세트에 있는 다른 ExSm 조각과 함께 맞출 수 있게 된다. 격자 맞추기가 아직 켜져 있는지 확인하고 부품을 함께 맞춘다.

이제 이 던전의 첫 번째 실내공간 배치를 완료하는 데 필요한 모든 것을 알게 되었다. 아래 그림을 보고 따라서 만들어보자.


5단계: 인게임에서 확인해보기


작업이 끝나면 인게임에서 결과를 테스트해보는 것이 좋다. 공간을 걸으면서 편집기에서 실수로 놓친 틈이나 간격이 있는지 찾아보라.


위의 예제 플러그인을 게임에다가 불러오고, 게임 안에서 콘솔에 COC LokirsTomb 명령어를 입력하여 직접 만들어 본 방으로 순간이동이 가능하다.


+테스트 할 때 COCMarkerHeading을 사용하면 도움이 된다. 이 표시 객체는 테스트용으로만 사용된다. COC 콘솔 명령을 사용할 때 플레이어 캐릭터가 나타날 곳에 표시가 나타난다. 이 표시 객체는 각 셀당 하나씩만 배치해야 한다. 셀에 기존 coc 마커가 있는 경우 플러그인을 저장하기 전 저장 파일을 다시 불러오라. 다른 표시와 마찬가지로, 표시가 보이지 않는 경우 'M'을 누르면 표시된다. 객체 창에서 찾을 수 없는 경우 필터 상자에 "COC"를 입력하고 * ALL 카테고리를 선택하면 된다.