나무모에 미러 (일반/어두운 화면)
최근 수정 시각 : 2024-11-28 17:17:52

베데스다 크리에이션 킷

Construction Set에서 넘어옴
1. 개요2. 상세3. 설치
3.1. 오류 해결
4. 사용법
4.1. 파일 확장자 설정 (ESM, ESH, ESL, ESP)4.2. 문자열 (String) 제한
5. 콘솔 명령어
5.1. 단독 사용 가능5.2. 레퍼런스 ID 필요
6. Papyrus
6.1. 기존 스크립트 언어와의 차이6.2. 예시6.3. 파피루스 로그
7. 관련 문서

1. 개요

파일:CreationKitSplash.png

베데스다 게임 스튜디오에서 무료로 공개한 크리에이션 엔진의 개발 도구. 이전에 엘더스크롤 4: 오블리비언, 폴아웃 3에서 사용했던 Construction Set이라는 프로그램을 발전시킨 것으로 스카이림/폴아웃 4 모딩시 사용된다. 엘더스크롤 시리즈로 수많은 모드를 뽑아낸 베데스다의 모드 툴답게 강력하고 편리한 기능으로 구성돼있어 프로그래밍이나 모델링에 기초적인 지식만 있으면 당장 공식 튜토리얼만 읽고도 어느 정도 제작이 가능하다. 단, 몇몇 dll이 요구된다.

2. 상세

엘더스크롤 3: 모로윈드의 PC판은 TES Construction Set이란 프로그램이 별도 CD로 본 게임과 함께 포장되어 있었는데 이것이 오늘날의 크리에이션 킷의 조상이라 할 수 있다. 폴아웃 시리즈에 있는 Garden of Eden Creation Kit 프로그램도 기본적으로는 Construction Set을 수정한 프로그램이다. G.E.C.K.의 경우 폴아웃 3의 발매 직후 바로 공개된 것은 아니며, 약 2달 정도의 간격을 두고 2008년 12월에 처음 공개되었다. 엘더스크롤 4: 오블리비언의 모드 툴인 컨스트럭션 셋과 거의 동일한 인터페이스와 구조를 가지고 있었기 때문에, 기존에 오블리비언 모드 제작에 익숙한 사람이라면 간단한 모드 정도는 매뉴얼도 한 번 들여다 보지 않고도 제작이 가능하였다. 이러한 구조는 엘더스크롤 5: 스카이림의 모드 툴인 크리에이션 킷에 이르기까지 계속 적용되었으며, 베데스다 게임 스튜디오가 기존 모드툴의 사용에 익숙한 모더들을 채용하는 것으로 볼 때 엘더스크롤 시리즈폴아웃 시리즈의 차기작에 있어서도 모드 툴의 기본 구조는 바뀌지 않을 것으로 예상된다.

비단 에디팅이나 모딩뿐만 아니라 아이템의 스펙 같은 게임 내부 정보를 볼 수 있기에, 그런 정보를 뜯는 사람들에게도 유용한 도구.

2017년 10월 31일 스카이림 스페셜 에디션 전용 크리에이션 킷이 모든 유저에게 풀렸다. 2022년 이전에는 베데스다 런처를 다운받아야만 설치할 수 있었으나 마이크로소프트의 제니맥스 인수 이후 베데스다넷 서비스가 종료되면서 스팀에서 다운받아 설치할 수 있도록 바뀌었다. 폴아웃 4 전용 크리에이션 킷도 마찬가지로 스팀에서 다운받아 설치할 수 있도록 바뀌었다.

3. 설치

크리에이션 킷은 스팀에 올라와 있으니 당연히 스팀 계정과 스카이림 레전더리 에디션 또는 스카이림 스페셜 에디션은 필수다.

스카이림 레전더리 에디션 크리에이션 킷 툴은 스팀의 도구 탭에서 간단하게 다운받을 수 있다.

만약 스카이림 애니버서리 에디션 버전을 다운받았다면 Skyrim Special Edition: Creation Kit이라는 별도 버전이 있으니 헷갈리면 안된다. 스페셜 에디션용 크리에이션 킷 툴은 이 스팀 페이지에서 다운받을 수 있다. 주의할 점이 있는데 이 툴은 애니버서리 에디션 버전만 되고 구 스페셜 에디션 버전(1.5.97 버전 이하)은 Creation Kit Downgrade Patcher을 다운받아야 한다.

폴아웃 4용 크리에이션 킷 툴은 이 스팀 페이지에서 다운받을 수 있다.

