Unity là một engine làm ra vô số game nổi tiếng mà ai cũng biết đến. Bình thường mình xem bên nước ngoài thì mọi người sẽ dùng UnityEx với vài con game, nhưng UnityEx chỉ dùng được cho các game Unity từ 2020 trở xuống thôi. Còn nếu muốn ‘động’ vào game Unity mới, bạn phải ‘phang’ UnityEX Ultimate, mà tool này có giá khoảng 3 củ hơn. Mình thì thuộc dạng ‘nghèo kiết xác’, không có điều kiện để xài cái đó nên hôm nay mình sẽ chia sẻ với các bạn cách dùng Tool UABEA để dịch các game thuộc engine này. Vì bài hướng dẫn khá dài, nên mình sẽ cập nhật từ từ hoặc khi có thời gian rảnh. Hãy nhớ rằng đây không phải là cách duy nhất đâu, nhưng nó miễn phí, lại đỡ tốn tiền, mà bù lại, bạn cần phải có kiến thức nhất định để làm được.
Dù cho có cùng Engine đi nữa thì có thể mỗi trò chơi đều có cách gói văn bản, phông chữ và nội dung khác nhau. Nên không đảm bảo 100% tựa game nào cũng có thể làm được theo cách này. Bạn cứ nghĩ nó như giải toán ấy, mỗi đề sẽ hơi khác nhau. Đó cũng là điều thú vị của việc giải mã game và vọc những con game khó nữa mà, nên hãy cứ cố gắng nếu có đam mê tìm tòi nhé. Hôm nay bạn không làm được, chưa chắc ngày mai hay tương cũng thất bại,
– Các Tool Mình Thường Dùng: (Cứ tải trước, cách dùng mình hướng dẫn bên dưới)
1. UABEA by nesrak1 (Dùng để xem và trích xuất Data của game)
2. Notepad++ (Dùng để mở file văn bản và chỉnh sửa hoặc up Google Sheet, tùy bạn sử dụng)
3. 010 Editor (Dùng để đục sâu vào Hex và tra tìm vị trí của Text)
4. Total Commander (Dùng để tra tìm vị trí của Text)
5. Unity (Dùng để tạo Font Game)
6. FontLab 8 (Dùng để Việt Hóa Font Game)
7. AssetStudio by Perfare (Dùng để xem các file của game chi tiết hơn, cụ thể xem font ảnh và font, texture,…)
8. dnSpy (Dùng để xử lý text trong file Assembly-CSharp)
9. UnityText2 (Dùng để xử lý text trong file raw có đuôi .dat)
Lưu ý: Để biết game bạn cần dịch có thuộc dạng Unreal Engine hay Unity hoặc các engine khác, các bạn có thể tra google tên game + engine hoặc xem thông tin trên các trang như wiki, steamdb,…
TỰA GAME MÌNH DÙNG ĐỂ THỬ NGHIỆM: DEATH IN THE WATER 2 (Phát Hành Vào Ngày 26 Tháng 1 Năm 2023)
Ⅰ. XỬ LÝ VĂN BẢN GAME (TEXT)
1. Tìm Text
– Mở Total Commander rồi mở Search sau đó nhập từ để tìm thì nó sẽ lọc text cho biết text nằm ở đâu (nhớ tick theo ảnh dưới)
– Một vài lưu ý là đôi khi text nằm trong các file bundle hoặc bị mã hóa, thì bạn cần phải giải mã và xả hết ra mới tìm được nhé
![[PC] Hướng Dẫn Việt Hóa Game Unity Cơ Bản Đến Nâng Cao (Bằng UABEA) - Chép Game Uy Tín tại ChepGame.net](https://i.imgur.com/0mNLKqi.jpeg)
![[PC] Hướng Dẫn Việt Hóa Game Unity Cơ Bản Đến Nâng Cao (Bằng UABEA) - Chép Game Uy Tín tại ChepGame.net](https://i.imgur.com/7Tp75jv.jpeg)
Hoặc bạn có thể dùng 010 Editor như hướng dẫn dưới Ảnh, mình thì thường dùng cái này hơn
![[PC] Hướng Dẫn Việt Hóa Game Unity Cơ Bản Đến Nâng Cao (Bằng UABEA) - Chép Game Uy Tín tại ChepGame.net](https://i.imgur.com/rj5d4X4.png)
2. Nếu Text Có Đuôi Là TXT
Nếu kết quả bạn tìm ra Text có đuôi là TXT thì bạn cứ dùng Notepad++ mở lên rồi dịch như bình thường, lưu ý tránh xóa Code và nhớ backup để đề phòng file bị hỏng, trong quá trình dịch lỡ tay xóa code là điều khá thường xuyên xảy ra với các bạn mới.
3. Nếu Text Nằm Trong File Có Đuôi Là TextAssets
– Sau khi tra được text nằm ở file nào, ví dụ mình tra thấy text ở file có tên resources.assets
– Mở file UABEA lên và làm theo như hướng dẫn dưới ảnh
Open
resources.assets trong Folder Game/TênGame_Data
LƯU Ý: Thông thường thì file resources.assets sẽ chứa văn bản của game, chỉ là thông thường, không phải lúc nào cũng thế, trong trường hợp không có thì các bạn dùng 010 Editor, Total Commander để tìm văn bản nằm ở đâu, sau đó dùng UABEA để mở lên nếu có đuôi là .assets, có trường hợp là file TXT thì các bạn cứ mở bằng notepad ++ rồi dịch như bình thường
![[PC] Hướng Dẫn Việt Hóa Game Unity Cơ Bản Đến Nâng Cao (Bằng UABEA) - Chép Game Uy Tín tại ChepGame.net](https://i.imgur.com/mWE52rK.png)
Sau khi mở lên thì các bạn sẽ thấy rất nhiều dữ liệu, các bạn cứ bỏ qua tập trung vào text trước
Chọn Filter và tích vào TextAsset
![[PC] Hướng Dẫn Việt Hóa Game Unity Cơ Bản Đến Nâng Cao (Bằng UABEA) - Chép Game Uy Tín tại ChepGame.net](https://i.imgur.com/Hx4m7tB.png)
Kết Quả sẽ ra những file chứa Text của game, như mình nói, mỗi tựa game sẽ gói theo cách khác nhau nên như ảnh dưới, game này phân biệt sẵn ngôn ngữ chứ sẽ có trường hợp 1 con game gom nhiều ngôn ngữ vào 1 file.
![[PC] Hướng Dẫn Việt Hóa Game Unity Cơ Bản Đến Nâng Cao (Bằng UABEA) - Chép Game Uy Tín tại ChepGame.net](https://i.imgur.com/YX7TRD8.png)
Vì dịch từ Tiếng Anh sang Tiếng Việt nên các bạn chọn vào những dòng EN rồi nhấn Plugins ➞ Export .TXT để xuất file văn bản đuôi txt
Bước này thì bạn chỉ cần mở file đã export ra và sửa thôi
Sau khi đã chỉnh sửa xong, bạn chọn Plugins ➞ Import .TXT để import vào lại, sau đó bấm save để lưu, và đây là thành quả
![[PC] Hướng Dẫn Việt Hóa Game Unity Cơ Bản Đến Nâng Cao (Bằng UABEA) - Chép Game Uy Tín tại ChepGame.net](https://i.imgur.com/fMknDTZ.png)
4. Nếu Text Có Đuôi là .Bundle
![[PC] Hướng Dẫn Việt Hóa Game Unity Cơ Bản Đến Nâng Cao (Bằng UABEA) - Chép Game Uy Tín tại ChepGame.net](https://i.imgur.com/s0eUdvt.png)
5. Nếu Text Có Đuôi là MonoBehaviour
– Nếu Text là MonoBehaviour thì chuột phải vào và chọn Export Dump
– Sau khi dịch xong thì Import Dump vào như các dạng trước
– Bạn có thể viết code để tách Text ra dễ dịch hơn, ví dụ như ảnh dưới đây:
Text Gốc Của Game
![[PC] Hướng Dẫn Việt Hóa Game Unity Cơ Bản Đến Nâng Cao (Bằng UABEA) - Chép Game Uy Tín tại ChepGame.net](https://i.imgur.com/qJk7vjy.png)
Text Đã Clean Code
![[PC] Hướng Dẫn Việt Hóa Game Unity Cơ Bản Đến Nâng Cao (Bằng UABEA) - Chép Game Uy Tín tại ChepGame.net](https://i.imgur.com/aTn98He.png)
6. Nếu Text Nằm Trong Assembly-CSharp.dll
Cách 1: Dùng dnSpy sửa từng dòng
Lúc này là khi bạn cần dùng tới dnSpy đó, về cơ bản đây là công cụ dùng để mở, xem, chỉnh sửa và debug file .NET / Unity Assembly như .dll, .exe, đặc biệt hữu ích với game Unity.
Cách sử dụng:
- Mở dnSpy.exe
- Kéo thả file .dll hoặc .exe vào cửa sổ dnSpy
Ví dụ Unity thường là:
Managed/Assembly-CSharp.dll - Bên trái sẽ hiện cây thư mục class/method
- Bấm vào class hoặc method để xem code C# đã decompile
- Dùng Search để tìm text, class, method hoặc string
- Muốn sửa code: chuột phải vào method/class → Edit Method hoặc Edit Class
- Sửa xong bấm Compile
- Lưu file bằng:
File → Save Module
Dùng để dịch game Unity
Thường mở các file như:
Assembly-CSharp.dll
Assembly-CSharp-firstpass.dll
Sau đó tìm các chuỗi text trong game bằng Search → Search Assemblies, sửa trực tiếp nếu text nằm trong code.
Lưu ý
Nên backup file gốc trước khi sửa.
Cách 2: Nhờ GPT Viết Tool Giải Hết Sửa Cho Gọn
7. Nếu Text là file raw có đuôi .dat
Có vài trường hợp không thể xuất file thường, bắt buộc phải xuất raw thì nó sẽ có đuôi .dat. Trường hợp này cũng gặp nhiều. Thường mình sẽ dùng tool UnityText2. Cách sử dụng tinh chỉnh thông số và sử dụng mình để ở ảnh dưới.
8. Nếu Text là file có đuôi .bytes
Phần này hơi khoai chút nhé, mình chỉ có thể hướng dẫn các bạn “cách thức” thay vì quăng một cái tool làm thay hết vì .bytes không phải định dạng chung, mỗi game có thể có cấu trúc khác nhau. Do đó cần phân tích file bằng hex trước, tìm các chuỗi text hiển thị trong game, xác định pattern lưu text trong nhị phân, rồi mới viết script trích xuất. Không nên scan và thay text bừa, vì có thể sửa nhầm key/path/id hoặc làm lệch cấu trúc byte khiến game lỗi. Sau khi xác định đúng cấu trúc, tự hoặc nhờ GPT viết tool export và import, nhớ backup trước khi import nha kẻo lỗi game rồi verify mất thời gian.
Trích Từ Bình Luận của kientrungx | THE RED TEAM , xin chân thành cảm ơn bạn đã chia sẻ thêm kiến thức cho cộng đồng, nhằm tôn trọng tác giả đã viết hướng dẫn, dưới đây là nguyên văn không qua sửa đổi
Dành cho những ai lười và không hiểu nhiều về kỹ thuật trong Unity, sử tool để trích xuất All text trong game unity ra 1 file text và ghép lại thành En=vi để sử dụng cho plugin BepInEx. Hình minh họa. Để ngồi viết hướng dẫn sử dụng. Tụi mob bên thái hay sử dụng kỹ thuật này, bởi vì nó đơn giản và ai cũng làm được.
Tool: Xin 1 like nhé )
Hướng dẫn sử dụng:
Ví dụ với 1 con game 18+ này nhé (….)
Dùng AssetStudio mở vào thư mục data của nó như hình.
Sau khi load xong nó hiện ra như thế này, trích xuất ra được 1 thư mục Monobihavior…
Mở Paloslios Unity Text Extractor, kéo thư mục Monobihavior vào
Tiếp theo
Cấu trúc bắt buộc khi sử dụng tool này nhé: text chưa dịch phải đặt tên là Paloslios.txt ; file dịch phải đặt tên là Translated.txt, sẽ tạo ra 1 file mới với cấu trúc file là En=Vi.
Thế là xong rồi đó, copy file đó vào BepInEx là có tiếng việt rồi. Cái này chỉ dành cho ai không biết về kỹ thuật thôi, chứ nếu can thiệp vào game và chỉnh sửa font và các thứ trong đó thì sẽ tốt hơn nhiều.
Ⅱ . XỬ LÝ FONT GAME
1. Nếu Font là TTF, OTF
Như ảnh trên, bạn có thể thấy Font bị què, nguyên nhân là do font chưa Việt Hóa. Xem mình xử lý nhé
1. Các bạn dùng Asset Studio để tra tìm Font, cách mở cũng như bằng UABEA, khi đã xác định được font mình cần tìm ở đâu thì dùng UABEA mở file chứa Font đó lên, dùng Filter để lọc file Font, sau đó chọn tất cả Plugins Export TTF/OTF
![[PC] Hướng Dẫn Việt Hóa Game Unity Cơ Bản Đến Nâng Cao (Bằng UABEA) - Chép Game Uy Tín tại ChepGame.net](https://i.imgur.com/TpEBhVE.png)
![[PC] Hướng Dẫn Việt Hóa Game Unity Cơ Bản Đến Nâng Cao (Bằng UABEA) - Chép Game Uy Tín tại ChepGame.net](https://i.imgur.com/NJ3q0Rm.png)
Sau khi chọn nơi lưu thì dùng Fontlab 8 để thêm kí tự tiếng Việt cho font hoặc dùng font khác đã Việt Hóa, cái này thì tùy bạn thôi.
Sau khi đã có file Font TTF được việt hóa, bước tiếp theo, bạn dùng tới Unity. Phiên bản nào cũng được, không nhất thiết phải trùng ver với game đâu.
Mở Unity ➞ New project
![[PC] Hướng Dẫn Việt Hóa Game Unity Cơ Bản Đến Nâng Cao (Bằng UABEA) - Chép Game Uy Tín tại ChepGame.net](https://i.imgur.com/M1pZ8xe.png)
Sau khi vào được thì bạn kéo file TTF của Font đã việt hóa vào như ảnh, sau đó chọn Dấu + ➞ 3D Object ➞ 3D Text
Rồi bạn kéo font vào ô Font này như ảnh, sau đó nhấn File ➞ Buid Settings ➞ Build
![[PC] Hướng Dẫn Việt Hóa Game Unity Cơ Bản Đến Nâng Cao (Bằng UABEA) - Chép Game Uy Tín tại ChepGame.net](https://i.imgur.com/abaDg6d.png)
Kết quả xuất ra sẽ thế này, các bạn làm theo bước trong ảnh, giai đoạn này bắt đầu phức tạp chút nên hãy xem cẩn thận
![[PC] Hướng Dẫn Việt Hóa Game Unity Cơ Bản Đến Nâng Cao (Bằng UABEA) - Chép Game Uy Tín tại ChepGame.net](https://i.imgur.com/CpH8z7y.png)
– Dùng UABEA để mở file sharedassets0 (đây là file chứa font đã được Việt Hóa)
– Xuất File Font ra theo dạng Dump bằng Export Dump
– Làm tương tự hai bước trên với file chứa font gốc
– Mở notepad ++ lên và copy số sau 0 SInt64 m_PathID của file Dump Từ Font Gốc Vào 0 SInt64 m_PathID = của Font Đã Việt Hóa
Lưu ý: 1 String m_Name phải trùng Font Gốc
![[PC] Hướng Dẫn Việt Hóa Game Unity Cơ Bản Đến Nâng Cao (Bằng UABEA) - Chép Game Uy Tín tại ChepGame.net](https://i.imgur.com/9aa0bhN.png)
Sau đó copy toàn bộ nội dung của sharedassets0.txt sang font gốc rồi Import Dump, nhấn save để lưu lại và đây là kết quả
![[PC] Hướng Dẫn Việt Hóa Game Unity Cơ Bản Đến Nâng Cao (Bằng UABEA) - Chép Game Uy Tín tại ChepGame.net](https://i.imgur.com/Ogxq8f3.png)
Trong trường hợp khi đã Import Font TTF đầy đủ hết nhưng Font vẫn bị què, thì nó khả năng cao chính là Font Ảnh, Bitmap.
2. Nếu Font là Font Ảnh
Xác Định Font Game:
Trước khi bắt tay vào tạo font, bạn phải biết game sử dụng font gì đã. Cách đơn giản nhất là dùng AssetStudio
để kiểm tra các font trong file game. Tuy nhiên, cái này không dễ vì Unity không cố định vị trí chứa font, bạn sẽ phải “lùng sục” một lúc mới tìm ra được
.
Ví dụ như game Blasphemous
dùng Unity engine phiên bản 1.2.3, thì bạn cũng phải tải Unity đúng version đó mới tạo được font chuẩn chỉnh nhé.
Tạo Font:
Khi đã xác định được font của game, bước tiếp theo là dùng Unity để tạo font giống như những ảnh minh họa trên. Quy trình tạo font cơ bản thì khá giống nhau
, vì vậy bạn cần nắm rõ các thông số font gốc như Size, Padding… để tạo ra font chuẩn nhất có thể. Quá trình này bao gồm việc xác định kích thước ký tự, khoảng cách giữa các ký tự, và các thông số hình ảnh liên quan
.
Sau khi đã tạo font xong, đừng quên build lại chương trình trong Unity
. Khi build hoàn tất, tìm các file ảnh font và tọa độ font trong thư mục output của Unity. Các file này chứa thông tin chi tiết về cách các ký tự được hiển thị, bao gồm tọa độ, kích thước và khoảng cách giữa các ký tự.
Thay Thế Font Trong Game:
Giờ thì đến lúc thay thế font trong game rồi!
Bạn có thể thay thế ảnh font và map font của game bằng các file mới mà bạn tạo ra thông qua UABEA
. Tuy nhiên, khi thay thế map font, nhớ chỉ thay các ký tự hoặc ảnh liên quan đến ký tự mà bạn đã chỉnh sửa thôi. Đảm bảo các thông tin trong map font mới phải khớp với cấu trúc ban đầu để tránh lỗi hiển thị sau này
.
Xong rồi, giờ chỉ việc vào game kiểm tra thôi!
Nếu rảnh mình sẽ update tiếp tùy vào trường hợp của mấy bạn gặp gì nhé
