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

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

9 มิ.ย. 2569·6 นาทีในการอ่าน

แปลเกม Unity ด้วย RuneTranslate — อ่าน TextAssets, ฟิลด์ MonoBehaviour (Mono และ IL2CPP) และ StreamingAssets ทำไมมันแปลได้เฉพาะข้อความที่ถูกดึงออกภายนอก และตัวป้องกันตัวระบุช่วยไม่ให้คุณทำเกมพังอย่างไร

Unity เป็นเอนจินที่อยู่เบื้องหลังส่วนแบ่งที่เพิ่มขึ้นของเกมอินดี้และวิชวลโนเวลญี่ปุ่น — และเป็นเอนจินที่แปลยากที่สุดในบรรดาเอนจินทั่วไป เพราะ Unity ไม่มีรูปแบบข้อความเดียว บทสนทนาอาจอยู่ในบล็อบ TextAsset ในฟิลด์สตริง MonoBehaviour ในสคริปต์ StreamingAssets แบบหลวม หรือคอมไพล์ตรงลงใน C# DLL คู่มือนี้พาผ่านการแปลเกม Unity ด้วย RuneTranslate และที่สำคัญไม่แพ้กัน อธิบายกฎข้อหนึ่งที่ทำให้ Unity ต่างออกไป: เฉพาะข้อความที่ถูกดึงออกภายนอก

ข้อควรระวังใหญ่ก่อน: เฉพาะข้อความที่ถูกดึงออกภายนอก

RuneTranslate แปลข้อความ Unity ที่อยู่ใน ข้อมูล — ไฟล์แอสเซ็ตที่เอนจินโหลดตอนรันไทม์ รวมถึงฟิลด์สตริงบนคอมโพเนนต์ MonoBehaviour (บทสนทนา ชื่อ ป้าย) มันอ่านฟิลด์เหล่านั้นบนบิลด์ ทั้ง Mono และ IL2CPP: เลย์เอาต์ชนิดข้อมูลมาจาก DLL ของเกมเองบน Mono หรือถูกสร้างขึ้นใหม่จากเมทาดาทา IL2CPP เมื่อไม่มีโฟลเดอร์ Managed/ สิ่งที่มัน เข้าไม่ถึง คือข้อความที่ฮาร์ดโค้ดลงในโค้ด C# ที่คอมไพล์แล้วเอง (Assembly-CSharp.dll) ในทางปฏิบัติ เกมที่เก็บสคริปต์ไว้ในแอสเซ็ตและคอมโพเนนต์แปลได้ดี — และการเปิดโปรเจกต์ ซึ่งเป็นขั้นตอนแรก บอกคุณว่าคุณมีอะไร

สิ่งที่คุณต้องมี

  • RuneTranslate สำหรับ Windows — ฟรี ทุกเอนจินและผู้ให้บริการถูกปลดล็อก
  • โฟลเดอร์เกม Unity — ไดเรกทอรีที่มีไฟล์ .exe ของเกมและโฟลเดอร์ <GameName>_Data/ (ที่มี globalgamemanagers, resources.assets, data.unity3d และไฟล์ level*)
  • ภาษาปลายทาง — อังกฤษ สเปน ฝรั่งเศส เยอรมัน โปรตุเกส รัสเซีย จีน อิตาลี ตุรกี เวียดนาม และอีก 20+ ภาษา
  • ผู้ให้บริการแปลหนึ่งราย Google Translate ฟรีใช้ได้เลย; DeepL มีระดับฟรี; OpenAI, Anthropic, โมเดลบนเครื่อง และ API ที่เข้ากันได้กับ OpenAI ต้องใช้คีย์ของคุณเอง

ขั้นที่ 1: เปิดโฟลเดอร์เกม