폴아웃 3 버전 G.E.C.K.는 G.E.C.K. 위키를 참고.

스타필드용 크리에이션 킷 툴은 이 스팀 페이지에서 다운받을 수 있다.

모드 오거나이저 2에서 크리에이션 킷을 실행하는 방법은 이 글이 글을 참고.

스카이림 키코드(Key code) 페이지는 이 글 참고.

3.1. 오류 해결

참고로 Creation Kit(모드 커뮤니티에서는 CK라 부름)을 써서 모드를 제작할 때는 꼭 스카이림을 시스템이 설치된 드라이브에 같이 설치해주자. 윈도우가 C 드라이브에 설치되어 있으면 스카이림도 C에 설치해줘야 CK를 쓸 때 각종 에러들이 사라진다.

베데스다에서 만든거 아니랄까봐 크리에이션 킷 자체에도 버그나 성능 하락 현상이 있기 때문에 SSE CreationKit FixesF4 Creation Kit Fixes 같은 모드를 깔 필요가 있다.

기본적으로 프로그램이 UTF-8을 인식하지 못하기 때문에, 한국어를 입력할 경우 깨지는 현상이 일어난다. 따라서 한국어를 사용하려면 한국어 패치를 설치해야 한다. 스페셜 에디션 버전의 경우 이 글을 참고할 것.

쓰다 보면 도대체 이런 불안정한 소프트웨어로 어떻게 게임을 만들었을까 생각이 들 정도로 문제점들이 많다. 갑자기 꺼진다거나 멈춘다거나 텍스트가 깨진다거나 하는 문제는 다반사다. 모더들도 그냥 대부분의 작업은 xEdit로 하고 크리에이션 킷은 정말 어쩔 수 없이 써야될 때[1]만 쓴다.

스카이림 루트 폴더[2] 내부에 있는 SkyrimEditor.ini를 열어서 bEnableAudioCache=1에서 =0으로 바꿔주면 그나마 조금 해결된다.

런처가 실행되고 화면이 까맣게 변해 보이지 않을 땐 BethesdaNetLauncher 호환성을 비스타 서비스팩 2로 해보자.

초기 설정 상태에서는 여러개의 esm, esp 파일을 선택하면 불러오지 못하는 오류가 뜬다. 이럴 때는 C:\\Users\\...\\Documents\\My Games\\Skyrim(또는 다른 게임명)에 들어가서 SkyrimEditor.ini (스카이림 스페셜 에디션의 경우 CreationKit.ini, 폴아웃의 경우 GECKCustom.ini) 파일을 연 뒤 [General] 탭에 있는 bAllowMultipleMasterLoads= 항목과 bAllowMultipleEditors= 항목을 찾아 값을 0에서 1로 바꾸고 저장하면 된다. 없으면 값을 추가해준다. 그 다음부터는 여러개의 파일을 불러올 수 있게 된다.#

시작부터 오류창이 뜰 수 있는데 한국어 윈도우에서는 그냥 취소를 눌러주면 된다. Yes To All 묻는 경고창 뜨는게 짜증난다면 [Messages]에서 bBlockMessageBoxes= 값을 1로 바꾼다.

추가로 [Archive] 탭의SResourceArchiveList2= 항목에 Dawnguard.bsa, Hearthfires.bsa, Dragonborn.bsa를 추가해 다음과 같이 수정해준다.

SResourceArchiveList2=Skyrim - Shaders.bsa, Update.bsa, Dawnguard.bsa, Hearthfires.bsa, Dragonborn.bsa

Creation Kit을 실행하자마자 꺼지는(혹은 로딩이 지연되는) 오류가 있다. 혹시 ENB를 설치했다면, d3d9.dll(또는 d3d10.dll, d3d11.dll) 파일을 잠시 다른 곳에 옮겨두고 실행해보자.

스크립트 등을 수정할 때 저장이 안되는 일이 있는데 이를 막기 위해 관리자 권한으로 실행해야 한다.

0000065432, flowchartx 관련 오류는 이 글을 참고.

기타 오류들은 다음 글을 참고.#


파일:CC-white.svg 이 문단의 내용 중 전체 또는 일부는
문서의 r66
, 1번 문단
에서 가져왔습니다. 이전 역사 보러 가기
파일:CC-white.svg 이 문단의 내용 중 전체 또는 일부는 다른 문서에서 가져왔습니다.
[ 펼치기 · 접기 ]
문서의 r66 (이전 역사)
문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

문서의 r (이전 역사)

4. 사용법

