2020년 8월 10일, v1.5.97 기준 LooT, STEP 가이드 대로 SSEedit을 이용해 클리닝 해준 바닐라 esm 파일입니다.
※ 자신의 스카이림 버전은 인게임 설정 메뉴 좌하단에서 확인할 수 있습니다.
※ 플레이어가 용언 효과를 받지않거나 일부 의상이 안나오는 등 버그가 제보되었습니다. (제보해주신 꿀팝콘님 감사합니다!)
※ 추가 확인결과 문제 없다고 합니당.. ~_~;;
※ 20.09.09 플레이어가 용언 효과를 받지않거나 일부 의상이 안나오는 등 버그가 제보되었습니다. (제보해주신 꿀팝콘님 감사합니다!) ※ 20.09.14 일부 아이템이 인벤토리에 나오지 않거나 MISSING NAME으로 출력되는 버그가 제보되었습니다. (제보해주신 아르포르님 감사합니다!)
NIF는 3D 오브젝트 정보뿐만 아니라 인게임 출력에 필요한 다양한 정보가 포함된 Gamebryo 전용 확장자입니다. Nifskope를 사용해 NIF 파일을 열어보면, 한 개의 NIF 파일에 여러 개의 오브젝트들이 들어가 있기도 하고, 각각의 오브젝트에 쓰이는 텍스처 경로, 쉐이더 설정, 인게임에서 다른 오브젝트들과 상호작용하기 위한 슬롯 설정과 히트 박스 설정은 물론, 심지어 해당 모델링 파일이 땅에 떨어졌을 때 어떤 소리를 출력할지 설정하는 항목도 들어있습니다. 이 때문에 호기심에 열어봤다가 많게는 수백 개에 달하는 항목들과 알 수없는 숫자들에 지레 겁을 먹고 모딩을 포기하는 분들도 적지 않으리라 생각합니다. 또한 스카이림 출시이래 6년이 되어가는 지금까지도 NIF 에 관한 한글 튜토리얼의 부재로 인해 매우 많은 모더들이 자신의 상상을 구현하는데 큰 어려움을 겪고 있습니다.
본 튜토리얼은 NIF파일의 전반적인 구조와 함께 텍스처 작업에서 모더 분들이 가장 많이 접하게 될 텍스처세트와 쉐이더 프로퍼티, 알파 프로퍼티를 중점으로 설명하여, 시각화 작업중에서 겪을 수 있는 어려움과 궁금증들을 해소하고자 작성되었습니다.
NiTriShape 의 일반적인 구조
NiTriShapeData 는 이름 그대로 오브젝트의 형태정보, 즉 메쉬 그 자체를 담당하는 부분입니다. BSDismemberSkinInstance 는 베이스 메쉬(보통 바디)에 연결되는 슬롯 정보를 저장합니다. BSLightingShaderProperty 는 텍스쳐와 라이팅관련 정보를 담고있습니다. NiAlphaProperty 에는 게임에서 투명한 부분을 어떻게 처리할지에 대한 정보가 들어있습니다.
이 중 BSLightingShaderProperty 와 NiAlphaProperty 가 본 튜토리얼에서 중점적으로 다뤄질 내용입니다.
BSLightingShaderProperty
게임 엔진은 BSLightingShaderProperty 에 지정된 쉐이더 타입과 관련 플래그들, 각종 수치들과 BSShaderTextureSet 에 등록된 텍스쳐 리스트를 읽어와 모더가 구현하고자 했던 이펙트들을 오브젝트에 적용시켜 나타내 줍니다.
BSLightingShaderProperty(이하 '쉐이더 프로퍼티') 는 항상 하나의 BSShaderTextureSet(이하 '텍스쳐 세트')를 하위(자식) 개체로 가지고 있습니다. 여러 개의 쉐이더 프로퍼티가 한 개의 텍스쳐 세트를 공유하는 경우는 있으나 한 개의 쉐이더 프로퍼티가 여러 개의 텍스쳐 세트를 가지는 경우는 없습니다.
텍스쳐 세트를 보면 총 9줄의 입력란이 있으며, 각각의 입력란은 서로 다른 텍스쳐를 처리합니다. 즉, 만약 첫번째 란에 노말맵을, 두번째 란에 디퓨즈맵을 넣는다면, 메쉬는 형태를 알아보기 힘든 파란색 덩어리로 보이게 됩니다. 또한 텍스쳐 세트에서 텍스쳐 경로를 모두 맞게 잡아줬더라도, 쉐이더 프로퍼티에서 관련 설정을 잡아주지 않으면 게임 엔진은 해당 효과를 적용하지 않을 것입니다. 예를 들어 메쉬에 발광 효과를 내기 위해 디퓨즈와 노말맵, 글로우맵을 리스트의 올바른 입력란에 입력해주었더라도 쉐이더 프로퍼티에서 Glow Shader와 관련 플래그들을 설정해주지 않았다면, 해당 메쉬는 발광하지 않을 것입니다.
텍스쳐 세트가 쉐이더 프로퍼티에 종속되므로 쉐이더 프로퍼티를 먼저 설명하는 것이 맞겠으나, 본 튜토리얼은 이해를 돕기위해 텍스쳐 리스트의 각 슬롯에 들어가는 텍스쳐의 종류를 설명하고, 해당 효과를 주기 위해서는 쉐이더 프로퍼티에서 어떤 설정값을 주어야하는지 개별적으로 설명하도록 하겠습니다.
BSShaderTextureSet
9줄의 리스트가 각각 어떤 종류의 텍스쳐를 읽어오는지 설명하기에 앞서, 간략하게 텍스쳐와 UV맵에 대한 설명을 하도록 하겠습니다.
텍스쳐는 흔히 형태(메쉬)위에 그려지는 그림으로 비유되곤 합니다. 하지만 경우에 따라 텍스쳐는 단순히 평면적인 그림의 역할을 넘어서, 엔진에 내장된 쉐이더를 이용해 질감을 표현하고 3D정보를 보충해 주는 등 모델의 완성도를 높여주는데 있어 매우 중요한 역할을 합니다.
메쉬는 블렌더나 맥스같은 3D툴을 통해 각각의 면에 무엇을 그려넣을지 지정된 상태로 출력됩니다. 이 때 UV맵은 메쉬의 꼭지점들이 평면(텍스쳐)의 어디에 위치하는지 말해주는 역할을 하며, 실제 게임 화면에서는 UV맵의 위치정보를 이용해 메쉬의 표면에 텍스쳐를 투영시키게됩니다.
[2D 평면] - [연결다리] - [3D 공간]
[ Texture ] - [ UV map ] - [ Mesh ]
UV맵에 관한 내용이 불필요하고 이해하기 어렵게 보일 수 있겠으나, 3D오브젝트인 메쉬와 2D 오브젝트인 텍스쳐가 어떻게 연결되는 방식을 이해할 수 있어야 메쉬의 꼭지점을 움직였을때 텍스쳐가 늘어나고 일그러지는 현상을 이해할 수 있습니다. 다만 UV맵으로 인해 일어나는 문제점들 -예를들어 포팅과정에서의 실수로 인한 텍스쳐 어긋남, 이음새(Seam), 부분 텍스쳐 늘어짐 등의 문제들은 무겁고 복잡한 3D툴을 사용하지 않으면 해결하기 힘든 경우가 많고, Nifskope만을 이용해서 우리가 할 수 있는 수정작업은 한정적입니다.
Slot 01 – 디퓨즈맵, 알파채널은 투명도.
여기에 등록되는 텍스쳐는 오브젝트의 기본적인 색상 정보를 담고있습니다. 표면에 그려지는 그림같은 개념으로, 가장 이해하기 쉬운 부분중 하나입니다. 투명도 관련 정보는 디퓨즈맵의 알파채널에 저장됩니다. 후술할 다른 텍스쳐들은 디퓨즈맵을 통해 표면에 그려진 그림에 디테일과 각종 효과들을 넣기위한 도구라고 볼 수 있습니다.
저장 형식:
DXT1 - 투명도가 필요없을 경우 (알파채널이 없는경우) 해당 압축을 사용합니다. DXT3 - 알파채널이 4bit 만을 요구할경우 해당압축을 사용합니다. DXT5 - 알파채널이 8bit를 요구할경우 해당압축을 사용합니다.
Source : 원 모델의 픽셀에 해당하는 색상 값 Destination : 뒷 편에 비쳐보이는 모델의 픽셀에 해당하는 색상 값
공식의 각 변수들은 사용자가 설정한 값 (블렌드 모드, 블렌더 변수) 에 의해 결정되며, 두 색상 값에 대응되는 변수를 각각 곱해준 뒤 합하여 최종 색상값을 출력하게 됩니다.
블렌드 모드 (블렌더 변수) :
One: 1을 곱해줍니다 (원 색상 그대로) Zero: 0을 곱해줍니다 Src Color: Source 값을 곱해줍니다. Inv Src Color: Source의 역수 값을 곱해줍니다. Dst Color: Destination 값을 곱해줍니다. Inv Dst Color: Destination의 역수 값을 곱해줍니다. Src Alpha: 원 모델의 해당 픽셀이 가진 알파값을 곱해줍니다. Inv Src Alpha: 원 모델의 해당 픽셀이 가진 알파의 역수 값을 곱해줍니다. Dst Alpha: 비쳐보이는 모델의 해당 픽셀이 가진 알파값을 곱해줍니다. Inv Dst Alpha: 비쳐보이는 모델의 해당 픽셀이 가진 알파의 역수값을 곱해줍니다.
노말맵은 메쉬의 표면에 명암을 통해 디테일한 깊이 표현을 주어, 크게는 굴곡부터 작게는 표면의 질감까지 모델링의 인게임 출력에 굉장히 큰 비중을 차지하는 텍스쳐 입니다.
노말맵은 머드박스, 지브러쉬, x노말, 마야, 크레이지 범프 등 다양한 프로그램으로 제작할 수 있으며, 제작과정은 보통 구워낸다(Baking)고 말합니다. RGB 세 채널에 각각 메쉬의 깊이 정보를 담고있는 노말맵은 보통 보라색과 파란색으로 그려지며, 엔진은 이를 이용해 메쉬의 표면에 그림자를 그려내는 방식으로 굴곡을 표현해 냅니다.
베데스다에서 사용하는 노말맵은 두가지가 있는데, 하나는 _msn(Model Space Normal) 이고 다른 하나는 _n (Tangent Space Normal) 입니다. _msn은 동적인 물체, 특히 인물 표현을 위해 베데스다에서 독자적으로 만든 노말맵 형식으로, 알파채널을 가지지 않습니다. 반면에 탄젠트 스페이스 노말(_n)은 기존의 노말맵이 사용하는 RGB채널 이외에, 알파채널에 물체의 광택을 표현하는 Specularity 정보를 추가적으로 저장하고 있습니다.
인게임은 물론 CKtool, Nifskope에서 노말맵이 정상적으로 출력되기 위해서는 NiTriShapeData > BS Num UV Sets 를 4097로 해주어야 합니다.
앞에 서술했다시피, 탄젠트 스페이스 노말(_n)의 알파채널은 물체의 투명성을 표현하지 않습니다. 그 대신에 밝거나 어두운 정도를 통해 해당 부분의 반사광이 얼마나 밝아야 하는지(Specularity)를 엔진에게 알려줍니다 (어두울 수록 무광이며 밝을 수록 유광 재질로 표현됩니다). 스카이림 내장 쉐이더에서 지원하는 반사광은 에나멜같은 질감으로 표현되며, 광택을 너무 많이 줄경우(알파채널을 너무 밝게할경우) 노말맵에 표현된 질감이 반사광에 묻힐 수 있습니다. 때문에 필자는 큐브맵을 이용한 반사광 표현을 훨씬 선호하며 노말맵의 알파채널은 되도록이면 어둡게 만들고 있습니다.
노말맵의 알파채널을 만드는 가장 쉬운 방법은 디퓨즈맵을 어둡게 만든다음 포토샵이나 김프(Gimp)를 이용해 해당 노말맵의 알파채널에 집어넣는 방법입니다. 다만 이 경우 밝은 색을 띈 부분은 개별적으로 어둡게 만들어주는 것을 추천합니다.
저장 형식:
DXT5 - 탄젠트 스페이스 노말 (_n)은 알파채널에 디테일한 표현력이 요구되므로 해당 압축옵션을 사용합니다.
8.8.8 - 모델 스페이스 노말 (_msn)은 알파채널이 없고 RGB채널에 고화질의 표현이 필요하므로 해당 압축옵션을 사용합니다.
쉐이더 프로퍼티 설정:
게임엔진이 탄젠트 스페이스 노말(_n)의 알파채널을 읽어와 광택표현에 사용하기 위해서는 Specular 플래그가 지정되어 있어야 합니다.
이 슬롯은 물체 표면의 부분적인 발광효과 (Emissive), 넓은 면적의 은은한 광원효과 (Soft Lighting), 테두리를 따라 빛나는 역광효과 (RIM Lighting) 같은 효과를 표현하는데 사용될 수 있습니다. 또한 아래 후술할 패럴렉스 맵을 사용할 경우 본 슬롯은 서브서페이스 색상을 지정하는 용도로 사용됩니다. 알파채널은 사용하지 않으며 해상도 요구가 비교적 낮은 편입니다. 효과를 원하지 않는 부분은 검정색으로 마스킹하는 방식으로 제작되며, 텍스쳐 제작시 발광 색상을 직접 그려 넣을 수 있습니다. 하지만 이렇게 칼라로 제작될 경우 해당 부위의 디퓨즈맵이 다소 묻힐 수 있으며, 때문에 흑백으로 제작하고 색은 쉐이더 프로퍼티의 Emissive Color 항목에서 설정해주는 방법이 보편적입니다. 보통 이름의 끝에 _g 를 붙여줍니다.
※ 패럴렉스 (Parallax) 기술 :
관찰자가 일정거리를 움직였을 시, 관찰자에게서 멀리 떨어진 물체는 가까운 물체에 비해 상대적으로 적게 움직인 듯이 보이는 '시차원리'를 이용해 입체감을 구현하는 기술입니다. 그레이 스케일의 패럴렉스맵을 기반으로, 디퓨즈맵을 알맞게 일그러뜨려 가상의 높낮이를 표현합니다. 디퓨즈맵의 표면에 그림자를 그려내는 노말맵보다 훨씬 뛰어난 입체감을 주지만, 그래픽카드에 요구되는 연산량이 훨씬 많아 잘 쓰이지 않습니다. 또한 디테일 표현이 자유로운 노말맵에 반해 디테일한 경계선을 표현하는데 큰 제한이 있습니다.
저장 형식:
DXT1 - 알파채널이 필요없기 때문에 해당 압축을 사용합니다. 1K 이하로 될 수 있는한 해상도를 줄여주는 것이 좋습니다.
쉐이더 프로퍼티 설정:
원하는 효과에 따라 플래그2 설정방법이 다릅니다.
BSLightingShaderProperty > Shader Type : Glow Shader
BSLightingShaderProperty > Emissive Color : 적용하려는 광원 효과의 색상을 지정해줄 수 있습니다.
SLSF1_Own_Emit ※ SLSF1_Environment_Mapping 은 체크해제 되어있어야 합니다.
BSLightingShaderProperty > Shader Flags 2 :
SLSF2_Glow_Map : 단순 발광효과를 표현시 본 플래그만 지정해주면 됩니다. Soft Lighting 사용 시 : SLSF2_Soft_Lighting 을 체크해 줍니다. RIM Lighting 사용 시 : SLSF2_Rim_Lighting 을 체크해 줍니다. (림라이팅은 소프트 라이팅 효과를 포함합니다.)
Slot 04 – 높이맵(Height), 패럴렉스맵(Parallax)
4번 슬롯은 시차효과를 이용해 입체감을 만들어 내는 패럴렉스 맵을 입력할 수 있습니다 (패럴렉스 기술에 대한 설명은 Slot 03에서 관련 내용을 참조해주세요) . 해당 텍스쳐는 흑백으로 제작되며 알파채널은 사용하지 않습니다. 회색 (R127 G127 B127)을 기준점(높이 영점)으로잡고 픽셀의 밝기가 어두울수록 깊게 (Depth), 밝을수록 높게 (Height) 표현됩니다. 단순히 그림자를 그려내는 노말맵에 비해 입체감이 매우 뛰어나지만 연산 부담이 매우 높으며 디테일한 표현에는 약한편입니다. 보통 이름의 끝에 _p 가 붙습니다.
패럴렉스 기술은 스카이림의 기본 쉐이더에서는 지원하지 않습니다. 해당 기술을 적용하기 위해서는 ENB가 선행되어야 합니다.
Slot 05 – 큐브맵
현실에서 금속이나 거울같은 물체의 표면에는주위의 퐁경이 반사되어 보입니다. 이러한 효과를 내는 것은 환경 매핑(Environment Mapping)이라고 합니다. 게임속에서도 금속성 표면에 주위 풍경이 그대로 비쳐보인다면 매우 멋진 일이겠지만, 아쉽게도 인게임의 풍경을 반사시켜 보여주는 기술은 굉장히 높은 연산능력을 요구하며, 32비트 스카이림에서는 지원되지 않고 있습니다. 하지만 만약 우리가 가상의 풍경을 360도 전방위로 미리 찍어놓고 표면에 적당히 투영되도록 만든다면, 이런 반사 표현은 더이상 높은 연산능력을 요구하지 않게 될 것입니다. 이 때 '미리 찍어둔 가짜 풍경'의 역할을 하는 것이 바로 큐브맵입니다. 보통 큐브맵의 이름 끝에는 _e가 붙습니다.
큐브맵은 위에서 설명한 "가상의 풍경"을 정육면체의 형식으로 저장하고, 다시 각 면을 잘라내 오른쪽(+x), 왼쪽(-x), 위(+y), 아래(-y), 앞(+z), 뒤(-z) 의 순서로 배열한 텍스쳐입니다.
주의할 점은, 큐브맵만 넣어서는 반사효과가 적용되지 않습니다. 후술할 반사 마스크(Reflection Mask, 흔히 금속표현에 쓰이기 때문에 필자는 메탈맵이라고 부릅니다.)가 슬롯 6번에 추가되어야 하며, 반사 마스크는 해당 오브젝트의 어느부위에서 얼마나 큐브맵을 투영시킬 것인지 (얼마나 반사가 잘되는 것 처럼 표현할 것인지) 지정하는 역할을 합니다.
저장 형식:
DXT1 - 알파채널을 사용하지 않으므로 해당 포맷을 사용합니다.
※ 8.8.8 무손실로도 저장이 가능하나 이렇게 제작된 큐브맵은 스카이림 엔진에서 읽어오지 못합니다.
※ 저장할 때 전용 설정을 꼭 미리 해주어야합니다. (두번째 드래그 박스에서 CubeMap 선택, 우측의 체크박스에서 Mipmap 생성 안함 선택.)
└ 한 오브젝트에 반사효과와 발광 효과를 모두 주고 싶다면, 쉐이더 타입이 환경맵핑(Environment Map)인 메쉬를 베이스로 깔고, 위에 밀착되는 메쉬를 한층 더 깔아준뒤, 발광효과를 원하는 부위를 제외한 나머지를 모두 투명하게 만든 디퓨즈를 읽어오도록 하고 (원본 텍스쳐가 알파채널이 없는 경우 NIAlphaproperty를 붙여주느냐 안붙여주느냐로 텍스쳐 공유 가능.), 글로우 맵을 적용시켜 주어야 합니다.
추가설정 :
BSLightingShaderProperty > Environmental Map Scale : 1을 기준으로 0 이상의 숫자만 입력가능합니다. 1보다 낮을 수록 반사의 강도가 약해지며, 1보다 높을 수록 반사의 강도가 증폭됩니다. 0.8 정도를 추천합니다.
※ 가끔 알 수 없는 메쉬 오류로 인해 반사표현이 제대로 되지 않는 경우가 있습니다. 현재까지 알아낸 바로는 아웃핏 스튜디오로 해당메쉬를 불러와서, 다시 저장(File > Export > To NIF...)하면 됩니다.
※ 노말맵의 알파채널에서 지정가능한 광택 효과보다 질감표현에 훨씬 유리합니다. 필자는 개인적으로 노말맵의 알파채널을 거의 검정색에 가깝게 만들고, 큐브맵을 이용해 반사광을 표현하고 있습니다.
Slot 06 – 반사 마스크 (Environment/Reflection Mask), 메탈맵(금속질감을 표현하는데 주로 사용되기 때문에 필자는 이렇게 부르고 있습니다. 정확한 명칭은 아닙니다.)
오브젝트의 특정표면이 얼마나 잘 반사하는지 (큐브맵을 얼마나 세게 투영할지) 지정해주는 텍스쳐입니다. 흑백으로 제작되며 밝을 수록 더 잘 반사하고 어두울수록 덜 반사합니다. 노말맵의 알파채널을 통해 표현되는 광택효과는 단순히 특정 색상의 하이라이트를 메쉬 표면에 그려넣는 방식으로 물광같은 효과를 내주지만, 반사마스크와 큐브맵을 조합해 표현한 반사효과는 큐브맵 속의 풍경을 메쉬 표면에 투영시키는 방식으로 훨씬 자연스러운 효과를 내줍니다. 여기서 한단계 더 나아가, 큐브맵에 풍경이 아닌 특정 재질이 빛을 받았을때 나타나는 현상을 그려넣어 질감이나 편광효과(무지개 효과)를 표현하는 것도 가능합니다.
이름의 끝에는 보통 _m이 붙습니다.
저장 형식:
DXT1 - 알파채널을 사용하지 않습니다.
쉐이더 프로퍼티 설정:
슬롯 5번에 큐브맵이 추가되어있어야 하며, 관련 세팅들 또한 선행되어야 합니다. BSLightingShaderProperty > Shader Type : Environment BSLightingShaderProperty > Shader Flags 1 > SLSF1_Environment_Mapping BSLightingShaderProperty > Shader Flags 2 > SLSF2_EnvMap_Light_Fade
추가설정 :
메탈맵을 제작할 때 표면에 난 흠집이나 문양 등 부각시키고 싶은 부분이 있다면 해당 부위의 음영대비를 크게주는 것이 좋습니다.
Slot 07 – 서브서페이스 맵 (Subsurface Tint Map) 또는 (패럴랙스 사용시) 내부 레이어 디퓨즈맵 (Inner Layer Diffuse), (팰러랙스 사용시) 알파채널은 내피층의 깊이
서브서페이스 산란(scattering) 기술은 우유나 왁스같은 혼탁액, 또는 사람의 피부조직이나 잎사귀 같이 반투명한 표피층과 불투명한 내피층이 존재하는 물체를 표현하기 위해 개발된 기술입니다. 일반적으로 서브서페이스 쉐이더는 보이는 각도에 따라 디퓨즈와 서브서페이스 맵을 적절히 합성하여 내피층이 비쳐보이는 듯한 효과를 그려내나, 스카이림에 적용된 서브서페이스 쉐이더는 이런 고차원적인 연산대신에 반사광의 일부분에 내피층을 투영시키는 방식으로 이를 구현하고 있습니다.
'Ugly Bronze Shine' 으로 흔히 불리는 현상은 바로 이런 스카이림만의 서브서페이스 구현방식때문에 생겨나는 것으로, 서브서페이스 맵이 너무 밝아 그림자와 반사광 사이에 뚜렷한 경계선이 생기는 현상입니다.
일반적으로 이름의 끝에 _sk 를 붙입니다.
저장 형식:
DXT1 - 일반적으로 알파채널을 사용하지 않으므로 해당 포맷을 사용합니다.
DXT5- 팰러랙스 사용시 깊이 표현을 위해 알파채널을 읽어오므로 해당 포맷을 사용합니다.
인게임의 recemanu 화면에서 설정가능한 피부의 투명도와는 별개로, 서브서페이스 맵의 밝기는 그림자와 반사광의 경계선에서 표현되는 내피층 투사 정도를 나타냅니다. 어두울 수록 잘 보이지 않게 되며, 보통 매우 어둡게 제작됩니다.
Slot 08 – 백라이트맵(Back Light)
앞의 Slot 04 에서 설명한 노말맵의 두가지 종류 중, 알파채널이 없는 모델 스페이스 노말 (_msn)을 사용하게 될경우 광택을 표현하는 텍스쳐를 추가적으로 입력해주는 슬롯 입니다. 흑백으로만 읽어와지며 밝을 수록 잘 반사하고, 어두울 수록 덜 반사합니다. 광택을 표현한다는 특성상 광택 맵(Specular Map) 으로 불리기도 하며, 이름의 끝에는 _s가 붙습니다.
저장 형식:
DXT1 - 알파채널을 읽어오지 않으므로 해당 포맷을 사용합니다.
8.8.8 - 예외적으로 매우 디테일한 표현을 위해 무손실 압축이 필요한 경우 해당 포맷을 사용합니다.
쉐이더 프로퍼티 설정:
BSLightingShaderProperty > Shader Flags 1: SLSF1_Model_Space_Normals : 모델 스페이스 노말(_msn) 적용시에만 읽어와집니다.
물론 돈주고 산 시점에서 개발자에 대한 경의는 모두 표했다-라고 느끼는 게이들한테 이래라 저래라 하는게 먹힐리도 없고 나도 별 기대는 안하지만
그래도 모드질로 너의 왜곡된 성욕을 만족시키는데 사용하기엔 스림은 아까울정도의 명작이다.
그리고 모드설치하다 삽질해본 게이들은 다 알겠지만 뭔지도 모르는 게임에 이것저겁 끼워넣는다는게 보기보다 쉬운일이 아니다. 괜히 알두인꼬추도 못보고 모드질하겠다고 나대다가 버그로 고생하고 탈모걸리지말고 잠시나마 셀프체크의 시간을 가져보는걸 권장한다.
그래도 스림이 2011년 게임이다보니 그래픽쪽으로 참 아쉬운부분도 많고 요즘 컴터의 리소스를 제대로 인식하지 못하는 등 문제점이 좀 있는데 최대한 게임본래의 목적에서 벗어나지 않으면서 이런 문제점들을 개선해 주기위해 적어본다.
참고로 i5에 램4기가이상을 대상으로해서 썼고 글카는 잘모르겠는데 아마 760정도면 괜찮을꺼다. 일단 vram은 1기가 이상 권장.
모알못들을 위해 진짜 최대한 간단하게 적어놨으니 순서대로만 따라오면 문제 없을꺼다. 만약 여기에 적어놓은 모드만 깔았는데 문제생기면 맨끝의 문제해결항목에서 찾아보거나 알려줘. 내용추가하게. 최종적으로 프레임이 30이상뜨고 장기간, 장시간 버그없이 플레이+버그가 생긴다면 혼자서 처리가능하게 하는게 이 글의목적이다.
적힌 순서가 설치순서이자 MO 좌측리스트 배열 순서입니다. 기초시스템-버그패치-환경-크리쳐-사운드-캐릭터-NPC&동료-아이템-(ENB) 이 순서로 쓰여있으며, 정리하실 때도 이렇게 정리해주시면 좋습니다. 제가 적어놓은 모드외에 추가적으로 설치하실땐 귀찮으시더라도 항상 모드 소개에 쓰여있는 모드의 내용과 설치방법, 배열방법을 알아보고 깔아주시는 것이 좋습니다.
기반 모드목록이기때문에 적어놓은대로 설치하신다음 왠만한 모드는 다 호환될껍니다. 애초에 처음부터 호환성을 염두에 두고 선행으로 필요할만한 모드들은 모두 리스트에 포함시켜놨습니다. 다만 바디모드쪽은 관련글을 찾아보기가 워낙 쉬워서 제가 과도하게 생략한것이 많기때문에 이 글만 보고 설치하신다면 조금 주의하실 필요가 있습니다.
◆
시작하기에 앞서 - 기본적인 용어 정리
컴퓨터 사양 : 자신의 컴퓨터에 무슨 부품이 쳐박혀있는지에 대한 정보. 제대로된 도움을 받고싶다면 자신의 컴퓨터사양정도는 숙지해두도록 하자.
FPS 프레임 : 초당 뿌려지는 정지화면의 장 수. 스카이림도 나름 액션게임에 속하므로 FPS값이 60에 근접할수록 쾌적하게 느끼게 된다.
반대로 30이하로 나온다면 플레이가 불가능한 수준이니 옵션타협이 필요하다.
HDD : 하드-디스크 드라이브. 금속디스크에 정보를 기록하는 방식으로써 정기적인 조각모음을 필요로하며
쓰기/읽기속도가 낮아 컴터사양이 아무리좋아도 로딩시간연장, 스터터링, 병목현상 등 HDD에 발목잡히는 경우가 많다.
SSD : 솔리드-스테이트 드라이브. HDD에 비해 몇배는 빠른 저장장치로써 예전에는 고가+쓰기횟수제한이라는 단점이있었으나 지금은 그러한 단점들이 모두 개선됐다.
CTD : Call to Desktop. 게임이 튕기는(갑자기 꺼져버리는) 현상을 뜻한다.
Freezing 프리징 : 게임이 멈춰버리거나(응답없음) 프레임이 정지했다가 빠르게 밀린 프레임이 재생되는 현상을 뜻한다. 보통 HDD유저들이 많이 겪는다.
Stuttering 스터터링 : 속칭 '잔렉'. 시점을 이리저리 돌릴때 화면이 끊기는 현상을 뜻한다.
표시되는 프레임 수보다 훨씬 프레임이 낮게 느껴지는 경우도 스터터링에 속한다.
주로 고화질 텍스쳐파일을 불러오는 과정에서 생기며 후술할 Optimizer Texures로 완화할 수 있다.
Console 콘솔 : 속칭 치트, 명령어를 직접 입력해 여러가지를 할 수 있다. 입력창은 키보드 좌상단의 `~키를 누르면 된다.
옵티머스기능 : 노트북에서 전력소모를 줄이기 위해 외장그래픽이 불필요한 작업은 내장으로 전환되는 기능.
----------------▼ 경우에 따라 이 부분은 생략 가능합니다----------------
1.1 시스템 세팅
스
카이림 런쳐 : High로 맞춰준 후 Antialiasing, AnisotropicFiltering, FXAA모두 OFF,
텍스쳐퀄리티와 RadialBlurQuality는 최상으로 해줍시다. ShadowDetail은 ENB에서 추가 처리를 해주므로
High로 맞춰놔도 괜찮습니다.
Nvidia제어판설정 ├ AO(앰비언트 오클루젼)기능은 Nvidia에서 제공하는 효과가 ENB보다 뛰어나며 프레임하락도 적습니다. AO기능은 제어판에서 켜주도록 합시다. └ ENB에서 제공하는 AA, SSAO가 사양은 약간 더 차지하나 효과가 뛰어납니다. 만약 ENB의 AO기능을 사용한다면 엔비디아제어판에서 해당기능을 꺼주는 것이 좋습니다.
├ [사용법] └ 참고로 과도한 리사이즈는 필연적으로 품질저하를 불러오니 이점은 유념하셔야 합니다.
1.3 버그분석과 모드배열을 위한프로그램
Loot loot.github.io/ └ MO에서 위에 톱니바퀴 눌러서 추가해주도록 합시다.
PapyrusUtil http://www.nexusmods.com/skyrim/mods/58705/ ├ 게임 플레이 로그를 기록해주는 모드. 게임이 불안정하다면 파피루스 로그에서 원인을 유추해볼 수 있습니다 ├ 몇몇 대형 모드에서 선행모드로 요구하는 경우가 있습니다. 귀찮아도 추가해주도록 합시다. └ 사용법 : 설치후 내 문서\My Games\Skyrim폴더에 들어가 Skyrim.ini를 메모장으로 열어 아래 구문 추가 (※MO에서 상단 퍼즐모양 아이콘을 눌러 나오는 ini에디터에서도 똑같이 수정해주세요.) [Papyrus] bEnableLogging=1 bEnableTrace=1 bLoadDebugInformation=1
Unofficial Skyrim Legendary Edition Patch http://www.nexusmods.com/skyrim/mods/71214/? ├ 비공식 스카이림 버그패치 DLC통합버전입니다. [엘7 카페내 한글패치 링크] ├ 비공식 버그패치가 오히려 또다른 버그를 발생하는 경우도 존재합니다. 대표적으로 마을에서 집 구매가 안되는 버그가 있습니다. └ 일단 깔고 하시고 나중에 문제가 발생되면 다른분에게 도움을 요청해 보세요.
◆
2.1 환경리텍통팩소개
※일단 어떤 것들이 있는지만 보시고 모드간의 조합이나 설치순서는 해당섹션 맨 마지막을 봐주시기 바랍니다.
기본 DLC고화질 텍스쳐팩 └ 저품질,저성능,저효율의 텍스쳐팩. 진짜인지는 모르겠으나 프레임 하락이 있다는 소문까지 있으니 왠만하면 꺼주는게 좋습니다.
Skyrim Performance Plus http://www.nexusmods.com/skyrim/mods/6387/ └
풀버전으로 받으시면 됩니다. 낙엽이나 눈송이처럼 쓸데없이 고퀄로 그려지던 텍스쳐를 하향시켜서 눈에 띄는 품질저하없이 성능을
높여주는 모드입니다. 보통 겹치는 경우는 없지만 그래도 MO좌측 모드리스트에서 항상 다른 환경모드보다 아래에 위치하게 해줍시다.
※설치순서 : 중저사양 : SkyrimHD를 설치하시고 안에 들어있는 텍스쳐폴더를 1.4섹션의 Optimizer Texures으로 해상도를 낮춰주세요. 4096->2048->1024 이렇게 3번에 걸쳐 낮춰주셔야합니다. 그후 The Ruffled Feather를 설치해주세요.
중고사양 : SkyrimHD를 먼저 설치하고 RK팩을 그 위에 덮어씌우면 됩니다. RK팩을 구할 수 없는경우 SMIM->SkyrimHD->aMidianBorn-BoS 순서로 설치해주세요.
혹은 카페내의 중고사양 환경모드 설치가이드를 보고 원하는 모드를 찾아 설치하시는 것도 좋은 방법입니다.
2.2 기타 추가 환경 리텍
※하나도 설치안해도, 다 설치하셔도 무방하며 설명을 보시고 취향것 골라 설치하시면 됩니다.
Realistic Water Two http://www.nexusmods.com/skyrim/mods/41076/? ├ 물을 전반적으로 리얼하게 바꿔주는 모드 입니다. 물과 관련된 텍스쳐, 메쉬, 사운드, 이펙트를 모두 업그레이드시켜줍니다. └ 스크립트가 없기때문에 플레이도중에 언제들지 언인스톨 하실 수 있습니다.
Pure Waters http://www.nexusmods.com/skyrim/mods/1111/? ├ 물을 맑게 리텍해줍니다. 상기한 RWT와 함께 쓰셔도 무방합니다. └ ENB의 water기능과 약간의 충돌이 있습니다.(투명물 현상) 해당모드를 지우시거나 ENB에서 water기능을 꺼주시면 됩니다. 참고로 water기능을 끄면 프레임도 올라가기 때문에 저는 끄고 사용중입니다.
※ENB를 사용할예정이시라면 기본적으로 설치하지 않는 것을 추천드립니다. 아래에 서술한 모드중 하나를 취향것,혹은 ENB의 요구사항에 맞춰 골라서 쓰면 됩니다.
RLO, ELFX, Climate of Tamriel ENB의 사용이 전제인 만큼 ENB의 제작자가 요구하는(Requirement)를 보고 결정하는 것이 현명합니다. 세 모드간의 단순비교를 하자면 RLO는 색감이 강하여 ENB와의 호환성이 가장 안좋고(예:코난왕) ELFX보다는 약간 밝으며 성능저하는 살짝있는 편입니다. 대신 RLO라는 이름처럼 리얼한 느낌이 강한편입니다. ELFX는 RLO보다 어둡고 성능저하가 거의 없으며 색감도 약한편으로 ENB와의 호환성도 나쁘지 않은편입니다. 하지만 호환되지 않는 ENB와 병행시 게임플레이가 불가능할정도로 어두워 질 수 있으므로 주의하셔야 합니다. CoT는 단순 광원모드가 아닌 날씨효과를 전반적으로 업그레이드 시켜주는 대형모드입니다. 성능저하가 큰편이며 날씨에 따라 명암차가 상당히 크다는 특징이 있습니다. 사용하려는 ENB에서 요구하지 않는이상 깔지않는 것을 추천드립니다. ├ Realistic Lighting Overhaul http://www.nexusmods.com/skyrim/mods/30450/? ├ Enhanced Lights and FX http://www.nexusmods.com/skyrim/mods/27043/? └ Climates Of Tamriel http://www.nexusmods.com/skyrim/mods/17802/?
Audio Overhaul for Skyrim http://www.nexusmods.com/skyrim/mods/43773/ └ 음향을 3D서라운드처럼 만들어주는 모드. 설
치시 옵션선택창이 잔뜩 뜰텐데 자동으로 인식해서 옵션을 잡아주긴하지만 일단 자신이 무슨모드를 설치했는지, 호환패치가 필요한지 꼭
리스트에서 확인하고 설치하도록 합시다. 예를들어 Realistic Water Two의 경우 옵션에서 호환패치를 꼭 체크해주셔야
합니다.
※종족추가모드는 텍스쳐나 바디모드의 설치가 곱절로 복잡해지며, 퀘스트진행에도 문제가 생길 수 있으므로 추천드리지 않습니다.
----------------▲ 경우에 따라 이 부분은 생략 가능합니다----------------
◆
4.1 NPC&동료, 아이템
※아래는 제 개인적인 취향으로 뽑아놓았습니다. 무시하시고 맘에드는 모드를 받아 까셔도 됩니다. ※NPC리텍모드는 필수적으로 사용하시는 바디와 동일하게 맞춰주셔야합니다. ※독립동료모드의 경우 바디를 맞춰주실 필요는 없으니 호환되지 않는 의상을 입힐경우 게임이 튕기게 됩니다. 되도록이면 바디를 맞춰주시고, 만약 어쩔 수 없이 통일이 불가능한 경우에는 의상에 각별히 신경을 써주셔야합니다.
CPU만 좋으면 글카가 딸리더라도 잘 돌아가는 원래의 스림과는 달리, ENB는 글카를 혹사시키는 주범이자 프렘저하가 가장 큰 모드입니다. 흔히들 말하는 고사양ENB중에는 980으로도 60프레임을 띄우기가 힘든 녀석도 많으니 750ti, 혹은 960이하는 경량화된 ENB나 애초부터 저사양유저들을 타겟으로 한 ENB를 선택하는 것이 현명합니다.
6.2 ENB설치준비
ENB는 보통 넥서스나 네이버, 혹은 기타 스카이림 커뮤니티에서 받는 경우가 많은데, 일반 모드와 달리 ENB는 MO로 설치가 불가능합니다. ENB를 받으면 우선 압축파일의 내용물을 따로 풀어준뒤 체크해볼 것이 몇가지 있습니다, 먼저 압축파일 내용물에 Data폴더가 있는지, 그리고 d3d9.dll파일이 있는지 이 두가지를 체크해줘야 합니다.
코어파일인 d3d9.dll파일의 제작자인 보리스와 넥서스간의 문제로 인해 넥서스에서 제작자들이 배포하는 ENB는 d3d9.dll이 포함되지않은 세팅값파일입니다. 따라서 넥서스에서 받은 ENB를 정상적으로 작동하게 만들기 위해서는 해당되는 바이너리를 찾아서 받아줘야합니다.
ENB 바이너리 파일은 보리스의 ENB페이지에서 받아볼실 수 있으며 ENB에서 요구하는 넘버링의 파일을 찾아 다운받고, zip파일을 열어 데스크탑은 WrapperVersion에서 d3d9.dll과 enbhost.exe파일을, 옵티머스기능이 탑재된 노트북은 InjectorVersion의 enbhost.exe과 ENBInjector.exe 파일을 폴더에 넣어주시면 됩니다. └ ENB바이너리 enbdev.com/download_mod_tesskyrim.htm
보통 네이버나 커뮤니티에서 받은 ENB라면 바이너리파일(d3d9.dll)이 포함된 상태로 배포하게 되므로 상기한 바이너리 다운로드부분은 건너뛰어주셔도 무관합니다.
Skyrimprefs.ini └ ENB가 정상적으로 작동하기 위해서는 내 문서\My Games\Skyrim폴더에 들어가 Skyrimprefs.ini를 메모장으로 열어 아래 항목들의 값을 바꿔줘야합니다.
해당값이 없을경우 추가해주세요. 찾기귀찮다고 그냥 맨밑줄에 추가하시면 안됩니다. ModOrganizer\profiles\Default 에 들어가 동일 파일을 똑같이 수정해주세요.
Ctrl+f를 누르면 검색창이 뜹니다. 눈으로 훑으면서 찾지말고 검색에 복붙해서 검색해서 바꿔주시면 됩니다. 참고로 복사는 Ctrl+c, 붙여넣기는 Ctrl+v입니다.
enblocal.ini └ SKSE와는 별개로 ENB에도 메모리트윅기능이 존재합니다. ENB를 다운받아 압축을 풀어보면 enblocal.ini라는 파일이 들어있습니다. 이를 메모장으로 열어 [MEMORY] 부분을 수정하시면 됩니다.
대충 중요항목만 소개하자면 : ExpandSystemMemoryX64=true └ 32비트기반으로 만들어진 스림을 64비트에서 원활히 구동할 수 있게해줍니다. ReduceSystemMemoryUsage=true DisableDriverMemoryManager=true DisablePreloadToVRAM=false EnableUnsafeMemoryHacks=false ReservedMemorySizeMb=512 └ 이 값은 메모리와 비디오 메모리가 서로 상호작용을 할 때 필요한 다이나믹 메모리 수치입니다. 값이 너무 높으면 겜이 불안정해지고 너무 낮으면 성능저하가 생깁니다. 권장값: 1024(초고사양), 512(고사양), 256(중사양), 128(저사양) VideoMemorySizeMb=0 └ 기본값은 0이고 0으로 해놓으면 ENB가 자체적으로 계산해서 설정을 잡아줍니다. EnableCompression=false AutodetectVideoMemorySize=FALSE
출처: blog.daum.net/guycore/458
enbseries.ini └ 만약 1.1에서 Nvidia제어판에서AO를 사용하기로 결정하셨다면 enbseries.ini도 메모장으로 열어 [EFFECT]항목의 EnableAmbientOcclusion 값을 false로 바꿔주셔야합니다. 겹치는 기능입니다.
6.3 ENB인스톨 & 언인스톨
재압축 └ 만약 ENB의 내용물에 Data폴더가 있다면 Data폴더째로 따로 꺼내서 압축해줍니다. 압축파일의 이름은 무슨무슨ENB_Data.zip로 바꿔준뒤 MO에 추가해주시면 됩니다. 나머지 내용물은 ENB폴더를 그대로 Zip파일로 압축해놓습니다. 이렇게 해서 만들어진 압축파일은 후에 ENB를 삭제할때도 필요합니다. 지우지말고 꼭 백업해주세요.
설치 └ 압축파일의 내용물을 스카이림폴더(SkyrimLauncher.exe가 위치한 폴더)에 떨궈줍니다. MO에서 방금추가한 ENB_Data를 활성화시켜주면 ENB설치는 끝납니다.
게임이 자꾸 튕기네요.. ├ CtD는 고려해 볼 수 있는 가능성이 굉장히 많습니다. 아래의 순서대로 해보고 문제가 계속된다면 스게에 앙망글을 올려보세요. ├ 메모리패치가 정상적으로 되었는지 확인해주세요. 메모리패치가 문제없다면 Optimizer Texures로 텍스쳐를 사양을 낮춰주세요. ├
이후에도 같은 문제가 계속발생한다면 로그리더로 파피루스 로그를 봐주세요. 좌상단 필터에서 Error를 선택하면 에러관련 로그만
정리해서 나열해주며, 내용을 더블클릭하면 복사/붙여넣기가 가능하도록 창이 뜹니다. 내용을 보고 어느 모드에서 나온 에러가
가장많은지 어떤 모드의 에러가 가장 심각해보이는지 대충 유추해서 MO에서 관련모드를 비활성화 시켜보는 등 해결해보도록 합시다. └
그럼에도 불구하고 문제가 지속된다면 스림을 원래상태로 롤백해준뒤(리사이즈했던 텍스쳐팩을 백업본으로 교체, 비활성화 했던 모드
재활성화) Save Game Script Cleaner로 최신 세이브파일을 불러와 스크립트청소, Form청소를 해줍시다.
무기거치대가 고장났어요ㅠㅠ └ 일단 걸려있는 무기를 모두 내려주세요. 그 후 콘솔창을켜고 거치대를 선택한 뒤 disable을 쳐서 없애줬다가 다시enable로 생성시켜주세요.
퀘스트가 꼬인것같아요ㅠㅠ ├ [여기]를 먼저 확인하고 해당사항이 있는지 확인해 주세요. ├ 만약 해당사항이 없다면 제일먼저 확인해 볼 것은 모드충돌입니다. 위에 적어놓은 모드리스트로는 순정 퀘스트에서 버그가 날 확률은 매우 적으므로 추가적으로 자신이 깐 모드중에 문제가 생길만한 것이 있나 확인해 주세요. ├ 먼저 문제가되는 퀘스트관련 NPC를 콘솔창을 열어 커서로 클릭해줍니다. 그후 resurrect 1을 입력한 뒤 말을 걸어 문제가 해결됐는지 확인해 주세요. ├ 문제가 지속된다면 다시 콘솔창을 열러 NPC를 선택해준 뒤 disable를 입력해 NPC를 없애줬다가 다시 enable로 생성시켜주세요. 콘솔창을 닫으면 NPC가 생겨납니다. 다시 말을걸어 문제가 해결됐는지 확인해주세요. ├ 문제가 여전히 해결되지 않았다면 모드리스트와 함께 스게에 질문을 올려주세요. ├ 만약 도움되는 답변을 듣지 못했다면 일단 문제가 되는 퀘스트는 남겨두고 다른 퀘스트를 진행해주세요. 흔치는 않으나 가끔 시간이 지나면 갑자기 해결되는 버그가 존재합니다. ├ 콘솔로 퀘스트를 강제로 넘어갈 수 있습니다. 하지만 오히려 문제가 커지는 경우도 있으니 항상 최후의 수단으로 남겨놓는 것을 추천합니다. └ 콘솔로 퀘스트 넘어가기 : blog.naver.com/diddudrn1582/220470351948
스카이림 내전퀘스트인데 퀘스트관련 지문이 안떠요oTL └ 죄송하지만 내전퀘에서 제국군진영은 원래 버그가 많습니다.. 콘솔로 넘겨도 다시 버그가 발생하므로 일단 놔두고 다른 퀘스트를 진행하시는 것을 권합니다. 다른퀘스트가 모두 해결되면 갑자기 정상적으로 진행되는 경우가 있습니다.
나이팅게일퀘스트인데 칼라이아가 갑자기 도망갔어요; └ [관련링크] 콘솔로 칼라이아를 만들어주면 해결됩니다.
미락이 안죽어요ㅠㅠ └ resurrect 1을 시도해보고 안된다면 disable/enable을 시도해 주세요.
물건이 막 날라다녀요; 귀신들린건가요? └ 컴터가 너무 좋아서 스림이 미쳐날뛰고 있는 상태입니다. 스카이림런쳐와 ENB의 수직동기화(vsync) 기능을 꺼주고 엔비디아 제어판에서 해당기능과 삼중 버퍼링을 활성화시켜주세요.
새회차시작하려고 하는데 새로키우기는 싫고.. 이전세이브에서 캐릭터만 빼올 수 없을까요?[중요] ├ 최근에 발견한 마이너모드인데 Character Export라는 모드로 스탯,퍽, 아이템, 등 모든 성장수치를 외부파일로 백업해주는 기능입니다. ├ 퀘스트가 꼬여서 억울하게 재시작을 선택해야 할때 고려해볼 수 있는 굉장히 유용한 모드니 사용해 보시는 것을 추천합니다. ├ 먼저 Script Dragon을 선행으로 깔아줘야 하며 기본 키 설정은 Shift+F3 이 캐릭터스탯 저장, Shift+F4가 스탯파일 적용입니다. ├ Script Dragon www.dev-c.com/skyrim/ ├ 스크립트드래곤의 설치방법은 압출파일 내 bin폴더안의 내용물을 SkyrimLauncher.exe가 위치한 스카이림폴더에 집어넣어 주시면 됩니다. ├ Character Exporthttp://www.nexusmods.com/skyrim/mods/2569/ ├ CE의 설치방법은 받은 CharExport.asi와 CharExport.ini를 TESV Skyrim LE\Skyrim\ASI 안에 넣어주시면 됩니다. 폴더가 없다면 만들어주세요. └ 참고로 CharExport.ini에서 설정을 건드려 원하는 내용만 저장되도록 할 수도 있습니다.