NodNuat Logo
หน๊ดหนวด TRANSLATOR
ENGINE REVERSE ENGINEERING

เจาะลึกโครงสร้างไฟล์ข้อความใน Unreal, Unity, RE Engine และ Bitsquid

ผู้สนับสนุนบทความ

เบื้องหลังของม็อดแปลภาษาไทยกว่า 81 เกมในคลังของเรา ครอบคลุมเอนจิ้นเกมชั้นนำแทบทุกรูปแบบในวงการอุตสาหกรรมเกม บทความนี้จะสรุปหัวใจสำคัญของโครงสร้างไฟล์แต่ละเอนจิ้นสำหรับผู้ที่สนใจการม็อดเกมขั้นสูง

1. Unreal Engine 4 & 5 (.locres)

Unreal Engine ใช้โครงสร้างไฟล์ข้อความแบบไบนารีที่เรียกว่า .locres (Localization Resource) จัดเก็บแบบ Namespace และ Key-Value มีระบบ String Table ที่มีทั้ง UTF-8 และ UTF-16 LE การแพ็กคืนต้องคำนวณไบต์ออฟเซ็ตและขนาด CRC Hash ให้ตรงเป๊ะ มิฉะนั้นตัวเกมจะไม่ยอมโหลดภาษา

2. Unity Engine (.assets / TextMeshPro)

หัวใจสำคัญของ Unity คือระบบ Font Asset ของ TextMeshPro (TMP) ฟอนต์ภาษาไทยต้องถูกเรนเดอร์เป็น Signed Distance Field (SDF) Texture Atlas ซึ่งรองรับการซูมเข้าออกโดยที่ขอบตัวอักษรไม่แตกเบลอ

โฆษณา

3. RE Engine จาก Capcom (.msg)

สำหรับเกมอย่าง Dragon's Dogma 2 หรือ Monster Hunter, RE Engine ใช้ไฟล์ข้อความนามสกุล .msg.22 หรือ .msg.23 ซึ่งจัดเก็บสตริงแบบ 64-bit Pointer การแปลต้องคำนึงถึงแท็กตัวแปรเฉพาะทาง เช่น <Color>, <Icon> หรือ <PlayerName> เพื่อไม่ให้ UI พัง

4. Bitsquid / Stingray (Helldivers 1)

เอนจิ้นยุคคลาสสิกที่ใช้ระบบแพ็กเกจไฟล์แบบ Hash-based (เช่น dd5d5b00fde9b0fb) ภายในควบคุมด้วยภาษาสคริปต์ Lua ซึ่งมีความละเอียดอ่อนเรื่องการนับความยาวไบต์ของ UTF-8 เป็นอย่างยิ่ง