เปิด RuneTranslate คลิก New project แล้วชี้ไปที่ไดเรกทอรีเกม Unity การตรวจจับเอนจินมองหาโฟลเดอร์ _Data/ และจำแนกโปรเจกต์เป็น Unity UnityPy Python sidecar ที่รวมมา (ส่งมาในตัวติดตั้ง) เปิดไฟล์แอสเซ็ตและแสดงสตริงที่อ่านได้ลงในพื้นที่ทำงานต่อโปรเจกต์ใต้ %APPDATA%/RuneTranslate/unity-workspace/<projectId>/ โฟลเดอร์เกมต้นฉบับของคุณจะไม่ถูกแก้ไขเลย Unity เป็นเอนจินแบบ พยายามอย่างเต็มที่ — ตรวจสอบว่าบิลด์ที่ส่งออกรันได้ก่อนแจกจ่ายต่อ

ขั้นที่ 2: สตริงถูกดึงออกอย่างไร

RuneTranslate อ่านข้อความจากทุกที่ที่ Unity ดึงออกภายนอก:

  • TextAssets — บล็อบ JSON / CSV / สคริปต์ที่ฝังใน .assets และ AssetBundles ตัดออกด้วยตัวดึงที่รู้จักรูปแบบ
  • ฟิลด์สตริง MonoBehaviour — ข้อความที่แสดงบนคอมโพเนนต์ (บทสนทนา ชื่อ ป้าย) บนบิลด์ทั้ง Mono และ IL2CPP (ข้อมูลชนิดมาจาก DLL ของเกม หรือถูกสร้างขึ้นใหม่จากเมทาดาทา IL2CPP)
  • StreamingAssets — ไฟล์สคริปต์แบบหลวมที่เดินไล่บนดิสก์โดยตรง (.json, .txt, .csv, .tsv, .xml, .yaml, .ks และอื่น ๆ)
  • บันเดิล Addressable ที่เข้ารหัส — เกมที่เข้ารหัส AES บันเดิลแอสเซ็ต Addressable ของตนถูกถอดรหัสโดยอัตโนมัติ (คีย์ได้จากชื่อไฟล์ของบันเดิลเอง) ข้อความของมันจึงดึงออกได้เหมือนบันเดิลอื่น

Unity ยังเป็นที่ที่การแปลเกินทำความเสียหายมากที่สุด RuneTranslate จึงมาพร้อมตัวป้องกันสำหรับมัน สตริง MonoBehaviour จำนวนมากไม่ใช่ข้อความที่แสดงเลย — มันเป็น ตัวระบุควบคุม และ ตัวถูกดำเนินการโฟลว์: ชื่อฉากที่การเรียก LoadScene แก้ไขด้วยสตริง คีย์กำหนดเส้นทางข้อความ ชื่อแอนิเมเตอร์ / คลิปเสียง ชื่อชิ้นส่วน Live2D และค่าเปรียบเทียบภายในตรรกะ Fungus If / SetVariable (เช่น แฟล็กอย่าง 村落出口) แปลสิ่งเหล่านั้นแล้วเกมพังเงียบ ๆ — อาการคลาสสิกคือหน้าจอ "loading" ไม่รู้จบโดยไม่มีข้อผิดพลาด RuneTranslate จำแนกสิ่งเหล่านี้เป็น excluded โดยอัตโนมัติ (แสดงเป็นสีแดง เลือกเข้าเท่านั้น) ตัวแก้ไขจึงนำเสนอบทสนทนาและป้ายจริงและปล่อยกลไกไว้ตามลำพัง การแทนที่ {$var} ของ Fungus และมาร์กอัป {color=...} / TMP <...> ถูกปิดบังไว้หลังตัวยึดตำแหน่งเพื่อให้มันรอดผ่านการแปลครบถ้วน

ขั้นที่ 3: แปลและตรวจทาน

