Tut - Tool [PC|Android|iOS] Hướng Dẫn Việt Hóa Game Unity ( Cơ Bản đến Nâng Cao )_Update 27/7/19

Thảo luận trong 'Tut - Tool hướng dẫn dịch game' bắt đầu bởi _Cloud_, 23/7/19.

  1. _Cloud_

    _Cloud_ You're Breathtaking! Kỹ Thuật Viên

    65
    24
    18
    16/8/18
    Nam
    TP.HCM
    [​IMG]


    [PC|Android|iOS]
    HƯỚNG DẪN VIỆT HÓA GAME UNITY
    ( Cơ Bản đến Nâng Cao )
    _Update 1: 27/07/2019


    Lời nói đầu:
    Nếu bạn quan tâm đến tut này và muốn việt hóa game Unity thì hãy cố gắng đọc hết bài lần đầu, những lần sau chỉ cần đọc những phần mình update là được.
    Game Unity rất nhiều từ PC cho đến android, iOS,… các hệ máy console cũng có nhưng do túi tiền có điều kiện nên mình không nghiên cứu Unity trên console.

    Mình sẽ hướng dẫn gần như toàn bộ những tinh túy, kỹ thuật để việt hóa game Unity mà mình đã nghiên cứu và đúc kết được trong suốt 3 tháng. “Gần như” vậy phần còn lại thì sao ? Mình trả lời luôn là Không chia sẻ vì đây là những kỹ thuật nhỏ, hay, khó làm và quan trọng, nó hoàn toàn thuộc về người khác, không phải do mình nghĩ ra.

    Mục đích của tut: để mọi người ai cũng có thể tự mình việt hóa 1 tựa game không phải nhờ ai lo phần kỹ thuật, hay là mình sẽ có “danh tiếng” gì đó và cộng đồng sẽ biết đến tên Cloud với danh nghĩa là một người tốt nhỉ ? Sai rồi hoàn toàn sai, mình không hề tốt vậy đâu. Vì mình bắt đầu lười với dòng unity, đã nghịch cũng gần hết rồi, mình muốn có thêm nhiều game việt hóa để chơi, nhiều người làm được Unity thì mình sẽ có nhiều thời gian rảnh,… toàn là mục đích cá nhân của mình thôi, kể thêm nữa chắc thành người xấu mất giggle~~. Nhưng mình tin là sau khi đọc tut này, chắc chắn sẽ giúp ích gì đó cho các bạn. Các bạn được phép thỏa chí việt hóa tựa game mình yêu thích, mình thì có game mới để chơi. Vậy xem như là hợp tác để đôi bên cùng có lợi nhỉ ?

    Để bài viết không quá dài dòng thì mình sẽ tích hợp cả PC, Android, iOS vô chung luôn nhưng mình sẽ đề cập từng phần 1 riêng lẻ trong 1 mục chung.
    Mình sẽ cập nhật bài 1 tuần hoặc 1 tháng/lần để bổ sung những phần mới. Đôi khi những phần mới sẽ nằm chung với phần cũ và các bạn sẽ không phân biệt được cái nào mới cái nào cũ, đọc sẽ không biết gì. Vậy nên mình đã up link folder lịch sử cập nhật bài ở dạng word trình bày có mục lục dễ hiểu hơn.
    Folder Word


    UPDATE:
    Mục NOTE cuối bài luôn được cập nhật.
    23/07/2019:
    Bài hướng dẫn được release, phần cơ bản đủ để việt hóa series WitchSpring, …
    27/07/2019:
    - Cập nhật phần 2. Text trong dll trong mục VI. Xử lý Text Game
    - Cập nhật mục VIII. Xử Lý Textures Game

    p.s: NGHIÊM CẤM MỌI HÀNH VI DÙNG PHẦN HƯỚNG DẪN NÀY NHẰM MỤC ĐÍCH LẤY CẮP BẢN QUYỀN GAME, BẢN VIỆT HÓA CỦA NGƯỜI KHÁC !
    - Cập nhật mục X. Q&A




    I. Kiểm tra xem game có thuộc engine Unity
    Để việt hóa game Unity thì tất nhiên game phải dùng engine Unity.
    PC: Dùng khung search có sẵn của windows như ảnh tìm “1 trong các file” như globalgamemanagers, resources.assets hoặc sharedassets0.assets, data.unity3d, Assembly-CSharp.dll… nếu có thì chúc mừng bạn đã hoàn thành bước 1.

    [​IMG]
    Android: đổi tên tệp .apk -> .zip dùng winrar giải nén và tìm như PC.
    iOS: đổi tên tệp .ipa -> .zip dùng winrar giải nén và tìm như PC.

    II. Tool:

    23/07/2019: Với bài này chỉ cần sử dụng ABE, UnityEX và FontLab ( tùy thích )
    27/7/2019: dnSpy, ABE. UnityEX và xsearch ( cho phần note )

    AssetBundleExtractor ( viết tắt: ABE) ( tải bản 2.2 beta 4 ) ( Credit trong link tải )
    AssetStudio ( viết tắt: AS ) ( Credit: Perfare )
    UnityEX ( Credit: DragonZH )
    UnityText ( Credit: StiGMaT )
    FontLab ( not free so no credit and no cr*ck link !!)
    XSearch ( Credit in link, a free software ? so good... )
    dnSpy ( Credit: 0xd4d )
    HxD ( Credit: mh-nexus )
    Unity ( chỉ download khi nào cần sử dụng ) ( Credit: Unity ? )
    BMFont ( Credit trong link tải )
    Notepad++ ( nhiều tính năng hơn notepad ) ( Credit trong link tải )
    Tool chỉnh sửa ảnh bất kỳ: PTS, GIMP,…

    Trình duyệt web bất kỳ: Chrome, FireFox, IE, …

    **Ngoài ra còn có 1 số tool đặc thù phải có dành riêng cho Android/iOS:
    Winrar/ 7-zip ( Credit trong link tải)
    apkstudio ( android ) ( Credit: Vaibhav Pandey )
    Cydia Impactor ( iOS ) ( Credit trong link tải )


    Liệt kê nhiều vậy nhưng tùy game, có game phải dùng hết có game dùng 1, 2 tool là xong.

    III. BACKUP

    Mục này thì rất đơn giản nhưng rất hữu ích nên mình lập thành 1 mục luôn để nhắc các bạn:

    PHẢI LUÔN LUÔN BACKUP GAME GỐC TRƯỚC KHI CHỈNH SỬA.


    IV. Unpack/repack cho file .apk /.obb và .ipa ( Android/ iOS )
    1. Android:

    + Hướng dẫn cài đặt apkstudio:
    Sau khi tải về và giải nén, nhấn vào biểu tượng bánh răng bên trái, sẽ hiện 1 cái bảng như hình, bạn cần trỏ đường dẫn đúng đến những file này. Những file này ở đâu thì bạn cứ nhấn “get it here” và tải về. Riêng Java sau khi cài xong bạn phải kiểm tra xem file java.exe ở đâu, thường nó sẽ theo đường dẫn
    C:/Program File/Java/.../java.exe
    [​IMG]

    + Xử lý file .apk:

    Decompile
    Nhấn vào biểu tượng android, chọn file .apk và thiết lập như hình, nhấn decompile
    [​IMG]
    Sau khi decompile sẽ có 1 folder “tên file”.apk-decompiled

    Compile
    - Nhấn vào biểu tượng folder, tìm folder “tên file”.apk-decompiled mở file apktool.yml
    [​IMG]

    - Biểu tượng búa từ trắng đen sẽ có màu -> nhấn vào đó
    [​IMG]

    - Đợi 1 tí, trên tab project sẽ tự động xuất hiện 1 file .apk
    [​IMG]

    - Chuột phải file đó chọn sign/export
    [​IMG]

    - Done
    File apk đã edit sẽ theo đường dẫn “tên file”.apk-decompiled/dist

    + Xử lý file .obb: dùng winrar để giải nén, đồng thời phải đọc thêm bài viết này của mình. HERE
    *Lưu ý: giải nén được file nào thì nén lại file đó chứ không phải nén folder chứa file đó.
    2. iOS:
    + Unpack: đổi tên tệp .ipa -> .zip, dùng winrar để giải nén
    + Repack: nén .zip đổi tên tệp .zip -> .ipa
    *Lưu ý: giải nén được file nào thì nén lại file đó chứ không phải nén folder chứa file đó.

    V. Folder Game
    2 vấn đề quan trọng nhất để việt hóa 1 tựa game là text game và font game.
    Text game + font game đều nằm ở folder game ( viết tắt FG )
    PC: FG theo đường dẫn “tên game” / “tên game”_Data , nói chung là chỗ có mấy file sharedassets.
    Android: FG theo đường dẫn assets/bin/Data sau khi decompile apk và giải nén obb.
    iOS: FG theo đường dẫn Payload/”tên game”.app/Data sau khi giải nén ipa.
    VI. Xử lý Text Game
    1. Cơ bản
    - Sử dụng ABE -> open FG -> chọn hết file trong FG ( Ctrl + A )
    *Lưu ý: Nếu máy yếu không chọn hết được thì mình sẽ chọn lần lượt một vài file và lặp lại bước này cho đến hết file trong FG. Ngoài ra, với PC thì text thường trong file resources.assets đến sharedassets3.assets. Chọn luôn file .resS .resource (nếu có) đi kèm như hình.
    [​IMG]

    - Nhấn vào Type để sắp xếp lại thứ tự
    [​IMG]

    - Kéo lên kéo xuống tìm type TextAsset
    - Để chọn nhanh hết textasset, chọn file thuộc type TextAsset đầu tiên -> giữ Ctrl+Shift -> chọn file cuối cùng
    - Nhấn vào Plugins -> chọn export… -> OK -> chọn folder để export

    [​IMG]

    - Chỉnh sửa/ việt hóa file text trong folder đó
    *Lưu ý: chỉ việt hóa những đoạn text, file chứa text trong game, những đoạn/ file khác có thể là code game,…
    - Để import, cũng chọn hết file thuộc type TextAsset -> Plugins -> import… -> chọn folder đã export ở trên
    - Nhấn OK ( ở dưới cùng ) -> YES -> chọn chỗ để lưu những file mới
    - Replace file mới vào FG
    - Done
    2. Text trong dll
    File thuộc type TextAsset không đủ text hoặc không có text trong game. Mình sẽ tìm text trong dll.

    DLL không mã hóa:
    File dll mẫu được sử dụng trong bài viết: Download Here (game: Starbound Drifters)

    - Mở dnSpy.exe -> File -> Open -> chọn file Assembly-CSharp.dll trong FG/Managed

    *Lưu ý: những file dll khác cũng có thể có text.
    - Dùng khung search ở dưới cùng. Chỉnh Search For: Number/String và Selected Files như ảnh
    [​IMG]
    - Gõ từ/đoạn cần tìm vào ô search
    [​IMG]
    - Nhấp đúp vào kết quả tìm được ( nếu nhiều kết quả thì lặp lại những bước từ chỗ này trở đi )
    - Khung Assembly Explorer bên trái sẽ tự động chọn file có từ đó như ảnh
    [​IMG]
    Trong ảnh là file: openingCutscene
    - “Chuột phải” file đó -> Edit Class (C#)…

    - Kéo chuột lên xuống để tìm từ đã search hoặc dùng Ctrl+F search từ đó
    [​IMG]
    - Việt hóa đoạn/câu đó ( Nếu có nhiều câu là text trong game thì việt hóa luôn, như trong hình, ngoài “you’re still alive” còn có câu “ you were laying…”)
    - Compile ( góc dưới bên phải )
    - File -> Save Module -> OK

    *Lưu ý: tool sẽ tự động replace file Assembly-CSharp.dll gốc.

    DLL mã hóa:
    Cách nhận biết: Dùng dnSpy nhưng không thấy gì hoặc mở bằng hxd có phần header không phải là MZÉ.

    File mẫu: Download here (game: Mystic Messenger)

    Trước giờ mình chỉ gặp 1 game duy nhất có dll mã hóa (Mystic Messenger) nhưng lại ở android, để giải mã cần android dưới 6.0 theo bài viết này hoặc dùng phần mềm thứ 3 là GameGuardian theo bài viết này. Vì là game online, ngoài mã hóa dll game còn dùng G-Presto để chặn phần mềm thứ 3 can thiệp và mình đang dùng android 8.1 nên bó tay. Tuy nhiên mình sẽ nêu ý tưởng để xử lý Dll mã hóa, dành cho bạn nào muốn đọc giải trí.
    - Tìm dll đã giải mã:
    PC: chạy game -> mở task manager -> “chuột phải” vào processes game đang chạy -> Create dump file. Mở file sau khi dump bằng HxD -> ( vì chỉ mã hóa phần header nên những phần còn lại sẽ giống nhau ) -> search những phần không phải header
    Android: theo 2 bài viết trên
    iOS: ???
    - Từ dll giải mã và mã hóa tìm hiểu cách thức mã hóa, với PC thì có thể dùng thêm các phần mềm debug như x64dbg. Sau đó viết tool để mã hóa nó lại.


    Phần này là phần nói dễ như ăn bánh, nhưng muốn làm được thì…
    VII. Xử lý Font Game
    1.Cơ bản ( font .ttf/.otf )
    - Cũng dùng ABE như xử lý text cơ bản, tới bước tìm type TextAssets mình sẽ tìm type Font.
    - Chọn hết file thuộc type Font -> Nhấn vào Export Raw -> Chọn folder để export.
    - Với dạng font.dat này sẽ không việt hóa được, nhưng mình sẽ tìm được tên file trong FG chứa font này.
    [​IMG]

    Vd: Với ảnh trên thì có tất cả 6 font, nhìn tên file mình sẽ biết được 5 font ở file sharedassets0 và 1 font ở file unity default resources

    - Sau khi xác định được những file nào chứa font, tắt ABE, mở UnityEX.
    - Open archive -> chọn Files of type là ALL.
    ( nếu có nhiều file chứa font thì phải lặp lại những bước từ chỗ này trở đi )
    [​IMG]

    - Mở file chứa font
    - Nhấn vào type để sắp xếp lại thứ tự tìm type 128 (Font)
    - Chọn những file thuộc type đó -> “chuột phải” -> export selected

    [​IMG]

    - Lúc này trong FG sẽ xuất hiện 1 folder mới là Unity_Assets_Files, mở folder đó lên.
    - Font trong Unity_Assets_Files ở dạng .ttf/.otf -> kiểm tra xem font đã có tiếng việt chưa ( cài vào máy rồi dùng word ) -> nếu chưa, tìm font việt hóa trên mạng hoặc dùng FontLab để việt hóa ( tùy ý thích mỗi người )
    - Xóa font gốc -> đổi tên font việt hóa như font gốc.
    - Trong UnityEX, nhấn vào Import files.
    [​IMG]

    - Tắt UnityEX
    - Done

    VIII. Xử lý Textures Game
    [​IMG]
    Textures Game nôm na là ảnh trong game. Để “việt hóa” ảnh ở trên, bạn dùng phần mềm chỉnh sửa ảnh edit lại. Mình sẽ không hướng dẫn photoshop, các bạn lên mạng tìm nguồn tài liệu nào đó để học cái này.

    Hướng dẫn:
    - Cũng dùng ABE như xử lý text cơ bản -> tới bước tìm type TextAssets mình sẽ tìm type Texture2D
    - Chọn hết file thuộc Texture2D -> Plugins -> Export to .png hoặc .tga -> chọn Folder để export
    - Edit ảnh trong folder đó ( có thể xóa bớt ảnh không cần thiết )
    - Để import, cũng chọn hết file thuộc type Texture2D -> Plugins -> Batch import -> chọn folder đã export ở trên -> OK
    - Nhấn OK ( ở dưới cùng ) -> YES -> chọn chỗ để lưu những file mới
    - Replace file mới vào FG
    - Done

    IX. ???

    X. Q&A

    23/7/2019 – 27/07/2019:
    Q: Mấy file *.split0, *.split1,..... thì làm sao?

    A:
    Những file split là file chia nhỏ từ file gốc.
    Nếu dùng ABE hoặc AssetStudio thì phải chọn hết những file * cùng tên để mở.
    Riêng UnityEx thì chỉ cần chọn 1 file *.split0
    Import, export như bình thường.
    vd:
    sharedassets1.assets.split0,
    ....,
    sharedassets1.assets.split10
    sharedassets1.resS (nếu có )
    sharedassets1.resource ( nếu có )
    Với ABE hoặc AssetStudio, chọn hết những file này để mở.
    Với UnityEx chỉ mở 1 file là sharedassets1.assets.split0

    Lưu ý: Đôi khi dùng tool sẽ sinh ra 1 file temp (file gộp từ những file split) là sharedassets1.assets có dung lượng = những file split nhỏ cộng lại. Nên xóa file này để giảm dung lượng game.

    Hoặc gộp những file split này lại.
    Hướng dẫn:
    - Dùng AS để gộp split -> open folder -> FG hoặc open file -> chọn hết file split.
    - Tắt AS
    - Xóa hết file split, để xóa nhanh search chữ split rồi xóa.
    - Xử lý như bình thường
    - Build/Sign bằng apkstudio
    - Done

    Nếu không gộp được hoặc bị lỗi, hãy thử cách của bạn Hoangluongluat:
    Tool:
    AAPT - Android Asset Packaging Tool
    Hướng dẫn:
    - Chép mấy split ra 1 thư mục riêng
    - Sau đó tool cũng để ở thư mục đó
    - Ở thư mục đó tạo thư mục: assets rồi trong asset là bin trong bin là Data
    assets\bin\Data
    - Dùng unity ex để gộp các file lại
    - Chép file vừa gộp qua thư mục mới
    - Ở thanh địa chỉ gõ cmd
    Nhập code
    aapt remove -f -v tên apk file muốn xóa
    Vd:
    aapt remove -f -v thejusou.apk assets/bin/Data/shareasset.split0 assets/bin/Data/shareasset.spit1....
    Để thêm
    appt add -f -v tên apk file muốn thêm
    Vd:
    aapt add -f -v thejusou assets/bin/Data/shareassets.assets
    - Sign apk lại là xong

    Cái này yêu cầu kiên nhẫn và chuẩn xác. Nhưng lúc dịch sẽ nhàn hơn. Vì chỉ sửa file assets như pc. Chỉ áp dụng cho game chỉ có apk. Không có obb.

    NOTE
    23/07/2019:
    Tut này mình hướng dẫn rất chi tiết, những cập nhật/phần nâng cao sau sẽ khó hơn nên các bạn hãy tập làm quen với những tool này, với các thao tác cơ bản để xử lý file. Bài viết này mình chỉ sử dụng 2 tool chính là AssetBundleExtractor và UnityEX. Giờ bạn hãy thử dùng AssetStudio và mở những file game đó. Vậy là được 3 tool, các bạn thử vọc hết từng tool xem nó làm được gì, các bạn phải biết được công dụng, ưu điểm, khuyết điểm của từng tool và giữ cái đầu lạnh của mình để xác định thời điểm nào, trường hợp nào sử dụng tool gì một cách logic. Bài này mình có thể sử dụng 1 tool duy nhất là AssetBundleExtractor hoặc UnityEX đều được, nhưng, như mình đã nói, tool đã có sẵn thì mình cứ sử dụng, việc các bạn cần làm là xử lý mọi thứ một cách khoa học, logic.
    27/07/2019:
    Với UnityEx bất kỳ file nào sau khi export, muốn import chỉ cần nhấn vào Import files.
    Hãy thử:
    - Dùng xsearch tìm text ( có thể tìm được luôn trong dll ).
    - Dùng UnityEx -> chọn file thuộc type texture2D -> export with convert. ( ảnh .dds )
    - Dùng UnityEx -> chọn file thuộc type TextAsset -> export selected.
    - Dùng AS -> Load folder/load file trong FG -> Asset List -> Filter Type -> Texture2D/Font/TextAsset.


    Nếu bạn không hiểu chỗ nào hoặc có cách làm khác hay hơn (mình sẽ để credit) hãy comment lại ở dưới đây, mình sẽ giải đáp thắc mắc và chỉnh sửa lại bài viết.
    Nếu thích bài viết hãy like để tạo động lực mình hướng dẫn hoàn thành nốt mảng Unity nhé.



    Copy bài không bắt buộc ghi nguồn, các bạn có thể chia sẻ ở đâu tùy thích !
     
    Chỉnh sửa cuối: 27/7/19
    ManhTu, akirakazuo, DaDra and 3 others like this.
  2. Lka

    Lka Con Cháu Sịp Đỏ

    42
    17
    18
    30/10/16
    Nam
    TPHCM
    5/5,
    Vậy là Cờ Lao đã được nghỉ ngơi tịnh dưỡng <(")
     
    _Cloud_ thích bài này.
  3. _Cloud_

    _Cloud_ You're Breathtaking! Kỹ Thuật Viên

    65
    24
    18
    16/8/18
    Nam
    TP.HCM
    Update 1: 27/07/2019
    Xem trong phần update đầu bài.
     
  4. Hakuryuu1996

    Hakuryuu1996 Thành viên mới

    3
    2
    3
    22/1/16
    Nam
    R2 cu xa A TPHCM
    [​IMG]

    Font dùng Texture2D thì làm thế nào hả bác?
     
  5. _Cloud_

    _Cloud_ You're Breathtaking! Kỹ Thuật Viên

    65
    24
    18
    16/8/18
    Nam
    TP.HCM
    Font ảnh là phần khó nhất nên mình sẽ hướng dẫn trong bài cuối cùng.
     
    Hakuryuu1996 thích bài này.
  6. Hakuryuu1996

    Hakuryuu1996 Thành viên mới

    3
    2
    3
    22/1/16
    Nam
    R2 cu xa A TPHCM
    Nhờ bác
     
    _Cloud_ thích bài này.
  7. window8

    window8 Thành viên mới

    8
    1
    3
    29/10/16
    Nam
    gl
    Tuyệt vời quá bác ơi <3
     
    _Cloud_ thích bài này.
  8. DaDra

    DaDra Thành viên mới

    1
    0
    1
    10/7/17
    Nam
    Hau Giang
    Game android mà text không nằm trong các file thuộc type TextAsset mà mình chỉ tìm thấy file global-metadata.dat thì xử lý sao vậy bác.
     
  9. _Cloud_

    _Cloud_ You're Breathtaking! Kỹ Thuật Viên

    65
    24
    18
    16/8/18
    Nam
    TP.HCM
    File .dat thì mình chưa gặp, thử dùng UnityText. Hoặc làm theo bài này. Nếu không được nữa, thì phải nghiên cứu cấu trúc file để viết tool.
     
    Chỉnh sửa cuối: 29/7/19
  10. akirakazuo

    akirakazuo Thành viên mới

    7
    4
    3
    5/6/16
    Nam
    nowhere
    Cho mình hỏi chút là:
    1. Nếu mà phần text nằm trong MonoBehaviour thì sao nhỉ?
    2. Có những game mà mình muốn dịch phần GameUI/Menu của game nhưng mà nó không có trong các file textassets thì nên xử lý như nào?
     
  11. _Cloud_

    _Cloud_ You're Breathtaking! Kỹ Thuật Viên

    65
    24
    18
    16/8/18
    Nam
    TP.HCM
    1. Phần sau mới có
    2. Dùng xsearch tìm text. Phần sau sẽ hướng dẫn. Bạn có thể tự mò trước.
     
  12. ManhTu

    ManhTu Thành viên mới

    2
    0
    1
    4/8/19
    Nam
    Cau Giay,Ha Noi
    [​IMG]

    sao lúc sửa text nó bị như này anh ơi ???
     
  13. _Cloud_

    _Cloud_ You're Breathtaking! Kỹ Thuật Viên

    65
    24
    18
    16/8/18
    Nam
    TP.HCM
    File này không phải là text game. Em tìm file khác đi.
     
  14. ManhTu

    ManhTu Thành viên mới

    2
    0
    1
    4/8/19
    Nam
    Cau Giay,Ha Noi
    tất cả các file textasset sau khi import ra đều bị như này làm em cứ nghĩ bị lỗi <(")
     
  15. Adam1202

    Adam1202 Thành viên mới

    2
    0
    1
    31/7/19
    Nam
    Hà Nội
    Mở ABE ntn bác :v Em tìm trong file không thấy cách nào để mở lên
     
  16. _Cloud_

    _Cloud_ You're Breathtaking! Kỹ Thuật Viên

    65
    24
    18
    16/8/18
    Nam
    TP.HCM
    Tìm file assetsbundleextractor.exe á.
     

Chia sẻ trang này