분류 전체보기 6

Unity 게임 번역기 개발기 #6: 최적화와 크로스플랫폼

API 비용이 생각보다 나간다RPG Maker 게임 번역하다 보니 API 비용이 보이기 시작했다.작은 게임 하나: $0.50중간 크기 게임: $2.00큰 게임: $5.00+Prompt Caching으로 90% 절감했는데도 쌓인다.문제는 중복 번역.Translation Memory 개선기존 Translation Memory는 단순했다.# 기존 (단순 해시)key = hashlib.md5(f"{original_text}:{language_pair}".encode()).hexdigest()문제:공백 차이 ("こんにちは" vs "こんにちは ") → 다른 키줄바꿈 차이 → 다른 키같은 내용인데 두 번 번역정규화 추가# core/translation_memory.pydef _normalize_text(self, t..

개발관련 2025.10.19

Unity 게임 번역기 개발기 #5: RPG 메이커? 그것도 된다

새 기능 시작RPG 메이커 게임도 번역이 하고 싶어졌다.RPG Maker MV/MZ 구조 파악RPG 메이커는 Unity랑 완전히 다르다.RPGMaker_Game/├── www/│ └── data/│ ├── Map001.json│ ├── Map002.json│ ├── CommonEvents.json│ ├── Actors.json│ └── ...JSON이다. 그냥 평문 JSON.Unity처럼 Bundle 파싱 필요 없다. 그냥 읽으면 된다.import jsonwith open('www/data/Map001.json', 'r', encoding='utf-8') as f: data = json.load(f)간단하다. 너무 간단해서 의심스럽다.RPG ..

개발관련 2025.10.18

Unity 게임 번역기 개발기 #4: 개발은 디테일이다

API 키 보안 (평문? 미친 짓)Claude API 키를 평문으로 저장? 그건 미친 짓이다.config.json에 API 키 저장하고 GitHub에 올려서 API 키 털린 뉴스 많이 봤다.5단계 보안 계층을 구축했다.# security/secure_storage.py# 1. 하드웨어 기반 키 생성def _get_hardware_key(): mac = uuid.getnode() # MAC 주소 cpu = platform.processor() # CPU system = platform.system() # OS return hashlib.sha256(f"{mac}{cpu}{system}".encode()).digest()# 2. AES-2..

개발관련 2025.10.12

Unity 게임 번역기 개발기 #3: 코드가 괴물이 되다

문제 인식기능을 추가할 때마다 main_window.py에 코드를 계속 때려박았다.# main_window.py (2,600줄)class MainWindow(QMainWindow): def __init__(self): # 프로젝트 관리 # 번역 엔진 # Excel 관리 # UI 생성 # 세션 저장 # ... 100줄 def create_translation_tab(self): # 200줄 def start_translation(self): # 150줄 def export_excel(self): # 100줄 # ... 계속 이어진다... 2,000줄 더...스크롤을 내..

개발관련 2025.10.11

Unity 게임 번역기 개발기 #2: 돈을 쓰기로 했다

로컬 모델의 현실Qwen2.5-7B로 魔法少女ノ魔女裁判 챕터 1을 번역했다.어색하다하지만 플레이는 가능하다GPU는 불타고 있다챕터 2 시작. 문제 발생.싫어받다 (X)미움받다 (O)로컬 7B 모델은 문맥을 이해 못 한다.무슨 상황에서 나온말인지 구분을 못 한다.다른 Unity 게임도 하고 싶었다魔法少女ノ魔女裁判은 Naninovel 엔진이다. 다른 Unity 게임들도 번역하고 싶었다.일반 Unity 게임은 텍스트가 MonoBehaviour에 직렬화되어 있다. UnityPy로는 안 읽힌다.AssetsTools.NET이라는 구원자UABE라는 도구의 핵심 라이브러리. TypeTree로 모든 Unity 버전 지원.문제: C# DLL이다.나는 Python을 쓴다.해결: pythonnetpip install pyth..

개발관련 2025.10.10

Unity 게임 번역기 개발기 #1: 이게 시작이었다

사건의 발단魔法少女ノ魔女裁判 라는 일본 비주얼 노벨 게임을 발견했다. 단간론파 비슷한 느낌이다. 재밌어 보인다.문제: 한글이 없다. 중국어는 있다.일본어는 어느정도 할 줄 안다. 하지만 편하게 우리말로 하고 싶었다.중국어를 한글로 바꾸기만 하면 되는 거 아니야? 이게 모든 삽질의 시작이었다.Unity Bundle 파헤치기Unity 게임의 텍스트는 .bundle 파일에 들어있다. 암호문 같다.구글링 1시간 → UnityPy 라이브러리 발견.import UnityPyenv = UnityPy.load("game.bundle")for obj in env.objects: if obj.type.name == 'TextAsset': data = obj.read() text = data...

개발관련 2025.10.09