dmc31a42 / UnityL10nTool

Unity Game Localization Tools is helper to make localization patch for un-supported language.
70 stars 9 forks source link

게임 데이터가 든 폴더를 불러오는 도중 프로그램이 종료되는 문제 #57

Closed Samaritan97 closed 4 years ago

Samaritan97 commented 4 years ago

안녕하세요, UnityL10nTool은 정말로 잘 쓰고 있습니다. 이 프로그램이 없었다면 저처럼 유니티에 대한 지식이 없는 사람이 한글패치를 제작하는 것은 불가능했을 것입니다.

본론으로 들어가자면, 이번에 번역하던 게임이 업데이트된 후로 UnityL10nTool으로 해당 게임의 데이터가 저장된 폴더를 불러올 때마다 불러오는 도중 프로그램이 종료되어 남깁니다. (게임이 업데이트되기 전에는 문제 없이 불러오기 및 패치 제작이 가능했습니다.)

기존에 만들어둔 패치를 사용할 때 Unsupport unity version 2019.3이 뜨는 것으로 보아 아직 UnityL10nTool이 2019.3 버전을 지원하지 않아서 그러는 것으로 생각됩니다. 혹시나 하여 ClassDatabase 폴더에서 2019.2에 해당하는 dat 파일을 복사해 2019.3으로 이름을 바꿔 보았지만 통하지 않았고요.

그저 프로그램을 받아 쓰기만 하는 입장이라 이렇게 말씀드리는 것이 독촉으로 보일 수 있고, 만약 그렇게 느끼셨다면 죄송하다고 생각합니다만, 혹시 UnityL10nTool이 2019.3 버전을 언제 지원하게 될 수 있을지 여쭤볼 수 있을까요?

dmc31a42 commented 4 years ago

유니티 버전 지원은 UABE가 업데이트 되면 바로 업데이트할수있는데, 아직 UABE가 2019.3을 지원 안 하네요 일단 임시조치를 할 수 있는지 확인해보겠습니다.

Samaritan97 commented 4 years ago

DerPopo/UABE#340

프로그래밍 지식이 없어 확신하지는 못하겠습니다만, UABE의 제작자 DerPopo가 Unity 2019.3 버전에 대한 classdata를 올린 것 같은데 이걸로 혹시 UnityL10nTool의 업데이트가 가능할까요?

dmc31a42 commented 4 years ago

테스트만해보고 hotfix올릴께요

dmc31a42 commented 4 years ago

일단 그냥은 안되서 코드수정해볼께요

dmc31a42 commented 4 years ago

v0.1.25 버전으로 테스트해보시기 바랍니다

Samaritan97 commented 4 years ago

업데이트 감사합니다. 그런데 빌드 만들고 패치하는 것 까지는 오류 없이 정상적으로 되는데 패치를 적용한 게임을 실행해보니 에셋을 제대로 불러오지 못하고, 크래시 로그를 보니 resources.asset 파일을 로드하다가 에러가 난다고 나오네요.

크래시 로그에서는 대략 아래와 같은 오류 메세지가 반복해서 나옵니다.

Unknown error occurred while loading 'D:/SteamLibrary/steamapps/common/Cultist Simulator/cultistsimulator_Data/resources.assets'.

0x55039128 (UnityPlayer) 0x5503B11F (UnityPlayer) 0x55032A2B (UnityPlayer) 0x5573AF37 (UnityPlayer) UnityMain 0x5535543A (UnityPlayer) UnityMain 0x553544A4 (UnityPlayer) UnityMain 0x5534D2A8 (UnityPlayer) UnityMain 0x5534D006 (UnityPlayer) UnityMain 0x552499ED (UnityPlayer) UnityMain 0x54E6F4A5 (UnityPlayer) 0x54E6DAFC (UnityPlayer) 0x55248B8C (UnityPlayer) UnityMain 0x55249523 (UnityPlayer) UnityMain 0x552497CF (UnityPlayer) UnityMain 0x5524982B (UnityPlayer) UnityMain 0x552B6AB6 (UnityPlayer) UnityMain 0x75B76359 (KERNEL32) BaseThreadInitThunk 0x77D57C14 (ntdll) RtlGetAppContainerNamedObjectPath 0x77D57BE4 (ntdll) RtlGetAppContainerNamedObjectPath