เลือกผู้ให้บริการแล้วรัน DeepL หรือ LLM อ่านได้ดีที่สุดสำหรับบทสนทนา; Google Translate ฟรีครอบคลุมเมนูและชื่อไอเทม ใส่นักแสดงและคำศัพท์ที่ปรากฏซ้ำลงอภิธานศัพท์ก่อน ดู Glossary 101 ทุกบรรทัดลงในตัวแก้ไขข้างต้นฉบับ; แก้แบบอินไลน์ (บันทึกเมื่อคลิกออกหรือ Ctrl+Enter) และรัน ตัวขัดเกลาด้วย AI แบบไม่บังคับสำหรับการตรวจทานรอบสอง ระดับฟรีทำงานที่การจำกัดความเร็วเล็กน้อย (ช้ากว่าประมาณ 2 เท่าบนผู้ให้บริการ AI น้อยกว่านั้นบนตัวดึง) — เอนจินเดียวกัน คุณภาพผลลัพธ์เดียวกัน; แบบเสียเงินแค่ทำงานความเร็วเต็มที่

ขั้นที่ 4: ส่งออกบิลด์ที่เล่นได้

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

กำลังแปลเป็นภาษาที่ไม่ใช่ละติน (จีน ญี่ปุ่น เกาหลี ไทย อาหรับ) ที่ฟอนต์ในตัวของเกมเรนเดอร์กลิฟไม่ได้เหรอ? RuneTranslate ฉีดฟอนต์สำรองเข้าไปในสแตกฟอนต์ TextMeshPro ตอนส่งออก ข้อความที่แปลแล้วจึงแสดงแทนที่จะเป็นกล่องกลิฟที่หายไป

ข้อจำกัดที่ทราบ

  • เฉพาะข้อความที่ถูกดึงออกภายนอก: สตริงที่ฮาร์ดโค้ดลงในโค้ด C# ที่คอมไพล์แล้ว (Assembly-CSharp.dll บน Mono หรือไบนารี IL2CPP) ไม่ถูกแปล ฟิลด์ ข้อมูล MonoBehaviour ถูกแปล — บนบิลด์ทั้ง Mono และ IL2CPP
  • การอ่าน MonoBehaviour ของ IL2CPP ต้องการ global-metadata.dat ที่แยกวิเคราะห์ได้; เมทาดาทาที่ทำให้อ่านยากอย่างหนักอาจสร้างขึ้นใหม่ไม่ได้ (พยายามอย่างเต็มที่)
  • พยายามอย่างเต็มที่: ยืนยันว่าเกมที่ส่งออกเปิดขึ้นและอ่านได้ถูกต้องก่อนแชร์
  • ข้อความในภาพ (โลโก้ UI ที่วาดมือ คำบรรยาย CG) ไม่ถูกแปล — อยู่นอกขอบเขตการแปลด้วยเครื่อง

ทำไมมันง่ายกว่าวิธีเดิม

การแปล Unity ด้วยมือหมายถึงการแกะแอสเซ็ตด้วย UABE หรือ AssetStudio ตามล่าว่า TextAssets และฟิลด์ MonoBehaviour ใดถือข้อความจริง หลีกเลี่ยงสตริงตัวระบุที่ทำให้เกมแครชด้วยมือ แล้วนำเข้าใหม่โดยไม่ทำตารางแอสเซ็ตเสียหาย RuneTranslate พับการดึงออก จำแนก (เพื่อไม่ให้คุณแปลกลไก) แปล และแพตช์ในที่เดิม เข้าเป็นไม่กี่คลิก — โดยเปิดตัวแก้ไขไว้เพื่อให้คุณควบคุมการใช้คำ

ดูหน้าเอนจิน Unity สำหรับรายการฟีเจอร์เต็ม อ่าน คู่มือ TyranoBuilder สำหรับเอนจินที่อิง HTML หรือ ดาวน์โหลด RuneTranslate แล้วลองบนเกมจริง

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

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

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

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

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

วิธีแปลเกม Ren’Py เป็นภาษาอังกฤษ (คู่มือฉบับเต็ม)

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

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

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

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