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

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

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

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


CK툴의 레벨 디자인을 공부하면서 배운 내용을 몇개 좀 정리했는데

그냥 워드에 꿍쳐두긴 좀 그래서 여기다가 한번 올려보려고 함

 

원래 계획은 베데스다가 크리에이션 킷 위키에다가 작성한 튜토리얼을 직접 번역해서 올리는게 목표였음

그런데 미친 한 강의 분량의 내용을 작업하는데 무슨 6시간씩이나 걸리더라... 가성비도 너무 구리고 내용도 지나치게 길어지고 또 영어 원문을 한글로 옮겼을 때의, 그 특유의 어색함과 가독성 문제도 내 능력상으로는 해결하기 힘든것도 있고해서 몇개 하다가 때려침

대신 내가 그걸 읽으면서 이해하고 정리했던 부분을 (내 개인적인 생각이나 따로 찾아본 추가적인 팁 같은것도) 자연스럽게 이야기하듯이 알려주고 싶음ㅋㅋ나도 아는건 거의 별로 없지만 그래도 괜찮으면 좋게 봐줬으면 해

=

개요

레벨 디자인이란 무엇일까? 여러가지로 생각해봐야 할 것들이 한두개가 아니라서, 이 질문에 한번에 대답하기는 쉽지 않다, 대신 보다 우회적인 방법으로 레벨 디자인에는 어떤 것들이 있어야 하는가? 레벨 디자인은 무엇을 포함하는가? 등등에 대해서는 차근차근 하나씩 답해볼 수 있을 것이다. 나는 이 글에서 그런 방식으로 레벨 디자인에 대해서 알고 있는 걸 최대한 설명해볼려고 한다

일단 우리가 경험으로도 잘 알고 있다시피 맵(또는 층Level)은 게임플레이에서 절대 빼놓을 수 없는 아주 중요한 요소이다, NPC와의 전투나 상호작용, 모험, 스토리, 야스 등등 한 게임에서 재미를 느끼게 해주는 여러 컨텐츠들은 모두 일정한 공간이 있어야지만 가능하니까, 그리고 베데스다 게임에서 그 공간은 "조립세트Kits"라는 재료를 사용해서 만들어진다. 

그러니까 레벨 디자인은 1. "주어진 재료들을 이용하여 일정한 공간을 만드는 방법"을 포함한다고 할 수 있겠다.

그리고 맵을 만들 때 해당 공간을 어떻게, 무엇으로 채워넣어야 할 지에 대한 고민도 꼭 필요하다, 어떤 공간을 아무런 목적이나 특징도 없이 그냥 단순히 만들어놓기만 한다면 아까 언급했던 수많은 컨텐츠들과 전혀 어울리지 않으니까 게임에 대한 몰입감이 싹 날아가게 될 것이다. 예를 들어 성노예들을 마구 잡아다가 감금조교시키는 미친 탈모어 감옥이 있다고 하자, 그럼 해당 공간에는 감옥에 어울리는 여러 고문도구들이 배치되어야 할 테고, 또 감옥은 인공적인 건축물이므로 자연 생성된 동굴같이 길이 무작위하게 이어지면 안 되고 각이 딱딱 잘 맞춰져 있어야 할 것이다. 

그렇다면 레벨 디자인은 2. "스토리와 로어에 어울리도록 맵을 구성하고 몰입감 조성에 도움이 되는 여러 잡동사니들을 채워넣는 방법"을 포함한다고도 할 수 있다.

로어 프렌들리나 몰입감 따위는 생까고 나는 그냥 재미만 있으면 하겠다고 쳐도, 맵 자체가 재미가 없으면 금방 흥미를 잃게 될 것이다. 맵에 아무런 함정이나 인카운터도 없으면 탐험하는 맛이 안 살 거고, NPC는 한 마리도 없이 맵이 너무 단조롭고 구리기만 하면 쉽게 지루해질 뿐더러(아니면 방 하나에만 NPC를 몰빵한 것도 문제고), 무엇보다 보물상자와 같이 그 맵을 탐험해야만 하는 동기를 자극하는 보상이 전혀 주어져 있지 않다면 한 5분도 버티지 못하고 게임을 끄게 될 것이다. 그런 불상사를 방지하기 위해서는 레벨 디자인에 3. "레벨 자체에 흥미를 느끼게 하는 여러 내부적인 요소"들도 포함시켜야 한다.