creationkit.com 사이트에 기본적인 튜토리얼이 있다. 페이지 언어가 영어 등으로 나온다면 페이지 하단의 Language 선택란에서 한국어를 선택해보자. 아쉽게도 한국어 번역이 없는 페이지가 더 많다. 어느 한국 유저가 한때 크리에이션 킷 강좌 블로그에 번역을 올려 두었으나 아쉽게도 2022년 기준으로 블로그가 사라져 볼 수 없게 되었다. 그나마 남아있는 일부 번역글은 다음과 같다.


베데스다 공식 레벨 디자인 가이드 목차
스카이림에서 사용되는 객체(object)에 대한 개략적 설명
베데스다 공식 레벨 디자인 가이드 (0): 개요와 인터페이스
베데스다 공식 레벨 디자인 가이드 (1): 방 생성 기초 1/2
베데스다 공식 레벨 디자인 가이드 (2): 방 생성 기초 2/2
베데스다 공식 레벨 디자인 가이드 (3): 기물 배치(Cluttering)
베데스다 공식 레벨 디자인 가이드 (4): 네비메쉬(Navmesh)
베데스다 공식 레벨 디자인 가이드 (5): 기본 인카운터(Encounters)와 순찰 동선(Patrol) 만들기
베데스다 공식 레벨 디자인 가이드 (4): 네비메쉬(Navmesh)


베데스다 공식 스크립트 가이드 튜토리얼
베데스다 공식 스크립트 가이드 1편
베데스다 공식 스크립트 가이드 2편
베데스다 공식 스크립트 가이드 3편
베데스다 공식 스크립트 가이드 4편


번역시 주의사항이 몇가지 있다. 대표적인 예중 하나로 ID 유형 중에 종족(RACE) 내용을 한국어로 번역할 때는 맨 앞에 한 칸을 비워둬야 한다. 그렇지 않으면 CTD가 발생한다고 한다. 그리고 앞처럼 치명적인 문제는 아니지만 연금술 포션(ALCH), 갑옷(ARMO), 마법 부여 효과(ENCH), 광원(LIGH), 마법(SPEL), 무기(WEAP) 등 각종 명칭을 번역할 시 맨 뒤에 빈 칸이 들어가면 아이템 앞에 한 칸이 들어가서 나오니 되도록이면 지워주는게 좋다. 용언(WOOP)도 번역하면 ㅁㅁㅁ 같이 깨질 수 있으니 번역하지 않는게 좋다. 각 ID 유형에 대한 설명은 다음 글을 참고하자.

이하 내용은 관련 플러그인 파일이나 세이브 파일을 만들 때 알아둬야 할 내용들이다.

4.1. 파일 확장자 설정 (ESM, ESH, ESL, ESP)

xEdit | Plugins w/ ESL & .esl (General DIY) (GamerPoets 제작)
ESL, ESP, ESPFE에 대한 정보
Persistent와 Temporary, ESM에 대하여
Starfield Creation Kit is now available - New plugin types

자세한 기술적인 내용은 위의 링크 글들을 참고. 스카이림의 게임 엔진인 Creation Engine은 게임브리오 엔진을 개조한 엔진이다. Creation Engine은 다른 베데스다 게임 스튜디오 게임들과 같은 파일 확장자를 사용하는데 그것이 바로 esp이다. 이후 esm 확장자가 추가되었으며, 폴아웃 4때 크리에이션 클럽이 나오면서 로드 제한을 벗어난 esl 확장자가 추가되었다. 스타필드 때에 esh 확장자가 추가되었으나 내부 플래그로만 설정 가능하고 표기상 확장자는 esm으로 통일되었다.

.esm[3] 확장자 파일 확장자는 마스터 파일(Master File)로 많은 데이터들을 담고 있다. 예를 들어 Skyrim.esm 파일은 바닐라[4] 스카이림의 데이터들을 담고 있는 마스터 파일이다. 전체적으로 esp 파일보다 더 많은 권한을 부여받은 것으로 알려져 있는데, 대표적으로 참조 항목(reference) 제한에서 좀더 여유롭다는 장점이 있다. 스카이림의 경우 일시적 참조 항목 개수 제한이 있고 그 개수가 1048576개로 알려져 있는데, esm 파일은 이 개수 제한의 영향을 덜 받는다고 한다.# 때문에 xEdit를 이용해 헤더 플래그 값을 수정해서 esp 파일을 esm화 시켜 이 제한을 벗어나게 만들기도 한다. 이를 ESM화된 ESP (ESMfied ESP) 파일이라고 하며, 이렇게 헤더 플래그 값을 수정한 esp 파일은 모드 배열에서 esm 사이에 위치시킬 수 있다. 대표적으로 스카이림 한국어 패치 중 엘더 7 카페 버전이 이렇게 ESM화된 ESP 파일이기 때문에 update.esm 파일과 dawnguard.esm 사이에 놓을 수 있는 것이다.

