전체 글 38

모드식 json파일 수정 임시프로그램

그냥 임시로 올려두기 위해 작성함 상황: 다른 모드가 "id"에 영향을 받고, unique한 "name"이 존재하는 경우. - 원본 파일이 업데이트되어 id가 바뀌었을 경우 기존에 사용하던 json형식의 모드 적용이 불가함. - 이 프로그램은 "name"값을 이용해 "id"와 "name"을 제외한 나머지 key의 value들을 바꿔준다. - 또한, 수정된 데이터 및 에러난 데이터를 텍스트 형식으로 내보내므로 추후 복원에 용이하도록 함. 다운로드: https://drive.google.com/file/d/1ZsypRBDjMHga9aPm8bPUk9_5Fle4OR1-/view?usp=sharing Replace_json.zip drive.google.com 사용법: 1. 원본 json파일을 main.json으..

간단프로그램 2022.01.12

XUnity.AutoTranslator 텍스쳐 이름 변경 프로그램

TextureTranslation으로 이미지를 덤프뜨면 {원본 이미지명} [{이미지명 해시값} - {이미지 해시값}].png 형식으로 추출된다. AssetStudio같은 다른 도구로 추출한 이미지를 XUnity.AutoTranslator에서 덤프떠진 형식으로 변경시켜준다. 기본적인 설명: https://snowyegret.tistory.com/39 사용법: 1. input 폴더에 이미지를 원본 이름으로 넣는다. 2. hash.exe를 실행한다. 3. output 폴더에 이미지 이름이 바뀐 채 저장된다.

간단프로그램 2022.01.12

XUnity.AutoTranslator 텍스쳐 번역 조금 쉽게 하기

XUnity.AutoTranslator에는 텍스쳐 번역 기능이 있다. 텍스쳐에 있는 글자를 번역해주는 것은 아니지만, 게임의 텍스쳐/스프라이트를 png로 추출/대체할 수 있다. https://github.com/bbepis/XUnity.AutoTranslator#texture-translation GitHub - bbepis/XUnity.AutoTranslator Contribute to bbepis/XUnity.AutoTranslator development by creating an account on GitHub. github.com 설정은 대충 링크한 부분을 읽어보면서 하면 된다. 내 경우 텍스트 번역을 방지하고, 텍스쳐 대체용으로 사용해야 하기 때문에 번역 [Service]-Endpoint를 공..

UnityExplorer로 SDF폰트 이름 찾기

폰트 폴백 모드를 제작하거나, SDF폰트를 직접 교체해야 할 때 원본 폰트의 이름을 알아두면 작업이 훨씬 편해진다. 모든 폰트를 추출해서 하나 하나 대조하는 과정을 스킵 가능하기 때문이다. 필요 프로그램: 모드로더, UnityExplorer 우선 게임이 Mono인지, il2cpp인지 구분을 해야 한다. 모드로더: Mono 게임의 경우 - BepInEx 5 (https://github.com/BepInEx/BepInEx/releases) - BepInEx 6 (https://builds.bepis.io/projects/bepinex_be) * BepInEx의 경우, 컴퓨터가 32비트인지 64비트인지 구분해서 다운로드 해야 한다. - MelonLoader 최신버전 (https://github.com/Lava..

유니티 한글화 중 폰트 쳐짐/올라감/너무 큰 경우 해결

예시 게임) MUCK 무료겜이라 만만한게 muck이다. 한글화를 진행하다 보면 위 그림처럼 위-아래가 엇나가 있는 경우가 발생한다. 이럴 경우 해당 폰트의 MonoBehaviour 파일을 수정하는 것으로 해결할 수 있다. 이 게임은 메뉴 표기를 위해 Roboto-Bold 폰트를 사용하고 있다. 해당 MB파일을 추출한 후 0 FaceInfo m_FaceInfo 하위 항목인 m_AscentLine을 수정해주자. 참고로, 글자를 내리고 싶으면 수치를 올려야 하고, 글자를 올리고 싶다면 수치를 내려야 한다. 살짝 높긴 하지만 제대로 복구된 것을 알 수 있다. 그럼 이제 폰트 크기 조절을 해 보자. 마찬가지로 아까 추출한 MB파일에서 작업이 이루어진다. m_FaceInfo의 m_PointSize의 수치를 조절하자..

멜론로더 포함하여 배포시 유의점 (il2cpp 게임)

절대 게임 폴더에서 모드와 멜론로더 관련 파일들을 그대로 압축해서 올리면 안된다. 게임 버전이 올라가거나 내려가면(복돌/롤백의 경우) 문제가 생길 수 있다. 아마 cpp2il 하는 과정에서 뭔가 문제가 있거나, 내가 알지 못하는 어떤 문제가 생기는 것 같다. 예시 게임) 귀곡팔황(Tale of immortal) 우선 해당 게임은 한글화를 위해 2개의 모드를 사용한다. 한글 출력용 KRFONT 모드, 덤프 및 한국어 교체용 Villain 모드. 이 중 Villain 모드는 Unity.2D.IK.Runtime.dll과 dnlib.dll을 사용한다. 최신 Melonloader에서 KRFONT에서 사용하는 il2cpp CoRoutine이 적용되는데, 하지만 최신 Melonloader에선 Unity.2D.IK.R..

유니티 IL2CPP 게임에서 DLL 생성 (윈도우, 안드로이드)

유니티 게임을 빌드할 시 mono방식으로 빌드할 수도, il2cpp방식으로 빌드할 수도 있다. mono방식은 보통 {게임이름}_data\Managed 폴더 안에 dll파일들이 들어 있으며 il2cpp방식은 보통 {게임이름}_data\ 폴더 내부에 il2cpp_data 폴더가 존재한다. 메인 에셋들 한글화 작업시 dll파일들이 있어야 MonoBehaviour 파일이 정상적으로 덤프되는 경우가 많다. 필요한 툴: Il2CppDumper (https://github.com/Perfare/Il2CppDumper) 1. PC의 경우 (예시 - 늑대와 향신료 VR 2) 게임 exe 파일이 있는 곳에 GameAssembly.dll이 있다. 이게 il2cpp binary file이다. {게임이름}_data\ 폴더 내부..

늑대와 향신료 vr2 구조

유니티 2019.4.0f1, IL2CPP 방식, 에셋 해싱 적용되어 있음 에셋 해싱의 경우 .bundle 파일들에 한해서 적용되어 있는 듯 함 data.unity3d의 경우 에셋 해싱과 상관없이, 수정 후에도 튕기지 않음. 작업 내용과 순서 까먹기 전에 기록용 Spice and Wolf VR2_Data\ 내부 ----------------------------------------------------------------- Spice and Wolf VR2_Data\il2cpp_data\Metadata\ 내부 - global-metadata.dat : 언어선택 텍스트, utf-8 hex -----------------------------------------------------------------..