지금까지의 설명을 정리해 보면 레벨 디자인은 최소한 1)공간을 만드는 방법, 2)공간을 꾸미는 방법 - 외부적 흥미 유발용, 3)공간을 꾸미는 방법 - 내부적 흥미 유발용 등을 포함한다고 할 수 있다,  CK툴에서는 지금껏 언급한 레벨 디자인을 실현시키기 위한 각종 도구들을 제공해 준다. 그럼 이제 개요는 슬슬 끝내고 그런 도구에는 무엇이 있는지 하나씩 알아보도록 하자

=

0. 인터페이스 (이 부분은 알고 있으면 그냥 넘어가셈)

일단 무작정 CK툴을 한번 켜 보자. 그럼 아래처럼 바로 끄고 싶어지는 창이 여러개 뜰 것이다


이걸 다 언제 익히나 좌절할 필요도, 각 기능들이 무엇을 의미하는지 벌써부터 전부 하나하나 알아볼 필요도 없다. 지금 우리가 하고 있는 건 레벨 디자인이니까 그에 필요한 도구만 알아보면 된다. 일단은 뭐가 뭔지 가볍게 감은 잡고 가보자

1. 메인 툴바는 CK툴 거의 대부분의 기능이 실행되는 곳이다. 하도 뭐가 많은지라 지금은 딱 이런 게 있다는 사실과, Ctrl+Z만 알아도 된다.

2. 렌더 창은 게임의 데이터를 3d 모델로 나타내어, 시각적으로 확인하고 물리적으로 수정할 수 있게 해주는 창이다. 밑에서 설명할 셀 뷰에서 셀이란 걸 불러올 수 있는데, 여기서 그 셀을 조작할 수 있다.

3. 셀 뷰는 셀을 관리할 수 있는 창이다.

셀Cell보통 우리가 맵이라고 부르기도 하는 곳) 

실내 셀은 로딩을 통해서 들어가지는 그 방이 맞고, 실외 셀은 로딩 없이 실시간으로 처리가 이루어지는 공간이다(물론 실내나 실외나 한번에 한 셀만 불러오기 때문에, 실외에서 로딩이 안 걸린다고 여러 셀을 동시에 렌더링하거나 그러진 않는다).


셀 뷰를 보면 뭔가 리스트 같은게 겁나 많은데 지금 하나씩 설명해보도록 하자

(1) World라고 위에 적혀 있는 드롭다운 메뉴에는 월드 스페이스(World Space)들이 담겨 있다. 여기서 실외 셀들이 "월드 스페이스"라는 지역에 따른 큰 범위 속에 포함되어 있는 걸 확인할 수 있다

가령 화이트런과 윈드헬름, 블랙리치, 알프탄드, 소븐가르드 등의 커다란 월드 스페이스들이 있다면 그 내부에 작은 실외 셀들이 존재하는 것이다. (참고로 화이트런의 입구 쪽이랑 스카이포지 쪽은 서로 다른 셀로 구분되어 있다)

DLC를 설치하면 추가적으로 DLC 월드 스페이스들이 추가되고, 또 실내 셀들은 아예 전부 따로 묶여서 Interiors라는 별개의 월드 스페이스로 취급되고 있다(그러니까 당연히 한 실외 지역의 월드 스페이스 내부에 실내 셀은 하나도 없다).

(2) X Y가 있는 부분은, 만약 우리가 어떤 실외 셀의 좌표를 알고 있을 때 그걸 거기다가 입력하면 바로 해당 셀을 불러올 수 있다. 아쉽게도 실내 셀은 입력이 불가능하다.

(3) World 드롭다운 메뉴에서 월드 스페이스를 하나 클릭하면, 바로 밑에 보이는 리스트에서 선택한 월드 스페이스에 포함되어 있는 셀들이 표시될 것이다. 그 중 아무거나 더블클릭을 해보면 바로 렌더링이 이루어지고, 렌더 창에서 조작해볼 수 있다.

(4) 오른쪽에 보이는 목록은 셀을 선택했을 때 그 내부에 있는 여러 참조Reference들의 목록을 표시한다. 참조가 뭔지는 나중에 설명하겠다 (간단히 말하자면 렌더 뷰에서 눈으로 확인할 수 있는 여러 아이템들)

