import json
original_game_font = "骚话-CAB-5735cc27e392da90e819cada7f72a3ff-8141111607381082250.json"
new_font = "NanumGothicExtraBold SDF-sharedassets0.assets-9.json"
with open(original_game_font, "r", encoding="utf-8") as f:
original_data = json.load(f)
with open(new_font, "r", encoding="utf-8") as f:
new_data = json.load(f)
m_GameObject_FileID = original_data["m_GameObject"]["m_FileID"]
m_GameObject_PathID = original_data["m_GameObject"]["m_PathID"]
m_Script_FileID = original_data["m_Script"]["m_FileID"]
m_Script_PathID = original_data["m_Script"]["m_PathID"]
m_Material_FileID = original_data["material"]["m_FileID"]
m_Material_PathID = original_data["material"]["m_PathID"]
m_SourceFontFile_FileID = original_data["m_SourceFontFile"]["m_FileID"]
m_SourceFontFile_PathID = original_data["m_SourceFontFile"]["m_PathID"]
m_AtlasTextures_FileID = original_data["m_AtlasTextures"]["Array"][0]["m_FileID"]
m_AtlasTextures_PathID = original_data["m_AtlasTextures"]["Array"][0]["m_PathID"]
original_data["m_FaceInfo"] = new_data["m_FaceInfo"]
original_data["m_GlyphTable"] = new_data["m_GlyphTable"]
original_data["m_CharacterTable"] = new_data["m_CharacterTable"]
original_data["m_AtlasTextures"] = new_data["m_AtlasTextures"]
original_data["m_AtlasWidth"] = new_data["m_AtlasWidth"]
original_data["m_AtlasHeight"] = new_data["m_AtlasHeight"]
original_data["m_AtlasPadding"] = new_data["m_AtlasPadding"]
original_data["m_AtlasRenderMode"] = new_data["m_AtlasRenderMode"]
original_data["m_UsedGlyphRects"] = new_data["m_UsedGlyphRects"]
original_data["m_FreeGlyphRects"] = new_data["m_FreeGlyphRects"]
original_data["m_FontWeightTable"] = new_data["m_FontWeightTable"]
original_data["m_GameObject"]["m_FileID"] = m_GameObject_FileID
original_data["m_GameObject"]["m_PathID"] = m_GameObject_PathID
original_data["m_Script"]["m_FileID"] = m_Script_FileID
original_data["m_Script"]["m_PathID"] = m_Script_PathID
original_data["material"]["m_FileID"] = m_Material_FileID
original_data["material"]["m_PathID"] = m_Material_PathID
original_data["m_SourceFontFile"]["m_FileID"] = m_SourceFontFile_FileID
original_data["m_SourceFontFile"]["m_PathID"] = m_SourceFontFile_PathID
original_data["m_AtlasTextures"]["Array"][0]["m_FileID"] = m_AtlasTextures_FileID
original_data["m_AtlasTextures"]["Array"][0]["m_PathID"] = m_AtlasTextures_PathID
with open("new.json", "w", encoding="utf-8") as f:
json.dump(original_data, f, indent=4, ensure_ascii=False)
original_game_font 변수에 게임 내 원래 폰트 MonoBehaviour에서 json 형식으로 추출한 json파일 경로를 기입
new_font 변수에 본인이 제작하신 폰트의 MonoBehaviour에서 json 형식으로 추출한 json파일 경로를 기입
이후 스크립트를 실행하시면 new.json이 나오는데,
이걸 UABEA로 원래 게임 폰트의 MonoBehaviour에 Import 하시면 됩니다.
오류가 안 뜬다는 가정 하에 지금까지는 정상작동 했습니다.
'한글패치 관련 짧은 글들' 카테고리의 다른 글
| 유니티 게임 한글화 시 한국어 조사 처리 (2) | 2025.08.27 |
|---|---|
| UnityPy 텍스쳐 삽입 시 "params must be an instance of BC7CompressBlockParams" 오류 해결 (0) | 2025.03.31 |
| global-metadata.dat이 없는 경우의 덤프법 (frida 이용) (0) | 2025.03.23 |
| UnityPy를 이용한 유니티 게임 MonoBehaviour 특정 텍스트 필드 추출/삽입 (0) | 2025.03.04 |
| IoStore를 사용하며 sig우회가 안되는 언리얼 게임 모드 로딩 방지 우회하기 (6) | 2025.01.20 |