ไขความลับการแก้ปัญหาสระลอยและระบบ PUA Glyphs ในเกม PC
หนึ่งในฝันร้ายที่สุดของนักแปลเกมภาษาไทยและผู้เล่นคือ "ปัญหาสระลอย" (Floating Tone Marks) เมื่อวรรณยุกต์ ไม้เอก ไม้โท หรือสระบน พุ่งทะลุบรรทัดบน หรือสระล่างมุดหายไปใต้บรรทัด บทความนี้จะพาทุกท่านไปเจาะลึกเบื้องหลังทางวิศวกรรมฟอนต์ที่ทีมงานหน๊ดหนวดใช้แก้ปัญหานี้จนกลายเป็นศูนย์
ทำไมเกมต่างประเทศถึงสระลอย?
เอนจิ้นเกมส่วนใหญ่ของโลก (เช่น Unreal, Unity, หรือเอนจิ้นเฉพาะของญี่ปุ่น) ถูกออกแบบมาสำหรับภาษาตระกูลละติน (อังกฤษ, ยุโรป) หรือภาษาจีน-ญี่ปุ่น-เกาหลี (CJK) ซึ่งเป็นตัวอักษรกล่องเรียงแถวในแนวระนาบ (Monospaced/Proportional Grid) โดยไม่มีระบบ Complex Text Layout (CTL) หรือ OpenType GSUB สำหรับจัดระดับสระภาษาไทยที่มีถึง 4 ระดับ (พยัญชนะ, สระล่าง, สระบน, วรรณยุกต์)
ทางออกระดับสากล: Unicode Private Use Area (PUA)
เราแก้ปัญหานี้ด้วยการสร้างรูปสระพิเศษที่ถูก "ขยับลดระดับ" เตรียมไว้ล่วงหน้า แล้วฝังลงในช่องว่างเฉพาะของ Unicode หรือที่เรียกว่า Private Use Area (ช่วง U+F700 ถึง U+F71A):
- สระบนแบบเตี้ย (Low Upper Vowels): สำหรับพยัญชนะที่มีหางยาว เช่น ป, ฝ, ฟ
- วรรณยุกต์แบบต่ำ (Low Tone Marks): สำหรับพยัญชนะที่ไม่มีสระบน (เช่น "ป่า", "บ้าน")
- วรรณยุกต์แบบหลบหาง (Shifted Tone Marks): ป้องกันไม่ให้วรรณยุกต์ชนหางของพยัญชนะ
การแปลงอัตโนมัติด้วย THub Studio
ในโปรเจกต์ม็อดของเรา ตัวจัดการข้อความของ THub จะสแกนทุกประโยคภาษาไทยก่อนทำการแพ็กเข้าเกม และสลับตัวอักษรธรรมดาให้เป็นรหัส PUA ที่ถูกต้องในระดับพิกเซล ผลลัพธ์คือฟอนต์ภาษาไทยในเกมคมชัด เรียงสวยงาม และอ่านสบายตาในทุกขนาดหน้าจอ 4K