(5) 참조 목록 위에 있는 검색창은 Filter Box라고 부른다, 여기다가 문자를 입력하면 (선택한 셀 내부에 있고) 해당 문자열을 포함하는 아이템들만 걸러져서 나오게 된다. 가령 황제를 죽이는 닼브퀘스트 DB11과 관련된 아이템들만 보고 싶으면 황제가 탔던 배(이름 기억이 안나네) 셀을 선택하고 검색창에 DB11을 입력하면 될 것이다

4. 객체 창은 게임 제작에 사용되는 데이터인 기본 객체base object들을 관리하는 곳이다.

셀 뷰와 유사하게 필터가 있고, 왼쪽에 카테고리와 오른쪽에 리스트가 있다. 셀 뷰와 마찬가지로 어떤 큰 범주를 클릭하면 그 내부에 있는 여러 객체들의 리스트가 나타나는데, 그 중 아무거나 하나를 선택하여 렌더 창에 불러올 수 있다.

그런데 주의해야 할 부분은 객체 창에 있는 기본 객체를 렌더 창으로 불러왔을 때, 실제로 우리가 불러오게 되는 것은 기본 객체가 아니라 그것의 참조reference라는 것이다. 참조를 불러온다는 개념은 윈도우 상에서 바로가기를 만드는 것과 비슷하다. 원본 MO2를 우클릭하여 바로가기를 생성한다고 할 때, 기존의 MO2 프로그램 자체는 복제되지 않으며 단지 해당 프로그램으로 통하는 주소만이 만들어지게 된다. 따라서 바로가기(참조)의 속성을 아무리 변경해도, 원본 MO2(기본 객체)에는 아무런 영향을 끼칠 수 없으며, 반대로 원본 MO2의 속성을 변경한다면 모든 바로가기들의 속성도 그것에 맞춰서 변경된다.

마찬가지로 렌더 뷰에 표시되어 있는 참조도 일종의 바로가기일 뿐, 기본 객체 그 자체는 아니다. 일반적으로 모딩 작업에서 우리가 수정하는 것은 바로 이 참조이며, 기본 객체는 (다른 모드들에 영향을 끼칠 수도 있으므로) 쉽게 변경하지 않는다는 것을 명심하자.

=

1-1. 플러그인 생성 방법

먼저 크리에이션 엔진이 사용하는 데이터의 형식에 대해 간단히 알아보자. 크리에이션 엔진은 크게 마스터 파일과 함께 여러 플러그인들이라는, 이 두 가지의 데이터 형식을 사용한다.

마스터 파일(확장자명 .esm)에는 (아까 보았던 셀이나 객체들을 포함하여) 수많은 핵심 데이터들이 담겨져 있다. 대표적인 마스터 파일인 Skyrim.esm에는 원본 게임이 사용하는 모든 데이터가 담겨져 있다.

플러그인(확장자명 .esp, .esl)은 .esm보다 작은 형태의 데이터 집합체이다. 플러그인은 마스터 파일의 위에 덮어씌워져 불러오게 되고, 원본 .esm가 담고 있는 데이터들의 내용을 참고하여 새로운 데이터를 만들거나, 아니면 원본 데이터의 내용을 수정하기도 한다(물론 그 수정된 내용은 플러그인에만 저장되며 원본은 변하지 않는다)

CK툴에서는 마스터 파일과 함께 여러 플러그인들을 불러올 수 있는데, 이 때 주목해야 할 점은 불러오는 것과는 별개로 게임에서 수정된 사항들은 모두 활성 파일Active File로 지정한 하나의 플러그인에만 저장된다는 것이다.

가령 Skyrim.esm과 함께 불러올 플러그인으로 a.esp와 b.esp라는 두 개의 플러그인을 선택하고, b를 활성 파일로 지정한다면 Skyrim.esm이나 a를 이용한 모든 변경사항은 오직 b에만 저장된다.

만약 활성 파일을 아무것도 지정하지 않고 단지 불러오기만 했다면, 나중에 변경사항을 저장할 때 원치 않아도 반드시 새로운 활성 파일을 만들게 된다. 그러니까 처음에 불러올 때부터 활성 파일을 잘 선택하도록 하자.

 

CK툴에서 플러그인은 File>Save로 쉽게 만들 수 있다. 켜자마자 바로 그냥 이렇게 만들어버리면 아무런 데이터도 담기지 않은 빈 플러그인이 만들어지므로 헛짓거리이다.

