모드 제작 튜토리얼

바이오하자드 RE4 데모 레온 캐릭터 모델 교체 튜토리얼 (RE 엔진 모드 제작의 기초?)

skymoon 2023. 3. 22. 17:23

*데모 버전 기준이지만 RE 엔진을 사용하는 게임이면 압축 해제할 때 쓰는 리스트 파일, 내부 폴더 경로 등만 다를 뿐 나머지는 동일하게 적용 가능합니다. 다만 영상에 포함시켜놓은 블렌드 파일은 RE4 말고는 호환이 안 될 수도 있습니다.

 

 

사용 툴

Blender https://www.blender.org/

RE tool https://residentevilmodding.boards.net/thread/10567/pak-tex-editing-tool

List(링크 안 댓글에 있음) https://residentevilmodding.boards.net/thread/17556

Noesis / RE plugin

https://richwhitehouse.com/index.php?content=inc_projects.php&showproject=91

https://github.com/alphazolam/fmt_RE_MESH-Noesis-Plugin

Mod Manager https://www.fluffyquack.com/

MDF Manager https://github.com/SilverEzredes/MDF-Manager_RE4R

Folder Frenzy https://download.cnet.com/Folder-Frenzy/3000-2248_4-75940067.html

블렌더 파일 & 투명 Mesh (WIP)

https://drive.google.com/file/d/1WLcmajI-vmiSFjWOSfYeztJwxOaAlmFq/view?usp=share_link

 

RE 엔진 게임 파일 추출

RE 엔진을 사용하는 게임은 REtool 을 사용하여 게임 파일을 푸는 것이 가능합니다. REtool 하나만으로는 안 되고 list 파일이 필요합니다. REtool 에서 필요한 파일은 REtool.exe, extract-pak.bat 2개 파일입니다. REtool과 리스트 파일을 게임 폴더에 넣으세요.

 

bat 파일을 메모장으로 열어 리스트 파일 부분의 이름을 수정합니다. 그 후에 게임 pak 파일을 bat 파일에 드랍하면 pak 파일 압축이 풀립니다.

추후 list 파일만 교체하면 동일한 방식으로 다른 RE 엔진 게임에도 활용할 수 있습니다. 위의 retool 링크에 다른 리스트 파일이 있는 것도 보셨을 겁니다. 리스트 파일만 교체해서 동일한 방식으로 쓰시면 됩니다.

Noesis + RE 엔진용 플러그인 설치

링크에서 Noesis와 RE MESH 플러그인을 다운 받고 플러그인의 py 파일을 위 폴더에 넣습니다. 그럼 이제 Noesis로 RE 엔진 게임에서 쓰는 메시와 텍스처 파일을 읽어올 수 있습니다.

모드 매니저 세팅

이제 모드 매니저를 다운 받습니다. RE2때부터 많은 분들이 쓰고 있는 모드 매니저입니다.

여기서 게임을 선택한 후 Define game path를 눌러 게임 폴더까지 지정해 줍니다.

그럼 이제 위와 같이 세팅이 완료되었을 겁니다.

모드 매니저의 경우 실행해서 RE4 게임을 설정했다면, Games 폴더 안에 RE4R_Demo 폴더까지 있을 겁니다.

RE4R_Demo 폴더 안에 Mods 폴더가 있는데 여기에 모드를 넣으면 게임에 적용할 수 있게 됩니다.

모드 제작 - 경로 세팅

모드를 제작하려면 Mods 폴더에 새 폴더를 만들면 됩니다. 여기서 생성한 폴더명이 모드의 이름이 됩니다.

앞서 게임 폴더의 re_chunk_000.pak 파일 압축을 풀어서 생성된 re_chunk_000 폴더가 있을 겁니다. 여기서 모드 제작에 쓸 원본 파일을 골라야 합니다.

게임 모드가 적용되는 방식에는 2가지 정도가 있습니다. 첫 번째는 게임 원본에 파일을 덮어쓰는 방식이고, 두 번째는 게임 원본 파일 대신 다른 파일을 불러오는 방식입니다. 한글 패치도 일종의 모드라고 할 수 있는데, 대부분 첫 번째 방식으로 작동합니다. RE엔진은 게임 원본 파일 대신에 다른 곳에 있는 파일을 읽어오는 두 번째 방식입니다.

예를 들어 아래와 같이 원본 데이터 00 폴더 밑에 File1, File2가 있다고 하겠습니다. 이 파일이 캐릭터 모델이라면 이걸 덮어씌우거나 원본이 아닌 다른 파일을읽어오게 하면 게임 내에서 다른 캐릭터 모델을 볼 수 있습니다.

모드 매니저는 파일을 원본에서 읽어오지 말고 다른 곳에서 읽어오게 해주는 툴입니다.

