เอนจินคู่มือคำถามที่พบบ่อยPatreonDiscordดาวน์โหลด
เข้าสู่ระบบ
RuneTranslate · แปลเกมญี่ปุ่นครบวงจร
เอนจินคู่มือเปรียบเทียบข้อความในภาพตัวแก้ไขเซฟโหมดโกงคำถามที่พบบ่อยดาวน์โหลดPatreonDiscordYouTubeความเป็นส่วนตัวข้อกำหนดติดต่อ
โพสต์ทั้งหมด
patch · sharing · tutorial · workflow

วิธีทำแพตช์แปลเกม — แพตช์ไทยของคุณเอง

18 ส.ค. 2569·9 นาทีในการอ่าน

แพตช์แปลคือสิ่งเดียวที่นักแปลสายแฟนผลิตออกมาจริง ๆ: บรรทัดข้อความ ที่จับคู่กับตำแหน่งในเกมที่มันเป็นเจ้าของ นี่คืองานทั้งหมดตั้งแต่ต้นจนจบ — เลือกระหว่างโอเวอร์เลย์ตอนรันไทม์กับบิลด์ที่ถูกแพตช์ ดึงข้อความ แปล แก้สิ่งที่เครื่องทำผิด ส่งออก ทดสอบในเกม แล้วแจกไฟล์แพตช์แทนที่จะแจกตัวเกม

แพตช์แปลไม่ใช่สำเนาของเกม มันคืองานของผู้แปล — บรรทัดข้อความ บวกข้อมูลมากพอที่จะบอกว่าบรรทัดไหนอยู่ตรงไหน — ในรูปแบบที่คนอื่นเอาไปใช้กับสำเนาของตัวเองได้ ทุกตลาดมีชื่อเรียกของตัวเอง: ฝั่งเกาหลีเรียก 한글패치 ฝั่งรัสเซียเรียก русификатор ฝั่งจีนเรียก 汉化 ส่วนบ้านเราเรียกกันว่าแพตช์ไทยหรือแพตช์ภาษาไทย ตัวชิ้นงานเหมือนกันทุกที่ และงานที่ต้องลงมือทำเพื่อสร้างมันก็เหมือนกัน

แพตช์มีสองแบบ และทางแยกนี้ตัดสินทุกอย่าง

ก่อนจะแตะข้อความสักตัว ให้ตัดสินใจว่าคุณกำลังสร้างอะไรในสองอย่างนี้ เพราะการตัดสินใจแทบทุกข้อหลังจากนั้นตามมาจากมัน

โอเวอร์เลย์ตอนรันไทม์ แปลขณะเกมกำลังทำงาน มีบางอย่างโหลดขึ้นมาคู่กับเกม — ปลั๊กอินภายในเอนจิน text hook ที่อ่านหน่วยความจำของเกม หรือการจับภาพหน้าจอที่อ่านพิกเซล — ดักแต่ละบรรทัดตอนที่มันกำลังจะถูกวาด แล้วสลับคำแปลเข้าไป ไม่มีอะไรของเกมเปลี่ยนบนดิสก์เลย XUnity.AutoTranslator คือตัวอย่างที่รู้จักกันดีสำหรับ Unity และ MTool ทำงานแบบนี้กับ RPG Maker

บิลด์ที่ถูกแพตช์ ใส่คำแปลลงในไฟล์ของเกมเอง ข้อความถูกอ่านออกมาจากข้อมูลที่เอนจินโหลดจริง แปล เขียนกลับ แล้วผลลัพธ์คือโฟลเดอร์เกมที่เปิดและเล่นได้ด้วยตัวเองโดยไม่ต้องมีอะไรรันอยู่ข้าง ๆ นี่คือสิ่งที่ RuneTranslate ผลิตออกมา และเป็นสิ่งที่ Translator++ ผลิตบนเอนจินที่มันแยกวิเคราะห์ได้