우선 File>Data에서 원하는 마스터 파일을 (필요하다면 플러그인도) 더블클릭하여 활성화시킨 다음 불러와야 한다. 나는 Skyrim.esm과 Update.esm만 불러오도록 하겠다. 잠시 기다리면 불러오기가 끝나는데, 이 때 Save를 눌러 플러그인을 저장하도록 하자. 그럼 자동으로 Skyrim과 Update.esm을 선행으로 요구하는 플러그인 하나가 만들어지게 된다. (동시에 해당 플러그인이 활성 파일로 지정된다)

+선행으로 요구되는 플러그인은 다음번에 다시 불러올 때는 굳이 체크하지 않아도 자동으로 불러와진다, xEdit도 마찬가지

 

플러그인을 직접 만들어 활성 파일을 생성할 수도 있지만, 이미 존재하는 놈을 활성 파일로 지정할 수도 있다. File>Data에서 원하는 플러그인을 선택하고, 파란 줄이 쳐졌으면 아래에 보이는 Set as Active File을 누르자. 그럼 해당 플러그인의 Status가 Plugin File에서 Active File로 바뀌게 된다.

=

1-2. 렌더 창 조작법

눈으로 보면서 조작할 맵이 있어야 하므로, AnisesCabin01이라는 실내 셀을 불러오도록 하겠다. 그러면 렌더 창에 이런 모습이 보일 것이다.

이 화면이 나오면 성공적으로 방을 불러오는 데 성공한 것이다. 이제 쉬프트 키를 누른채로 마우스를 움직여 화면을 이리저리 둘러봐라. 원하는 객체를 왼쪽 클릭하면 지정이 되고(뭔가 빨초파의 선들이 보일 것인데 이를 경계 상자bounding box라고 한다), 카메라 초점이 그쪽으로 고정된다. 고정된 상태에서 화면을 움직이면 객체를 중심으로 카메라가 회전한다.

마우스 휠휠을 클릭당연히 처음에는 낯설 것이다, 이런 조작이 익숙해질려면 시간이 좀 필요하다.

Shift+F 지정한 객체 쪽으로 카메라 초점을 맞춘다

T 위에서 아래를 내려다보는 시점으로 카메라가 바뀐다

Y 정해진 카메라 시점을 순환해가며 보여준다

A 라이팅을 켜고 끌 수 있다

M 마커 및 효과, FX 활성화 (아직 몰라도 된다)

또한 객체 숨김 기능이란 것도 있다. 아무 객체나 클릭해서 선택한 다음 숫자 1번 키를 누르면 반투명 상태가 되고, 다시 한번 더 누르면 완전히 투명해진다. 투명해진 객체는 셀 뷰의 레퍼런스 리스트에서 이름이 파란색으로 표시되고, 만약 선택을 해제하면 렌더 뷰에서는 다시 선택할 수 없다.

+내용추가, alt + 1으로 숨겨진 개체들을 다시 불러올 수 있다

만약 투명해진 객체를 다시 보이게 하고 싶으면 파란색 이름을 더블클릭해서 선택시키자.

=

1-3. 기즈모Gizmo 조작방법

CK툴은 기즈모Gizmo라고 불리는 직관적인 인터페이스를 제공한다, 기즈모란 렌더 창에서 한 객체를 움직이고, 회전시키고, 크기를 조절할 수 있게 해주는 도구이다. 사용법이 워낙 간단해서 바로 익힐 수 있을 것이다.

원하는 객체를 선택 후 E키를 누르면 해당 개체의 좌표를 이동시키는 기즈모가 나타난다. (Z,X,C키에도 각각 대응됨)

W키해당 개체를 

숫자 2번 키해당 개체의 크기를 조절하는 기즈모가 나타난다. (또는 S키를 누른 채 마우스를 드래그해도 된다)

원하는 기즈모를 불러온 다음 축을 누른채로 드래그하면 해당 방향으로 객체의 좌표가 수정된다. 원하는만큼 움직여 보도록 하자. 또 추가적으로 기즈모를 불러온 채 G키를 누르면 X축과 Y축의 방향이 바뀐다. 이는 말로 설명하는 것보다 직접 눌러서 확인해보는 게 빠르다.

같이보기: CK툴 주요 단축키


=

이제 CK툴의 기본적인 인터페이스와 조작법, 단축키를 알았으니 다음 글에서는 본격적으로 방을 생성하는 방법에 대해 배울 것이다.