이때 다른 곳에서 읽어올 파일은 원본과 폴더 구조가 동일해야 합니다. 아래의 경우 File3, File4가 원본 1, 2와 동일한 폴더 구조를 갖고 있습니다. 이 구조 그대로 모드 매니저의 Mods 폴더 안에 모드 이름용 폴더를 만들고, 그 밑에 넣으면 원본 1,2 대신에 얘네들을 읽어옵니다.

실제로 체인소 데모의 데이터는 cha002 폴더 안에 레온 캐릭터 기본 모델이 있습니다. cha002 폴더 밑에 00은 몸, 01은 쟈켓이 있는 폴더입니다. 저 몸과 쟈켓을 교체하는 모드를 제작할 예정입니다. 그러면 위의 폴더 경로와 동일하게 모드 매니저의 Mods 폴더 안에 Test 폴더를 만들고 그 밑에 동일한 경로로 폴드와 파일을 만들어 주면, 원본 대신 그 파일을 읽어오게 됩니다.

00과 01 폴더만 쓸거니 남은 폴더 경로는 이렇게 되는 거죠.

윈도우에서 폴더를 하나씩 만들면 불편하기 때문에 Folder Frenzy 라는 툴을 사용하셔도 됩니다. 잘 모르겠으면 일단은 하나하나 만들고 나중에 익숙해 지면 저걸 사용해보세요.

모드 제작 - 메시

동일한 폴더 구조를 만들었으면 필요한 파일을 게임 원본에서 Mods 내에 생성한 Test 폴더로 복사해 넣어야 합니다.

00과 01 폴더의 파일을 쓸건데, 00 폴더에는 mdf2 파일과 mesh 파일을 복사하고 01 폴더에는 mesh 파일 하나만 복사합니다.

mdf2 파일은 머티리얼 파일이고 mesh 파일은 말 그대로 메시 파일입니다. 나머지는 텍스처 파일인데 이 부분은 텍스처 작업에서 따로 설명하겠습니다.

01 폴더에 있는 메시 파일은 쟈켓인데, 지금 만들 모드는 메시가 한 개만 있고 00폴더에 있는 몸을 교체할 거기 때문에 얘는 01 폴더의 쟈켓은 필요가 없습니다. 게임에서는 보이지 않게 투명 메시로 교체해야 합니다. 투명 메시는 본문 초반에 있는 링크에 있습니다.

투명 메시 교체가 완료되었으면 RE4_Base_Male 블렌더 파일을 열어 줍니다.

웨이트 복사를 위해 미리 작업해 놓은 파일입니다.

제가 3D 전문가가 아니기 때문에 웨이트 값을 나름 잘넣는다고 넣었지만 여전히 어색한 부분들이 좀 있습니다. 손가락은 하나하나 맞추기 어려워서 원본에서 손만 잘라서 저 몸과 합쳐 놓은 거라 손가락만은 웨이트 값 잘 들어가 있습니다! 크게 문제는 없는 것 같긴 하지만, 미진한 부분은 수정해서 써주세요.

여기서 주의할 것은 메시의 이름입니다.

LOD_X_Group_Y_Sub_Z__materialName

메시 이름은 저런식으로 규칙대로 붙어있고, 저기서 XYZ 숫자와 materialName이 mdf2 파일에 들어있는 머티리얼과 일치해야 게임에서 제대로 나오게 됩니다. 머티리얼 이름은 마음대로 넣어도 되긴 하지만 여기 이름과 머티리얼 이름이 제대로 일치하지 않으면 게임에서는 제대로 안 나오게 됩니다.

Z는 메시 순서긴 한데 머티리얼 순서와는 또 다른 것 같아서 아직 이 부분은 제가 확실히 이해를 못 했습니다. 일단은 원본 데이터 그대로 사용하시는 걸 추천드립니다. 추후 확실히 알게되면 내용을 보강해 놓겠습니다.

*그리고 이 글에서는 노에시스 플러그인을 통해 fbx를 게임용 메시 파일로 변환하고 있는데, 현재 버전으로는 이 방식은 머티리얼 이름을 원본 메시에 있는 정보로 덮어쓰기 때문에 원본에 있는 메시 이름 중 하나를 쓰셔야 합니다.

*추후 다른 폴더의 다른 캐릭터를 교체하실 때에는 또 원본 파일을 따로 열어보시고 메시 이름을 확인한 다음 거기에 맞춰 메시 이름을 변경하시면 됩니다. 굳이 이렇게 안 해도 머티리얼을 잘 다루신다면 원하는 대로 이름을 바꿔 쓰시면 됩니다.

이제는 웨이트 값을 복사할 차례입니다.