ข้อแลกเปลี่ยนตามตรง พูดกันตรง ๆ:

  • โอเวอร์เลย์ไม่ต้องทำงานต่อเกม — มัน hook เอนจินได้หรือไม่ได้เท่านั้น — แต่ไม่มีอะไรถูกบันทึกไว้ ทุกบรรทัดถูกแปลใหม่ทุกรอบที่เล่น บนทุกเครื่อง และผู้เล่นทุกคนต้องติดตั้งและตั้งค่าโอเวอร์เลย์เอง
  • โอเวอร์เลย์เข้าถึงได้แค่ข้อความในจังหวะที่มันถูกวาด ข้อความที่อบอยู่ในงานศิลป์ ข้อความที่ไม่เคยผ่านคอมโพเนนต์ที่ถูก hook และข้อความที่วาดด้วยตัวเรนเดอร์แบบกำหนดเอง จะไม่ถูกแปล
  • บิลด์ที่ถูกแพตช์มีต้นทุนคือขั้นตอนส่งออกและรอบทดสอบ และต้องทำใหม่เมื่อเกมอัปเดต สิ่งที่คุณได้กลับมาคือความถาวร: ไฟล์เก็บคำแปลไว้ เกมจึงเป็นเกมที่แปลแล้วจริง ๆ ใช้ได้ออฟไลน์ สำหรับทุกคนที่นำงานของคุณไปใช้
  • บิลด์ที่ถูกแพตช์ให้บันทึกที่แก้ไขได้ คุณแก้บรรทัดที่ไม่ดีหนึ่งบรรทัดในอีกหกเดือนได้โดยไม่ต้องแปลอย่างอื่นใหม่ — โอเวอร์เลย์ไม่มีอะไรให้แก้ มีแต่แคชให้ล้าง

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

สิ่งที่ต้องมีก่อนเริ่ม

  • สำเนาเกมที่คุณเป็นเจ้าของ ติดตั้งแล้วและเล่นได้ ลองเล่นสักสองสามนาทีก่อน — คุณตัดสินไม่ได้ว่าคำแปลอ่านถูกต้องไหมถ้าไม่เคยเห็นบริบทเลย
  • ความรู้ว่าเกมใช้เอนจินอะไร ข้อนี้กำหนดทุกอย่างเกี่ยวกับวิธีที่ข้อความออกมาและกลับเข้าไป
  • ภาษาปลายทางที่คุณอ่านออกจริง ๆ การแปลด้วยเครื่องให้ร่างแรกกับคุณ มันไม่ได้ให้แพตช์กับคุณ
  • พื้นที่ดิสก์สำหรับสำเนาเกมชุดที่สอง บิลด์ที่ถูกแพตช์เป็นโฟลเดอร์แยกต่างหาก — ต้นฉบับของคุณไม่ถูกแก้ไขเลย