(Filename: Line: 211)

(혹시 몰라서 크래시 로그를 첨부하는데, 문제 해결에 도움이 될까요?) Player.log

dmc31a42 commented 4 years ago

컬티스트 시뮬레이터면 제가 직접 해보겠습니다.

Samaritan97 commented 4 years ago

앗, 감사합니다!

dmc31a42 commented 4 years ago

게임이 크래시나는건 아니죠? 실행은 되나 에셋만 제대로 못 불러오는건가요? image 이렇게요

dmc31a42 commented 4 years ago

생각보다 오래걸릴것 같습니다

Samaritan97 commented 4 years ago

방금 막 시도해 봤는데, 세이브 데이터를 불러오니까 바로 게임이 꺼지네요.

Samaritan97 commented 4 years ago

앗, 오래 걸려도 괜찮습니다. 이 문제를 해결하려 해 주시는 것만 해도 대단히 감사한걸요!

dmc31a42 commented 4 years ago

일단 제 프로그램의 문제인것으로 보입니다

. 참고를 위해 UABE로 수정한 resources.asset과 json파일들을 첨부합니다.

첨부파일 수정 cultistsimulator_Data.zip

dmc31a42 commented 4 years ago

뭐때문인지 문제는 확인했고 (제가 오래전 UABE_API를 써서 최신버전의 에셋 개수를 정확히 못세는것 같습니다.) 손으로 수정하시려면 패치가 된 resources.assets 파일을 HxD 도구로 열어서 첫 4자리를 (00 01 30 C5) 빅엔디안으로 읽었을 때 UInt32가 78021로 나올껀데 여기에 +4 (78025) Hex값으로는 (00 01 30 C9)로 수정하시면되고. 프로그램에서 수정은 정확한 문제 확인 후 1~2일정도 걸릴것 같습니다.

Samaritan97 commented 4 years ago

네, 시도해 보겠습니다. 신경써주셔서 감사합니다!

Samaritan97 commented 4 years ago

resources.assets 파일을 HxD로 열었더니 처음 4자리가 00 01 31 01 (78081)으로 나왔습니다. 아무튼 거기에 +4 해서 00 01 31 05로 저장하니 타이틀 화면까지는 제대로 로딩이 되네요. 하지만 여전히 게임을 시작하면 크래시가 나는데, 혹시 sharedassets3.assets 파일에도 비슷한 조치를 해줘야 할까요?

(release v0.1.26에는 소스 파일 둘만 올라와 있는데, 의도된 사항인가요?)

dmc31a42 commented 4 years ago

(release v0.1.26에는 소스 파일 둘만 올라와 있는데, 의도된 사항인가요?) 업로드하다가 실패했나보네요, 수정했습니다. 2019.3 지원과는 관계없는 패치입니다만 TMPFont관련패치이니 쓰시는걸 권장합니다.

resources.assets 파일을 HxD로 열었더니 처음 4자리가 00 01 31 01 (78081)으로 나왔습니다. 아무튼 거기에 +4 해서 00 01 31 05로 저장하니 타이틀 화면까지는 제대로 로딩이 되네요. 하지만 여전히 게임을 시작하면 크래시가 나는데, 혹시 sharedassets3.assets 파일에도 비슷한 조치를 해줘야 할까요? UnityL10nTool로 수정한 모든파일에 대해 동일한 조치를 하시면 됩니다. 만약 HxD에디터로 수정했을때 적용이 안되거나 게임이 크래시나면 이 방법의 원래절차인 아래의 방법을 수행하시면됩니다. UABE 최신버전 UABE 2.2stabled 을 받아 2019.3 지원되는 classdata.tpk로 교체하시고 UnityL10nTool로 수정한 에셋을 열어 아무에셋이나 Export (raw dump 무관)한다음 추출한 파일을 그대로 Import(Export와 동일)하면 어찌됬든 UABE는 assets이 수정됬다고 인식합니다. 그상태에서 다른이름으로저장하고(열려있는 상태에서는 덮어쓰기가 안됨) 두 파일을 바꿔치기하면됩니다.

dmc31a42 commented 4 years ago

v0.1.27로 해보시기 바랍니다.

dmc31a42 commented 4 years ago

해결된것으로 보입니다만, 문제가 있으면 이슈를 Reopen해주세요