원하는 모델 불러오기 > 불러온 모델 선택 > 기존에 있던 모델(LOD_...) 선택 > Transfer Mesh Data

> 기존 모델 삭제 > 불러온 모델의 메시명을 LOD_...으로 변경

> 불러온 모델의 머티리얼도 기존에 있던 걸로 변경 > 아머처 지정 > 내보내기

이제 게임에 넣을 모델 메시가 준비되었습니다.

노에시스(노이시스)에서 밑에 해골 버튼 누르면 본도 제대로 들어간 걸 확인할 수 있습니다.

이제 이 fbx 파일을 게임에서 쓰는 mesh 파일로 변환해야 합니다.

방법은 2가지가 있습니다. 노에시스에서 fbx 선택 후 RE4 타입으로 export하는 방법과 블렌더에서 바로 mesh 파일로 export 하는 방법입니다.

블렌더에서 바로 게임 메시로 내보내려면 따로 플러그인을 깔아야 합니다.

GitHub - NSACloud/Blender-RE-Mesh-Noesis-Wrapper: Blender addon for importing and exporting RE Engine mesh files directly from Blender via Noesis.

이것만 있어서 되는 게 아니고 Blender 도 3.1 버전을 깔아야 하고 3.1용 블렌더 패치도 설치해야 합니다.

FBX Import plugin for blender at The Witcher 3 Nexus - Mods and community (nexusmods.com)

사실 블렌더 3.1을 써야 하는게 저 패치가 3.1용 밖에 없어서 그렇습니다. 다른 버전에는 해 봤는데 안 되더라구요.

이걸 쓰면 Noesis 안 써도 되는 장점이 있긴 하지만 세팅이 골치아프고 블렌더 버전 제한이 있어서 일단은 이 글에서는 생략했습니다. 원하시는 분들은 해당 플러그인의 설명 참조하셔서 사용하시면 됩니다.

다시 노에시스로 돌아와서 여기서 fbx 선택 후 Export, 창이 뜨면 Main output type을 RE4로 선택한 후 다시 Export 그리고 또 뭔가 뜨면 mesh 파일 선택해 주면 됩니다. 여기서 타입에 RE4가 없다면 노에시스용 RE 플러그인이 제대로 설치 안 된 겁니다. 위에서 플러그인 설치 내용 확인해주세요.

참고로 export 할 때 mesh 파일 선택해주는 부분은 RE2 같은 다른 RE 엔진 작업과는 조금 다른 부분인 것 같습니다. RE2 모딩 튜토리얼 영상을 본 게 있는데, 거기서는 메시 파일을 선택하지않아도 바로 export 됐습니다. 노에시스 플러그인이 업데이트 되면 추후 RE4 버전도 메시 선택하는 부분이 없어질 수도 있을 것 같습니다.

내보내기가 완료되면 새로운 메시 파일이 fbx파일명out으로 생성됩니다.

cha002_00.mesh 원본 파일을 삭제하고 out 파일을 cha002_00.mesh로 변경하세요.

그럼 이제 cha002_00.mesh 파일은 우리가 작업한 파일로 변경이 완료된 겁니다. 이제 모드 매니저에서 게임의 원본이 아닌 우리가 작업한 cha002_00.mesh 파일을 읽어오게 해줘야 합니다.

모드 매니저를 실행하면 아래와 같이 보일 것입니다. Mods 폴더에 Test란 이름으로 폴더를 생성했기 때문에 아래에 Test라는 항목이 나온거죠.

이걸 체크를 해주시면 게임에서 우리가 작업한 모드 파일을 읽어오게 됩니다. 체크한 후에 Launch game 해주세요.

주의하실 게, 모드의 파일을 수정할 때마다 체크를 껐다 켜주셔야 변경 사항이 제대로 적용됩니다.

모드 파일이 모드 매니저의 Mods 폴더에 들어가는 거 같지만 사실은 게임 폴더 내에 있습니다. 게임 폴더에 보시면 natives 라는 폴더가 어느샌가 생성되어 있을텐데 이게 실제로 모드에 쓰는 폴더입니다. 모드를 여러 개 써도 여기 한 폴더에 다 모아서 읽어들이기 때문에 관리하기 편하라고 모드 매니저에 Mods 폴더가 따로 있습니다. 그래서 저 체크를 끄면 파일을 삭제하고, 켜면 복사했다는 메시지가 매번 나옵니다.

작업이 제대로 되었으면 게임에서 저렇게 나올 것입니다. 쟈켓은 투명에 몸은 다른 걸로 교체된 상태죠. 이제 머티리얼을 수정해야 합니다.

글이 긴 것 같으니 텍스처 내용은 다음 글에 올리겠습니다. 영상에는 텍스처 작업까지 포함되어 있습니다.