.esp 플러그인 파일(Plugin File)은 esm보다 작은 데이터들을 포함하고 있다. 이런 플러그인들은 마스터 파일이 포함하고 있는 데이터를 변경하거나 참조한다. 또는 아예 새로운 데이터를 담고 있을 수도 있다. 예를 들면 SexLab 많은 플러그인들이 게임이나 모더에 의해 로딩될 것이다. CK툴을 작동시킬 때는 오직 한 파일만 작동하는 파일로 인식된다. 즉, 많은 변화들이 한 개의 플러그인으로 저장된다는 것이다. 스카이림 레전더리 에디션 이하에서는 esp와 esm을 합쳐 255개만 설치할 수 있다. 이유는 해당 플러그인 확장자 파일을 설치하면 00에서 FF까지 16진수[5] 값의 플러그인 인덱스 값이 부여되는데, 이 갯수가 256개이기 때문이다. FF는 사용자 지정 영역[6]으로 하나 빠진다. 스카이림 본편과 DLC esm 파일 등을 빼면 사실상 레전더리 에디션에서 esp나 esm이 포함된 모드는 250개 이하만 설치할 수 있는 셈이다. 실제로는 한 모드가 여러 esp, esm 파일을 포함한 경우도 있고, 패치를 위해 추가 esp 파일을 설치해야 하는 경우도 있으며, 반대로 단순 텍스쳐 변경 등의 경우 esp를 요구하지 않는 경우도 있으므로 꼭 250개 모드까지 설치가 가능한 것은 아니다. 물론 메쉬 파일인 nif 파일이나 텍스처 파일인 dds 파일만으로 된 모드 같은 건 이 제한에 포함되지 않는다. 모드 배열상 기본적으로 esp 파일은 esm 파일보다 뒤에 배열되며, 헤더 플래그 값 수정 없이는 esm 파일보다 배열을 위로 올릴 수 없다.

스카이림 스페셜 에디션과 폴아웃 4에서는 .esl 레서 파일(Lesser File) 확장자가 새로 생겼다. 크리에이션 클럽을 위해 추가된 이 포맷 덕분에 모드 제한 255개에서 벗어나 249개의 esl 파일이 포함된 모드를 추가로 설치할 수 있게 되었다. 여기에 SSE Fixes 같은 모드를 깐 경우 1794개 모드를 추가로 설치할 수 있어 최대 2048개까지 모드를 설치할 수 있다고 한다. 이게 가능한 이유는 레전더리 에디션이 00에서 FF까지 16진수 레코드 값을 부여해 최대 255개까지만 esp 및 esm 파일을 설치할 수 있는 것과 달리, 스페셜 에디션의 경우에는 FE와 FF 사이에 추가 레코드를 부여해 2048개까지 모드를 설치 할 수 있도록 해두었기 때문이다. 이 때문에 스페셜 에디션의 esp의 경우 FE가 예약된 공간으로 하나 더 빠지면서 00~FD까지 최대 254개 플러그인이 설치 가능하다. xEdit를 통해 이런 esl 파일들을 열어보면 레코드 번호 값이 00~FF 같이 16진수 두자리 값으로 보이는게 아니라 'FE 000' 같이 부여되어 있는 것을 볼 수 있다.

이후 한 유저가 실험한 바에 따르면 ESL파일과 ESPFE파일을 포함해 최대 4080개까지 플러그인을 설치할 수 있다고 한다.# ESPFE파일은 실제 테스트 결과 플러그인 4080개까지 사용 가능했고, ESL파일은 29개까지 사용 가능했으며 30개부터는 사용 불가능했다고 한다. ESM파일+ESP파일+ESL파일+ESPFE파일 다 합쳐서 4334개까지 플러그인을 사용 가능하다고 한다. 그리고 모드 오거나이저의 오른쪽 목록에서 보이는 인덱스 번호가 FE:FF0에 도달하면 스카이림이 실행 불가능하고, FE:FEF까지는 스카이림 실행이 가능하다고 한다.