การระบุเอนจินมักเป็นแค่การมองเข้าไปในโฟลเดอร์เกม โฟลเดอร์ www/data หรือ data ที่เต็มไปด้วยไฟล์ JSON คือ RPG Maker MV หรือ MZ; โฟลเดอร์ <Game>_Data คือ Unity; game/*.rpy หรืออาร์ไคฟ์ .rpa คือ Ren'Py; อาร์ไคฟ์ .xp3 คือ Kirikiri รายการเต็มของสิ่งที่แยกวิเคราะห์ได้พร้อมจุดสังเกตของแต่ละตัวอยู่ที่ หน้าเอนจิน — RuneTranslate ครอบคลุม 17 เอนจินและรูปแบบ และการตรวจจับเป็นอัตโนมัติเมื่อคุณชี้ไปที่โฟลเดอร์

เวิร์กโฟลว์

ไม่ว่าจะเอนจินไหน การทำแพตช์คือห้าขั้นตอนเดียวกันในลำดับเดียวกัน สิ่งที่คนอยากข้ามคือขั้นที่สาม อย่าข้าม

  1. ดึงข้อความ — อ่านสตริงที่แปลได้ทุกตัวออกจากไฟล์ของเกมเองเข้าสู่รายการที่คุณทำงานด้วยได้
  2. แปล — ส่งรายการนั้นผ่านผู้ให้บริการแปลด้วยเครื่องเพื่อให้ได้ร่างแรกที่ครบถ้วน
  3. ตรวจทาน — ไล่ดูบรรทัดที่เครื่องมักแปลผิดเป็นประจำ: ชื่อ คำลงท้ายแสดงความสุภาพ คำศัพท์เฉพาะ และอะไรก็ตามที่มีตัวยึดตำแหน่งอยู่ในนั้น
  4. ส่งออก — เขียนคำแปลกลับลงในรูปแบบของเกมแล้วสร้างบิลด์ที่เล่นได้
  5. ทดสอบ — เปิดบิลด์นั้นแล้วเล่นมันจริง ๆ

ดึงข้อความ

การดึงข้อความคือจุดที่ความรู้เรื่องเอนจินคุ้มค่า บทสนทนาแทบไม่เคยอยู่ในไฟล์ข้อความธรรมดา: RPG Maker เก็บมันไว้ในโค้ดคำสั่งอีเวนต์, Unity เก็บใน TextAsset และฟิลด์ MonoBehaviour ภายในไฟล์แอสเซ็ตแบบไบนารี, Kirikiri เก็บในสคริปต์ภายในอาร์ไคฟ์ที่เข้ารหัส, Unreal เก็บในตาราง .locres ภายใน .pak ตัวดึงข้อความที่ดียังรู้ว่าอะไรที่ ไม่ควร ส่งมาให้คุณ — ชื่อฉาก คีย์ตัวแปร ตัวถูกดำเนินการเปรียบเทียบ และพาธแอสเซ็ต ล้วนดูเหมือนสตริงและล้วนทำให้เกมพังถ้าถูกแปล ข้อความที่วาดอยู่ในงานศิลป์เป็นคนละปัญหาและใช้คนละเครื่องมือ ดู การแปลรูปภาพ

แปล

ให้ได้ร่างจากเครื่องครบทั้งชุดก่อนจะลงมือแก้ด้วยมือ คุณจะได้แก้ข้อความแทนที่จะนั่งจ้องคอลัมน์ว่าง RuneTranslate มีผู้ให้บริการ 9 ราย — Google, DeepL ฟรี และ DeepL Classic / Next-gen ไม่ต้องใช้คีย์ API เลย ส่วน API ของ DeepL, OpenAI, Anthropic Claude, DeepSeek, endpoint ใดก็ได้ที่เข้ากันได้กับ OpenAI และโมเดลบนเครื่องผ่าน Ollama หรือ LM Studio คือที่เหลือ ระดับฟรีปลดล็อกทุกรายและทุกเอนจิน สิ่งที่มันจำกัดคือปริมาณงานและการถือโปรเจกต์มากกว่าหนึ่งอันพร้อมกัน ผู้ให้บริการรายไหนเหมาะกับเกมแบบไหนอยู่ใน การเปรียบเทียบผู้ให้บริการ

ตรวจทาน

นี่คือขั้นที่ทำให้แพตช์คุ้มค่าแก่การนำไปใช้ ผลลัพธ์จากเครื่องลื่นไหลและผิดอย่างมั่นใจในจุดที่คาดเดาได้ ให้ไล่จุดเหล่านั้นอย่างตั้งใจ แทนที่จะอ่านทุกอย่างจากบนลงล่าง:

  • ชื่อตัวละคร เครื่องแปลชื่อไม่เหมือนกันทุกครั้งที่เจอ และบางครั้งก็แปลชื่อออกมาเป็นคำธรรมดา ตัดสินใจเรื่องการสะกดครั้งเดียวให้จบ
  • คำลงท้ายแสดงความสุภาพและระดับภาษา จะเก็บ -san / -chan ไว้หรือตัดทิ้งเป็นการตัดสินใจระดับโปรเจกต์ ไม่ใช่ระดับบรรทัด เช่นเดียวกับการที่ตัวละครหนึ่งพูดจาสุภาพหรือไม่
  • คำศัพท์เฉพาะ สกิล ไอเทม สถานที่ ระบบ และทุกอย่างที่เกมคิดขึ้นเอง สกิลชื่อเดียวที่เขียนไปสามแบบในเมนู ในทูลทิป และในบันทึกการต่อสู้ อ่านออกมาเหมือนเกมพัง
  • ตัวยึดตำแหน่งและโค้ดควบคุม อะไรอย่าง \C[1], {player} หรือ [name] ต้องรอดมาครบถ้วน ตัวยึดตำแหน่งที่ถูกแปลคือการแครชหรือช่องว่าง ไม่ใช่แค่คำสะกดผิด
  • บรรทัดที่กลับมาเหมือนเดิม มักเป็นคำเลียนเสียง และมักเป็นสัญญาณว่าผู้ให้บริการยอมแพ้กับบรรทัดนั้น

ความสม่ำเสมอของคำศัพท์

แพตช์ถูกทิ้งกลางคันเพราะความไม่สม่ำเสมอมากกว่าเพราะสำนวนแย่ ผู้เล่นให้อภัยประโยคที่แข็ง ๆ ได้ แต่ไม่ให้อภัยตัวละครคนเดียวที่ถูกเรียกว่า Yuuki, Yuki และ Snow ในบทสนทนาเดียวกัน เพราะมันทำให้ตามไม่ทันว่าใครกำลังพูด วิธีแก้คืออภิธานศัพท์: รายการคำต้นทางและคำปลายทางที่แต่ละคำต้องกลายเป็น ใช้บังคับก่อนการแปลเพื่อไม่ให้ผู้ให้บริการมีโอกาสด้นสด สร้างมันตั้งแต่เนิ่น ๆ จากชื่อที่คุณเจอในชั่วโมงแรก แล้วเพิ่มไปเรื่อย ๆ — คู่มืออภิธานศัพท์ อธิบายว่ามันทำงานร่วมกับการปิดบังแท็กอย่างไร และทำไมมันควรอยู่ตอนต้น แทนที่จะเป็นการค้นหาและแทนที่ตอนท้าย

ฟอนต์

เกมญี่ปุ่นส่งฟอนต์ญี่ปุ่นมา และฟอนต์ญี่ปุ่นมักไม่มีกลิฟสำหรับซีริลลิก กรีก ฮันกึล ไทย หรืออักษรละตินมีเครื่องหมายกำกับของโปแลนด์ ตุรกี และเวียดนาม แปลเป็นภาษาเหล่านั้นแล้วเกมจะเรนเดอร์เป็นกล่องว่าง — คำแปลถูกต้อง แต่ฟอนต์วาดมันไม่ได้เฉย ๆ บางเอนจินถูกจัดการให้แล้ว: การส่งออก Ren'Py จะรวมฟอนต์ที่รองรับมาให้และรีแมปฟอนต์ของเกมไปหามัน ส่วนที่ไม่อัตโนมัติ การแทนที่ไฟล์ฟอนต์ในบิลด์ที่ส่งออกมักแก้ได้ เครื่องหมายคำถามตรง ๆ เป็นความผิดพลาดคนละแบบโดยสิ้นเชิง — นั่นคือการเข้ารหัสสตริงของเอนจินเองปฏิเสธอักขระ ไม่ใช่กลิฟที่หายไป — และความต่างนี้ควรรู้ก่อนจะออกไปตามหาวิธีแก้ที่ผิด ทั้งสองกรณีอยู่ใน คำถามที่พบบ่อย

ทดสอบบิลด์

การส่งออกที่ไม่มีข้อผิดพลาดไม่ใช่แพตช์ที่ผ่านการทดสอบ เปิดมันขึ้นมาแล้วตรวจสิ่งที่พังแบบเงียบ ๆ:

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

การแบ่งปันงานของคุณ

นี่คือส่วนที่ตัดสินว่าแพตช์ของคุณเป็นสิ่งที่แจกจ่ายได้หรือไม่ สิ่งที่คุณสร้างขึ้นคือ คำแปล — บรรทัดข้อความ เกมไม่ใช่ของคุณ และการแพ็กสำเนาเกมที่แปลแล้วหมายถึงการแจกจ่ายเกมของคนอื่น รูปแบบที่ตรงไปตรงมาของแพตช์คืองานเพียว ๆ ที่ผู้รับแต่ละคนนำไปใช้กับสำเนาที่ตัวเองมีอยู่แล้ว

RuneTranslate ส่งออกสิ่งนั้นออกมาเป็นไฟล์ .rtpatch พอดี มันบรรจุ id ของยูนิต บรรทัดต้นฉบับที่แต่ละคำแปลจับคู่ด้วย และคำแปลของคุณ ไม่มีไฟล์เกม ไม่มีแอสเซ็ต ไม่มีไบนารี — ไฟล์นี้คือข้อความของคุณและไม่มีอะไรอื่น ซึ่งเป็นเหตุผลที่มันเล็กพอจะแนบไปกับข้อความ และปลอดภัยพอจะส่งให้ใครก็ได้

ฝั่งผู้รับมีสามขั้นตอน:

  1. เขาสร้างโปรเจกต์จากสำเนาเกมเดียวกันที่ติดตั้งไว้เอง ซึ่งจะดึงบรรทัดชุดเดียวกันออกมาบนเครื่องของเขา
  2. เขานำเข้าไฟล์ .rtpatch ของคุณ ซึ่งเติมคำแปลของคุณลงในบรรทัดเหล่านั้น
  3. เขาส่งออกบิลด์ที่เล่นได้ของตัวเองจากไฟล์เกมของตัวเอง

การจับคู่ใช้ id ของยูนิตก่อน แล้วถอยไปจับคู่ด้วยบรรทัดต้นฉบับเองเมื่อ id คลาดเคลื่อน — จากการอัปเดตเกมหรือจากการเปลี่ยนแปลงในตัวดึงข้อความ การถอยกลับนั้นคือสิ่งที่ทำให้แพตช์ยังใช้ได้หลังเกมออกแพตช์ การนำเข้าจะตรวจว่าเอนจินและภาษาปลายทางตรงกันก่อนจะใช้อะไร แพตช์ที่ทำมาสำหรับเกม Unity จึงหย่อนลงในโปรเจกต์ Ren'Py โดยบังเอิญไม่ได้ บนระดับฟรี การแบ่งปันแพตช์ถูกจำกัดที่การส่งออกหนึ่งครั้งและการนำเข้าหนึ่งครั้งต่อช่วงสามวันแบบหมุน ส่วนอย่างอื่นในการทำแพตช์ไม่ถูกจำกัดด้วยฟีเจอร์

ไฟล์เดียวกันนี้คือวิธีที่ทีมทำงานร่วมกัน — คนหนึ่งแปลเนื้อเรื่อง อีกคนแปลเมนู แล้วแพตช์ถูกรวมเข้าเป็นโปรเจกต์เดียว — และเป็นวิธีที่คุณเก็บงานของตัวเองไว้เมื่อเกมอัปเดต: ดึงข้อความใหม่จากเวอร์ชันใหม่ นำเข้าแพตช์เก่าของคุณ แล้วจะมีเฉพาะบรรทัดที่เปลี่ยนไปจริง ๆ ที่ต้องดูแล

ส่วนคำถามว่าตัวเกมเองแจกจ่ายซ้ำได้หรือไม่ เป็นสิทธิ์ของเจ้าของลิขสิทธิ์ ไม่ใช่ของคุณและไม่ใช่ของเรา แจกแพตช์ บอกผู้คนว่ามันทำมาจากเกมเวอร์ชันไหน แล้วให้เขาหาสำเนาของตัวเองมา

รายละเอียดเฉพาะของแต่ละเอนจิน

ทุกอย่างข้างบนคือรูปทรงของงาน สิ่งที่ต่างกันในแต่ละเอนจินคือข้อความอยู่ที่ไหน การส่งออกผลิตอะไรออกมา และอะไรที่ยังเอื้อมไม่ถึง — และควรอ่านก่อนเริ่ม มากกว่าจะไปอ่านหลังจากการส่งออกทำคุณประหลาดใจ: Unity, RPG Maker, Ren'Py หรือ รายการเอนจินฉบับเต็ม สำหรับอีกสิบสี่ตัวที่เหลือ

RuneTranslate ทำงานบน Windows 10 และ 11 และบน Linux กับ Steam Deck ผ่าน Wine หรือ Proton ต้องลงชื่อเข้าใช้ Patreon แบบฟรีตอนเปิดครั้งแรก ระดับฟรีเปิดทุกเอนจินและทุกผู้ให้บริการ ถ้าคุณกำลังชั่งน้ำหนักมันกับโอเวอร์เลย์และชุดเครื่องมือที่คนมักหยิบก่อน การเปรียบเทียบ แจกแจงว่าแต่ละแนวทางให้อะไรกับคุณจริง ๆ

อ่านที่เกี่ยวข้อง
01

วิธีแปลไฟล์ .po และ .mo ของเกม (gettext)

gettextpomoenginetutorial4 ส.ค. 2569 · 7 นาที
อ่าน →
02

วิธีแปลเกมญี่ปุ่นเป็นภาษาไทย (คู่มือสำหรับผู้เริ่มต้น)

getting-startedtutorial20 ก.ค. 2569 · 6 นาที
อ่าน →
03

วิธีแปลเกม Godot เป็นภาษาอังกฤษ

godotenginetutorial17 มิ.ย. 2569 · 6 นาที
อ่าน →

พร้อมลอง RuneTranslate ไหม

ระดับฟรีปลดล็อกทุกเอนจิน + ทุกผู้ให้บริการแปล Supporter ($3/mo) ปลดล็อกความเร็วเต็ม

ดาวน์โหลดสำหรับ Windows