1. 뭐가 어디 있는지를 확인합시다
이제 몸과 마음의 준비를 마쳤으니, 최소한의 단계를 획득하기 위한 준비과정을 시작해 봅시다. 가장 먼저 해야 할 것은 Crusader Kings 2 의 다양한 모딩 가능 데이터들이 어디에 들어있는지를 우선 확인하는 것입니다.
1_ 게임 원본의 경로를 확인합시다
Crusader Kings 2 의 설치는 일반적으로 사용자가 직접 하지 않고, 스팀 클라이언트를 통해 이루어집니다. 그렇다 보니, 스팀과 관련한 환경에 익숙하지 않은 사용자들의 경우 게임이 어디에 설치되어 있는지 찾는 것부터 어려움을 겪는 경우가 많이 있더군요.
일반적인 경우, 스팀 클라이언트는 자신이 설치된 폴더 아래에 steamapps 폴더를 만들고, 그 이하에 common 폴더를 만들어서 거기에 게임을 설치합니다. 따라서, 사용자가 따로 변경하지 않았다면, 보통 다음의 경로에 게임이 존재합니다.
- 64비트 윈도우의 경우: C:\Program Files (x86)\Steam\steamapps\common\Crusader Kings II
- 32비트 윈도우의 경우: C:\Program Files\Steam\steamapps\common\Crusader Kings II
만약 여기에 없는 경우, 다음과 같은 절차로 확인이 됩니다.
- 스팀 클라이언트를 실행하고 로그인합니다.
- 라이브러리의 게임 목록에서 Crusader Kings 2 를 마우스 우클릭합니다.
- 팝업 메뉴 가장 마지막의 [속성] 을 클릭하여 속성 창을 띄웁니다.
- [로컬 파일] 탭을 선택하시면 [로컬 콘텐츠 폴더 보기] 버튼이 있습니다.
2_ 하위 폴더들의 역할을 확인합시다
설치 폴더를 확인했으니, 다음 단계는 그 이하의 폴더에는 무엇이 들어있는지 확인할 차례네요. 원본 게임의 폴더 구조를 알아야 하는 이유는, 우선 원본 파일을 수정하려면 그와 관련된 파일들이 어디 있는지를 알아야 하며, 또한 직접 추가한 새로운 내용을 게임에 적용하려면 그 파일을 어디에 넣어야 하는지를 알아야 하기 때문입니다.
2.6.3 버전을 기준으로, Crusader Kings II 폴더 이하의 구조는 다음과 같습니다. 모딩과 관계 없는 폴더들은 빼겠습니다. 각각의 내용은 뒤에서 자세히 또 다루게 되기 때문에, 여기에서는 어느 폴더에 어떤 내용이 있더라 정도로만 확인을 하십시오.
★ 최상위 폴더 목록
- common : 여러 가지 텍스트 데이터가 들어 있습니다. 법률, 종교, 문화, 건물, 모디파이어, 트레잇 등 시스템과 관련한 모딩을 하려면 이 폴더를 정말 뻔질나게 드나들게 됩니다. 매우 중요한 폴더이므로 이 폴더 아래의 내용은 조금 후에 더 자세히 보겠습니다.
- decisions : 게임 내에서 사용하는 각종 디시전 스크립트가 들어 있습니다. (예: 유혹 납치 눈뽑 X뽑 등등...)
- dlc : 별도로 출시된 개별 DLC 에 관련된 데이터들이 들어 있습니다. (DLC 를 구매하지 않은 상태로 이 데이터를 건드리는 건 Paradox 와의 묵시적인 약속을 깨뜨리는 게 됩니다.)
- events : 게임 내에서 사용하는 모든 각종 이벤트 스크립트가 여기에 있습니다.
- gfx : 게임에서 사용되는 수많은 그래픽 데이터(아이콘 포함)는 모두 이 아래에 모여 있습니다. 그래픽적 요소를 필요로 하는 모딩에서 자주 오게 될 겁니다. 단, 맵 관련 데이터는 제외입니다.
- history : 게임 내에서 등장하는 역사의 시뮬레이션에 사용되는 데이터들입니다. 역사적 인물, 지역, 작위, 기술 등에 관한 정보를 갖고 있어서, 게임이 처음 시작될 때에 이 폴더 이하의 데이터를 바탕으로 새 게임을 만들게 됩니다.
- interface : 게임 인터페이스에 관한 모든 설정 및 데이터 파일이 들어 있습니다. 각종 그래픽 데이터는 gfx 이하에 있고, 그 그래픽을 게임상에 연결하기 위한 설정 데이터가 여기 있다고 생각하면 쉽습니다.
- localisation : 언어 파일이 여기에 모여 있습니다. 이벤트나 디시전 등을 직접 만들거나, 기타 게임의 요소를 새로 만들게 되면 화면에 출력할 메시지 등을 직접 쓰게 되기 때문에 여기도 자주 오게 될 곳입니다.
- map : 이름 그대로, 맵 관련 데이터는 대부분 여기 있습니다. 2.4 버전대까지만 해도 "모두"였는데, 2.5 버전대에서 프로빈스 기본 데이터가 common 이하로 옮겨가는 바람에, 이제 "대부분" 입니다.
- mod : 많은 사람들을 혼란에 빠뜨리는 폴더입니다. 이름 때문에 많은 사용자들이 자신이 사용하기 위한 모드를 이 폴더 아래에 설치하는 실수를 범하십니다만, 주소를 잘못 찾으셨습니다. 이 폴더는 그냥 없다고 생각하세요. 더미 폴더입니다.
- music : 게임내에서 사용되는 배경음악이 저장되어 있습니다.
- sound : 게임내에서 사용되는 효과음 데이터가 저장되어 있습니다.
★ common 폴더 내의 폴더 및 파일
게임 시스템과 관련한 모든 데이터는 다 common 폴더 아래에 있다고 보면 맞습니다. 모딩의 측면에서 보면 정말 여기는 노다지판(...)이죠. 기본적으로, 게임 시스템과 관련된 특정 컨텐츠의 모딩이 가능한가의 여부는 이 폴더 안에 그에 관한 데이터가 존재하는지 여부로 판가름이 난다고 봐도 틀리지 않습니다. (여기에 데이터가 없다면 대개 하드코딩입니다.) 그래서, 이 폴더 아래의 파일과 폴더들에 대해서는 간단히라도 살펴볼 필요가 있습니다. 우선 각 폴더들의 역할을 먼저 확인해 봅시다.
- bookmarks : 게임 구동 후 [혼자서 하기] 버튼을 누르면, 미리 설정된 여러 시대들이 출력되고, 그 시대를 선택하면 그 시대를 대표하는 인물들이 나오고 그들을 선택하여 플레이할 수 있게 되어 있습니다. 바로 그 데이터(시작 가능 시기, 대표 인물)가 여기에 있습니다.
- buildings : 건물 데이터가 모두 여기 모여 있습니다. 건물을 모딩하려면 여기의 데이터들을 수정하거나 새 데이터를 추가해야 합니다.
- cb_types : 전쟁 명분 데이터가 저장되어 있는 곳입니다. 언제 전쟁을 할 수 있는가를 이 곳에서 정의합니다.
- combat_tactics : 전투 시 양측이 사용하는 각종 전술의 발동 조건, 효과 등에 대해서 정의하고 있습니다.
- council_positions : 2.5 에서 추가된 자문회 구성원의 다섯 가지 포지션 - 왕당파부터 불평분자까지 - 에 관한 정보를 가지고 있습니다. 각각의 캐릭터들이 성향을 결정하는 기준, 그리고 투표 패턴의 목록(이로부터 연결되는 구체적인 투표알고리즘은 다른 폴더에 있습니다)을 가지고 있습니다.
- council_voting : 자문회 구성원의 성향에 따른 실질적인 투표알고리즘은 여기에서 정의됩니다. 즉, council_positions 에 정의된 투표 성향 알고리즘의 실제 데이터가 여기에 들어 있습니다.
- cultures : 게임 내에 등장하는 각종 문화에 대한 정의는 여기에 거의 다 들어 있습니다. 문화 모딩을 하려면 여기를 잘 알아야 합니다.
- custom_localisation : 2.6 에서 추가된 요소로, 특정한 언어 표시 요소를 조건에 따라서 다르게 출력하고 싶을 때 사용할 수 있습니다. (예를 들면, Pet 이라는 언어 표시 요소를 호출했을 때에, 고양이 펫을 기르고 있다면 Cat, 개 펫을 기르고 있다면 Dog 을 자동으로 출력하도록 할 수 있습니다.)
- death : 2.6 에서 새로 추가된 요소로, 그동안 제한적으로만 모딩이 가능했던 "죽음의 원인"과 관련된 요소들을 자유롭게 모딩할 수 있게 해 줍니다.
- death_text : 2.6 에서 새로 추가된 요소입니다. 2.6 에서 캐릭터 사망 시 마치 방랑시인이 노래하는 것처럼 왕에 대한 평가가 출력되는 것을 볼 수 있는데요. 특정한 조건을 만족하면 특정 메시지를 출력하는 등의 설정을 여기에서 할 수 있습니다.
- defines : 현재는 아무 역할도 하지 않습니다. 아마도 잠시 후에 보게 되는 defines.lua 파일을 이리로 옮길 예정이 아닌가 싶습니다.
- diseases : 질병 중에서 전염병으로 등장하는 질병들에 관한 정보 - 출현가능시기, 유행지역에 대한 효과 등 - 에 관한 정보를 가지고 있습니다. (개별캐릭터에 대한 효과가 아니라, 유행하는 지역에 대한 효과입니다)
- dynasties : 게임 내에 등장하는 다양한 가문들에 대한 데이터들이 저장되어 있습니다.
- event_modifiers : 캐릭터나 프로빈스 등에 붙을 수 있는 다양한 모디파이어들을 정의하고 있습니다. 정말 다양하게 활용이 가능하죠.
- execution_methods : 2.6 에서 추가된 요소입니다. 각종 처형 방법(...)들을 모딩할 수 있습니다.
- game_rules : 2.6 에서 추가된 요소인 각종 게임 규칙 요소들을 모딩할 수 있게 해 줍니다.
- government_flavor : 2.5 에서 새로 추가된 요소인 정부 특질(Flavor)이 결정되는 규칙을 정하고 있습니다. 재미있는 기능이긴 한데, 그와 관련된 게임 내의 연결요소는 딱히 없는 듯 해요.
- governments : 정부 체제를 정의하는 곳입니다. 봉건제, 공화제 등 다양한 정부체제의 특징을 모딩하려면 이곳의 파일들을 모딩해야 합니다.
- graphicalculturetypes : 이름은 거창하지만, 각 그룹별 피부색 정도만 여기서 정의합니다.
- heir_text : 2.6 에서 추가된 요소입니다. 위에서 death_text 를 설명드렸었죠. 캐릭터 사망 시 사망한 캐릭터에 대해 평가하는 글 말입니다. 이건 그 반대로, 새로 작위를 물려받은 후계자 캐릭터에 대한 인물평을 정의하는 데이터입니다.
- job_titles : 자문회 구성원인 5가지 직책을 정의합니다.
- job_actions : 자문회 구성원들의 임무를 정의하고, 그 임무와 그로 인해 발생하는 이벤트를 연결합니다. (구체적인 이벤트 데이터는 events 폴더에 있어요)
- landed_titles : 게임 내의 수많은 작위들은 모두 여기서 정의됩니다. 작위와 관련되는 모든 분야의 모딩이 이 폴더의 데이터와 연관됩니다.
- laws : 게임 내에서 사용하는 법률과 관련한 데이터들이 여기 있습니다.
- mercenaries : 게임 내에 등장하는 많은 기사단, 용병대 등의 병종 구성을 정의합니다.
- minor_titles : 게임 내의 명예로운 칭호들을 정의합니다.
- modifier_definitions : 게임 내에서 사용되는 몇몇 동적 모디파이어(특수병종에 대한 모디파이어)를 정의합니다만, 거의 사용할 일이 없어 보입니다.
- nicknames : 캐릭터에게 붙는 별명의 데이터와 출현 조건을 정의합니다. 재미있는 별명이 많죠.
- objectives : 야망, 음모, 포커스 등에 대한 정의 데이터가 여기에 모여 있습니다.
- on_actions : 특수한 사건과 발생시킬 이벤트(의 목록)을 정의합니다. 굉장히 활용도가 높은 항목입니다.
- opinion_modifiers : 우호도를 증감시키는 모디파이어의 정의가 여기 있습니다.
- province_setup : 맵 데이터 중의 하나인데 이게 여기로 옮겨왔습니다. 각 프로빈스의 백작령 타이틀, 최대 홀딩 수, 지형 종류를 정의합니다.
- religion_modifiers : 종교권위 관련 모디파이어들을 여기서 정의합니다.
- religions : 각 개별 종교 및 종교 그룹에 관한 모든 정의가 여기에 모여 있습니다.
- religious_titles : 종교 작위를 정의하는데, 정확히는 교황을 선거로 뽑는 가톨릭과 프라티첼리에서 교황 선거인이 되는 추기경 작위를 정의하는 곳입니다.
- retinue_subunits : 각 상비군 세트를 구성하는 서브 유닛의 병종 및 구성, 선택가능 조건 등을 정합니다.
- scripted_effects : 2.4 에서 추가된 스크립트들 중 하나로, 특정한 명령어(효과)의 조합을 하나의 스크립트로 묶어서 스크립트 이름만으로 효과를 호출할 수 있도록 해 줍니다. 소규모 모딩에서는 크게 이용할 일이 없지만, 중간규모 이상의 모드에서는 굉장히 유용하게 쓰일 수 있습니다.
- scripted_trigger : 2.4 에서 추가된 스크립트들 중 하나로, 특정한 조건문의 조합을 하나의 스크립트로 묶어서 전체로서 참/거짓을 판단할 수 있도록 해 줍니다. 이것도 정말 유용하게 쓸 수 있어요.
- special_troops : 특수병종(전투 코끼리, 전투 낙타, 기마궁수)에 대한 기본 데이터를 정의합니다. (참고로, 일반병종의 세부데이터는 defines.lua 파일에 있습니다. 잠시 후에 봅니다.)
- stories : 설명하기 애매하네요. 아마 특정 캐릭터에게 특정 기간 동안 이벤트를 통해서 어떤 이야기를 보여주는 기능 같은데, 제대로 투입된 기능은 아닌 것 같습니다.
- trade_routes : 실크로드의 경로를 정의합니다.
- traits : 각각의 트레잇의 정의, 조건, 효과 등을 정합니다.
- triggered_modifiers : 캐릭터가 여기서 정한 특정한 조건을 만족하면 자동으로 함께 정의된 모디파이어의 효과가 발생하도록 하며, 조건이 충족되지 않는 순간 자동으로 그 효과가 소멸되도록 하는, 2.4에서 추가된 스크립트 중 하나입니다.
다음은 common 폴더 내에 들어 있는 파일들에 대해서 간단히 보겠습니다.
- achievements.txt : 스팀 업적 달성 조건 데이터입니다. 모딩할 일 없습니다.
- defines.lua : 게임 내에서 사용되는 수많은 각종 기본 수치들을 정의하는 파일입니다. 사용자에 따라서는 고칠 일이 정말 많을지도 모릅니다. 다만, 이 파일은 특성상 매우 민감한 파일이므로, 수정할 때에 상당히 주의를 해야 합니다.
- defines.txt : 현재로서는 게임 종료 날짜(1453.1.1)만 의미가 있을 겁니다. 다만, 게임 플레이 시간을 앞당기는 어떤 DLC도(올드갓, 샤를마뉴) 사용하고 있지 않다면, 게임 시작 날짜(1066.9.15)도 의미를 가질지도 모르겠네요. DLC 와 연계된 부분이 있어서, 이 부분을 고친다고 해서 시작 날짜가 더 앞으로 가지는 않을 것 같습니다. 저도 해 보지는 않았어요.
- hints.txt : 게임 구동 시 데이터를 로드하면서 보여주는 힌트들을 정의하는 파일입니다.
- region_colors.txt : 사용여부를 잘 모르겠네요. 이 파일은.. 지역 표시 색깔을 정하는 것 같은데..
- static_modifiers.txt : defines.lua 와 함께, 게임의 기본이 되는 정적 모디파이어들을 정의하는 파일입니다.
- technology.txt : 기술들의 효과를 정의합니다.
이 내용들 중 상당수는 이 책이 진행되면서 한 번 이상 모딩을 할 기회가 있을 겁니다. 물론 제가 해 본 부분에 한해서요. ^^ 저도 모르는 부분은 가르쳐드릴 수가 없으니까요. 이제 다음 페이지로 넘어갑시다.
(최종 업데이트: 2017. 03. 01, 대응 버전: 2.6.x)