크리에이션 엔진은 내부 객체(오브젝트)의 ID를 Form ID라고 부르며 이는 32비트의 [[정수#int형 변수(정수형 변수)|unsigned int]]를 사용한다. (게임이 64비트 인것과 관련이 없다) 모든 내부 객체에는 020003C9 같은 16진수 8자리 숫자가 붙는데 스카이림 레전더리 에디션까지 이 구조는 다음과 같다.
ESP/ESM
0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7
Plugin Index Form ID

0x0에서 0x는 hex, 즉 hexa를 의미한다. 뜻은 6이라는 뜻으로 이 숫자가 16진수라는 걸 표시하는 관례적 표기법이다. 그냥 폼 아이디가 0~7까지 8개의 니블[7]로 구성되어 있다는 것만 알면 된다. 020003C9 라는 폼 아이디를 예로 들면, 앞의 '02' 두 니블은 플러그인 인덱스 번호고, 뒤의 여섯 니블 0003C9가 플러그앤 내부 폼 아이디다. 만약 플러그인 배열 순서(load order)를 바꿔 다른 모드를 선행으로 올린다면 이 폼 아이디는 '03'0003C9로 바뀐다. xEdit 등의 프로그램에서 xx0003C9 같이 폼 아이디가 표시되는건 이렇게 앞의 2 니블이 바뀌기 때문이다.

기존 ESP/ESM파일의 경우 MSB의 두 니블을 사용해 플러그인별 인덱스가 나뉜다. 게임 프로세스 자체가 사용하는 0x00인덱스와 다이나믹 레퍼런스가 사용하는 영역인 0xFF, esl이 사용하는 0xFE를 제외하므로 sizeof(unsigned char) - 0x3 == 0xFC 로 플러그인 갯수는 최대 252개이며, 각각의 플러그인들은 6바이트의 영역의 ID를 가진다. 다만 각 플러그인의 인덱스중 0x800 게임 프로세스 관리 영역으로 예약되어 이하의 영역은 사용할 수 없으므로 최대 0xFFFFFF - 0x800 == 0xFFF7FF로 16 755 167개의 ID를 가질 수 있다.

다만 이 방식으로는 아이템 추가 플러그인 같이 많은 Form ID를 사용하지 않는 경우 굉장한 낭비가 되다 보니 ESL의 경우 처리가 다음과 같이 다르다.
ESL
0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7
Plugin Index ESL Index Form ID

먼저 Plugin Index는 0xFE를 항상 사용한다. 그리고 3 니블을 플러그인의 Index로 사용하며 나머지 3니블을 Form ID로 사용하게 된다. 그러므로 0xFFF(4096)개의 플러그인을 사용 가능하지만 Form ID는 모드를 쓰지 않는 내부 관리용을 제외한 0xFFF-0x800만 사용하며, 따라서 최대 2048개의 레코드를 가진다.

해외 베데스다 게임 유저들은 이 esl 확장자를 뜯어보고 나서 esp 파일의 헤더 플래그 값을 수정해 esl화 시키는 방법을 알아냈는데, 이를 ESL화된 ESP (ESLfied ESP), 또는 'ESPFE' 파일이라고 부른다. espfe 파일이라 부르는 이유는 앞서 말한 것처럼 xEdit로 열어보면 'FE 000' 같이 레코드 값이 부여되어 있기 때문에 붙은 이름이다. 이 espfe 파일은 겉으로 보이는 확장자는 esp 그대로이나 기존 esp처럼 250여개 설치 제한에 걸리지 않으며, 이론상 최대 2048개까지 설치할 수도 있다. 또한 원래 베데스다 스튜디오가 정해놓은 확장자 배열 순서는 esm > esl > esp 순서로, esl 파일은 esp 파일보다 배열을 밑에 둘 수 없는데 반해,[8] 이 espfe 파일은 esl 사이에 놓을 수도 있다. espfe 파일을 만드는 방법은 위 영상의 7분 25초 부분부터 참고하기 바란다.

다만 이 espfe 파일을 만들 시 주의할 점이 있다. 현재까지 알려진 바로는 다음의 주의사항을 지켜야 한다고 한다.

이를 통해 보면 NPC 변경 모드나 아이템 추가 모드 정도만 espfe 파일로 변환하는게 안전할 것으로 보인다.

스타필드의 경우 xEdit 모더 말에 따르면 기존 스카이림 스페셜 에디션이나 폴아웃 4와 다르게 esl 플러그인 구조가 많이 바뀌어서 xedit 구조를 많이 바꿔야 한다고 한다.# # 간단히 설명하면 미디엄 마스터와 오버레이 플래그라는 새 방식이 적용됐는데 이 방식은 플러그인 로드 오더나 플러그인 선행 마스터 순서를 마음대로 바꾸기 힘든 단점이 있다고 한다. 또한 1.7.36 버전 이후 오버레이 플래그는 문제가 있어 사용하면 안된다고 한다.#

2024년 6월 크리에이션 킷 업데이트로 밝혀진 내용은 다음 글을 참고하기 바란다.# 이 글에 따르면, 스타필드의 경우 플러그인 확장자는 esm만 사용한다. esp는 크리에이션 킷에서 임시 생성 파일로만 사용되고, esl은 사용하지 않는다고 한다. 대신 폴아웃 4때 espfe 방식처럼 플래그를 붙여 플러그인 유형을 구분한다. 플러그인 플래그 유형으로는 풀 마스터(Full Master), 미디엄 마스터(Medium Master), 스몰 마스터(Small Master) 유형이 있다고 한다.# 각 유형에 대해 설명하면 다음과 같다.

따라서 스타필드의 경우 최대 4,605개의 모드를 설치할 수 있다. 표기상 확장자를 esm으로 통일시켰기 때문에 더이상 esp나 espfe 같은 이름은 쓰이지 않을 것으로 보인다. 다만 대신 esmfd(esh)나 esmfe(esl)같은 식의 명칭이 쓰일지는 아직 불분명하다.
ESH
0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7
Plugin Index ESH Index Form ID

참고로 esh의 내부 Form ID 구조는 위와 같을 것으로 예상된다. 미디엄 마스터 플러그인 설치 갯수를 결정하는 esh 인덱스는 16x16 = 256이고, 레코드 수는 16x16x16x16 = 65,535이기 때문이다.

2024년 10월 섀터드 스페이스를 출시하면서 폼아이디 방식이 UINT8_MAX (10진수로 255까지, 16진수로 0xFF까지)에서 UINT16_MAX (10진수로 65535까지, 16진수로 0xFFFF까지)로 변경되었다고 한다.# 폼 아이디 구조자체가 바뀌면서 게임플레이 관련 SFSE 플러그인은 모두 재컴파일 해야한다고 한다.#

4.2. 문자열 (String) 제한

관련 정보 원문

간혹 대형 모드를 여러개 설치했는데 게임이 켜지지 않는 문제가 발생할 수 있는데, 원인은 스카이림 자체적으로 불러올 수 있는 총 문자열 개수 제한이 있기 때문이다. 여기서 말하는 문자열은 xTranslator 등으로 번역하는 영어나 한국어 스트링 뿐 아니라 프로그램 상의 각종 변수(variable)나 스크립트 변수가 지정된 모든 문자열을 말하는 것이다.

핵심만 요약하면, 스카이림 레전더리 에디션의 경우 이 문자열 총합이 65,535개가 넘어가면 튕긴다. 이유는 베데스다 스튜디오가 문자열을 세는데 16비트 정수(integer)를 쓰도록 만들었기 때문.

좀 더 자세히 원 정보 출저를 쓴 사람의 말에 따르면 Vanilla Skyrim + Dawnguard + Hearthfires + Dragonborn + Unofficial Legendary Patch + SkyUI + Live Another Life 모드를 설치한 상태에서 세이브 파일에 기록된 문자열 개수는 28,619개였다고 한다. 이미 거의 문자열 제한의 절반 정도를 소모하고 있는 셈이다. 여기에 문자열 개수가 많은 interesting NPCs (3DNPC)를 설치하자 32,090개로 문자열 개수가 늘어났고, 모드를 해제한 뒤 스크립트를 제거하고 저장한 파일을 봤더니 문자열 개수가 29,471개였다고 한다. 이 말이 사실이라면 모드를 설치할 수록 문자열 제한에 근접하게 되고, 모드를 지우더라도 세이브 파일에는 어느 정도 그 문자열 흔적이 남는 것으로 보인다.

특정 모드가 얼마나 문자열이 많은지 정확히 확인하는 방법에 대해선 원 정보 출처를 쓴 사람이 적지 않았지만, 크게 다음과 같은 모드 설치시 주의하라고 적었다.

이 문자열 개수가 문제가 되는건, 만약 세이브 파일의 문자열 개수가 초과되면, Save Game Script Cleaner로 이 세이브 파일을 정리하려 해도 Save Game Script Cleaner가 열리지 않거나 오작동하기 쉽기 때문이라고 한다. 말 그대로 그 세이브 파일은 완전히 버리게 될 수 있다는 것이다. 내 세이브 파일 안에 총 문자열 개수가 얼마나 되는지 보려면 TESV ESS Files Editor(TESVESSE)나 FallrimTools로 String이 몇개나 되는지 보면 된다.

스카이림 레전더리 에디션에서 이 문자열 제한을 해결하는 방법은 크게 두가지다. 문자열을 많이 추가하는 대형 모드를 포기하거나, 스페셜 에디션으로 넘어가거나, Crash fixes 모드에 내장되어 있는 세이브 파일 문자열 제한을 늘려주는 기능을 쓰는 것이다.[10] 스페셜 에디션의 경우는 이 자체 문자열 제한이 어떤지 정확히 알 수 없으나 리마스터인 만큼 레전더리 에디션에서 기본 시스템이 크게 바뀌진 않았을 것으로 보인다. FallrimTools에 ReStringer 기능이 있어서 문자열을 정리해준다고 하는데 정확히 얼마나 줄여주는지는 알 수 없다.

5. 콘솔 명령어

베데스다 소프트웍스의 게임들 중 게임브리오 엔진으로 만든 것들(특히 엘더스크롤 3: 모로윈드, 엘더스크롤 4: 오블리비언, 폴아웃3, 폴아웃: 뉴 베가스, 엘더스크롤 5: 스카이림)은 굉장히 버그가 많기로 유명하기에 심지어는 특정 퀘스트가 콘솔 명령어를 써야만 진행되는 경우도 있어서, 막힌 진행을 푸는 데 필요한 콘솔 명령어도 있다.

참고로 이건 개발자가 사용자에게 제공할 목적으로 넣은 치트키가 아니라 디버깅이나 개발 용도로 넣은 콘솔 명령어다. 물론 온갖 버그 해결을 포함한 다양한 목적으로 사용자들이 애용하기는 하지만, 사용자 편의성을 염두에 두고 만든 물건은 아니라는 것이다.

참고로 발매연도가 다른 만큼 아래 서술한 콘솔 명령어중 일부는 특정 게임에서만 작동하는 경우가 많다(기본적인 몇가지는 비슷할 수도 있다). 모로윈드의 콘솔 명령어는 사실 밑에 있는 콘솔 명령어들과는 구성이 다른 경우가 꽤 많고, 또 밑에 서술된 명령어들 중 일부는 최신작(이었던)뉴 베가스에서만 적용되는 명령어이다. 폴아웃 3와 오블리비언은 적용 가능한 명령어의 범위가 거의 비슷하다. 그리고 스카이림의 경우에는 콘솔 명령어가 또 다르다.

뉴 베가스와 스카이림의 경우 콘솔 명령어를 사용하고 그대로 게임을 진행하면 도전 과제가 꺼진다. 이 현상을 막기 위해서는 콘솔 명령어를 사용하기 전에 저장을 하고 게임을 껐다가 켜면 된다.

콘솔 입력을 하는 방법은 게임상에서 `(~)키[11]를 눌러 콘솔창을 띄우고, 콘솔 명령어를 입력한 뒤 엔터를 치면 된다. 콘솔창을 띄운 상태에서 화살표 상하키를 누르면 이전에 입력했던 콘솔 명령어가 나오니 여러번 반복입력할 필요 없이 간단하게 입력할 수 있다. 콘솔창을 띄운 상태에서 마우스로 캐릭터나 오브젝트를 클릭하면 콘솔창 상단에 작게 레퍼런스 아이디가 표시된다. 일부 명령어는 이 레퍼런스 아이디가 선택된 상태에서만 먹히는 경우도 있으니 주의해서 사용하자. prid 명령어로 확실하게 레퍼런스 아이디를 지정할 수도 있다.

더 자세한 콘솔 명령어는 콘솔 명령어(UESP) 엘더스크롤 위키를 참고.

5.1. 단독 사용 가능

참고로 앞에 player.가 붙는 것들은 3인칭으로 전환한 다음 자기자신을 클릭하면 굳이 치지 않아도 된다. 반대로 player를 빼고 다른 캐릭터를 클릭한 상태에서 해당 명령어를 치면 그 캐릭터에 아이템을 주거나 스탯을 올리는 식으로 쓸 수 있다.

5.2. 레퍼런스 ID 필요

6. Papyrus

게임브리오 엔진에서 포크후 크리에이션 엔진이라는 이름을 붙이며 도입된 스크립트 언어. 최초로 이를 사용한 게임은 엘더스크롤 5: 스카이림이며 그 이후 폴아웃 4에서도 언어 자체의 명세 그대로 적용되어 베데스다의 스크립트 언어로 계속 사용될 예정으로 보인다.

Papyrus 이전 사용되던 스크립트 언어의 경우 별 다른 이름도 없었을 뿐더러 Fragment라 하는 특정 목적의 소규모에나 어울릴 언어적 특성을 가진 반면 Papyrus는 객체 지향이 도입되고 언어 차원에서 스레딩을 지원하는 등 기존 스크립트 언어와의 유사성이 거의 없어졌다.

종래의 스크립트 언어와 같이 파스칼(프로그래밍 언어)과 매우 유사하며 Payrus에서 추가된 파트의 경우 상속에 extends 키워드를 사용하는 등 전체적인 모습은 Java파스칼(프로그래밍 언어)의 특성이 섞인 형태를 가지고 있다.

6.1. 기존 스크립트 언어와의 차이

6.2. 예시

Scriptname HelloWorld
{Call HelloWorld to Print a message}

Import Debug

; Print "Hello World" message box.
Function HelloWorld()
  Debug.MessageBox("Hello World!");
EndFunction

6.3. 파피루스 로그

파피루스 로그 에러 메시지 번역 및 해설

7. 관련 문서


[1] 폼 아이디가 43인 레전더리 에디션 버전 esp 파일을 폼 아이디가 44인 스페셜 에디션 버전이 되도록 바꾼다거나 할 때.[2] Steamapps\\common\\Skyrim[3] Elder Scroll Master 의 약자인 듯.[4] 아무런 모드의 영향을 받지 않은 스카이림 그 자체를 지칭한다.[5] 0~9까지에 A~F까지 붙여서 16개 숫자를 사용한다.[6] 무기 강화 등 별도의 작업을 거친 전용 아이템을 위해 마련된 공간[7] 4비트. 2의 4제곱은 16이므로 16진수 한자리로 표현할 수 있는 값은 곧 1니블이다.[8] 예를 들자면, 만약 당신이 설원 트롤을 변경하는 두 개의 모드를 로딩했다면 일반적으로는 더 최근에 로딩한 모드(모드 목록에서 제일 하단에 있는 모드)가 적용된다.[9] 순수 ESL(확장자가 .esl)도 ESM 플래그를 달 수 있다고 한다.#[10] Crash fixes의 ini에서 StringCount32=1로 설정하면 된다. 세이브 파일 문자열 제한 늘려주는 옵션은 저게 맞다. 메모리 패치를 SSME나 SKSE로 사용하는 경우에도 Crash fixes의 다른 옵션들은 다 끄고 저것만 활성화시켜서 같이 쓸 수 있다.[11] 숫자키 1번 왼쪽에 있는 키. 미국에서는 tilde key(~), 영어에서는 grave key( ` ) 라고 한다.[12] NPC에게 수리비를 내고 수리하는 그 메뉴를 불러오는 것인데, 대신 대상이 플레이어 자신이다. 즉, 시스템상 자기 자신에게 수리비를 지불하는 것. 물론 결국 자기 주머니에 있던 돈을 자기 주머니에 도로 집어넣는 셈이니 실질적으로 플레이어의 보유 금액은 줄지 않는다.[13] 정확히는 체공하는 시간이 일정 시간(약 1.5초?)가 넘으면 그냥 그 위치에서 공중에 턱 하고 멈춰 버린다.[14] 특이사항으로, 스카이림에서 이 코드에 죽은 NPC의 레퍼런스 ID를 입력하게 되면 최근에 죽인 NPC들의 시신이 쌓여있는 십자 모양의 알록달록한 공간으로 이동하게 된다. 가끔가다 죽지도 않은 NPC가 갇혀있기도 하며, 살아있었을(?) 때와 똑같은 대화를 나눌 수도(...) 있다.[15] 그럴 때엔 setessential 명령어로 불사 속성을 제거하고 죽이는게 가능하지만, 불사 속성을 부여해 준 것은 다 이유가 있는 것이다.[16] Ref ID가 FF로 시작하는 것.[17] xx는 허스파이어 로드 순서. 보통 03, es7 한국어 번역 패치를 쓰고 있을 경우 05다. 참고로 BYOH는 Build Your Own Home의 약자다.[18] 특정 아이템을 가지는 NPC(폴아웃 3에서 GNR 앞에 팻 맨을 들고 죽은 시체 등)는 부활하면 루팅 전의 아이템을 보유한다(즉, 미니 뉴크 등이 돌아온다!).[19] 저게 어떤 상황이냐면, 한 유저가 여캐의 외모가 맘에 안들어서 남캐로 바꿔야겠다고 하자, 다른 유저가 댓글로 해당 키를 알려줘서 생긴 참사다.