Người gõ Unity Assets Bundle Extractor thường ở một trong hai chỗ. Hoặc bạn đang làm game bằng Unity và muốn nhìn vào gói tài nguyên do chính mình dựng ra. Hoặc bạn muốn mở gói của một game đã phát hành. Hai việc đó dùng chung một cái tên nhưng khác nhau cả về công cụ nên dùng lẫn về ranh giới pháp lý.
Tóm tắt. Bản UABE gốc đã bị chính tác giả đóng kho từ cuối năm 2023, kèm dòng ghi thẳng là không còn được hỗ trợ. Phần lớn bài hướng dẫn tiếng Việt vẫn chỉ về đó. Bản đang được cập nhật là UABEA, và tác giả đang viết lại thành UABEANext. Chính tác giả mô tả đây là công cụ nghiên cứu và làm mod, không phải công cụ rút tài nguyên. Với gói của chính bạn, Unity có ba đường chính thống nhìn được vào bên trong mà không cần công cụ ngoài. Số liệu kho mã kiểm tháng 9/2026.
Unity Assets Bundle Extractor là gì, và AssetBundle là gì
Muốn hiểu công cụ thì phải hiểu thứ nó mở ra trước. Tài liệu của Unity định nghĩa AssetBundle là một tệp lưu trữ dùng để gom các tài nguyên lại với nhau. Mục đích là tạo nội dung tải thêm, hoặc giảm dung lượng cài đặt ban đầu của ứng dụng.
Bên trong một AssetBundle có hai loại tệp. Serialized file chứa các đối tượng Unity đã được chuyển sang dạng nhị phân, đúng định dạng mà bản build dùng. Resource file chứa những khối dữ liệu thô như dữ liệu ảnh và âm thanh, tách riêng ra để máy nạp được bằng nhiều luồng.
Gói này còn nén được bằng LZMA hoặc LZ4, và nó gắn với nền tảng. Unity dựng dữ liệu theo BuildTarget bạn đặt, nên gói dựng cho iOS không dùng lại được trên Android. Vì tất cả đã thành nhị phân, mở bằng trình quản lý tệp thông thường chỉ thấy một khối dữ liệu vô nghĩa. Đó là lý do tồn tại các công cụ đọc gói, và UABE là cái nổi tiếng nhất trong số đó.
Hình 1. Cấu trúc gói theo tài liệu chính thức của Unity. Hai loại tệp bên trong phục vụ hai kiểu nạp khác nhau.
Bản nào còn sống: chỗ hầu hết bài hướng dẫn nói sai
Đây là điểm đáng giá nhất của bài này. Gõ tên công cụ ra thì kết quả đầu bảng phần lớn dẫn về kho mã gốc, tên SeriousCache/UABE. Kho đó hiện đã bị khóa ở chế độ chỉ đọc. Dòng mô tả ngay trên kho ghi rõ công cụ không còn được hỗ trợ và khuyên chuyển sang UABEA. Lần đẩy mã cuối cùng là ngày 31/12/2023.
Bản đang được cập nhật tên là UABEA, do người dùng nesrak1 viết lại bằng C#. Kho dùng giấy phép MIT. Bản phát hành đánh số mới nhất là v8, ngày 3/11/2024, còn kho thì vẫn có thay đổi tới tháng 5/2026.
Tác giả đang viết lại lần nữa thành UABEANext. Dòng mô tả của kho này ghi đúng một câu đáng chú ý: đây là công cụ nghiên cứu và làm mod cho SerializedFile và Asset Bundle. Kho đẩy mã tới tháng 7/2026, cũng giấy phép MIT, và chưa có bản phát hành đánh số nào, chỉ có bản dựng hằng đêm.
| Kho mã | Tình trạng | Ghi chú |
|---|---|---|
| SeriousCache/UABE | Đã khóa, chỉ đọc. Đẩy mã cuối 31/12/2023 | Chính kho ghi không còn được hỗ trợ và chỉ sang UABEA |
| nesrak1/UABEA | Bản v8 ngày 3/11/2024, kho còn thay đổi tới tháng 5/2026 | Viết lại bằng C#, giấy phép MIT |
| nesrak1/UABEANext | Đẩy mã tới tháng 7/2026, chưa có bản đánh số | Bản viết lại, mới có bản dựng hằng đêm |
Chỉ tải từ kho mã của chính tác giả. Loại công cụ này hay bị đóng gói lại rồi phát tán trên các trang chia sẻ tệp và diễn đàn game. Bản đóng gói lại là bản không ai kiểm được, trong khi nó chạy với quyền đọc ghi lên tệp trong máy bạn. Vào thẳng trang phát hành trên kho mã của tác giả, và đối chiếu tên kho, đừng lấy theo đường dẫn ai đó dán lại.
Chính tác giả nói đây không phải công cụ để rút tài nguyên
Tài liệu readme của UABEA có một câu mà gần như không bài viết tiếng Việt nào nhắc tới. Tác giả viết rằng ông phát triển UABEA thiên về một công cụ làm mod và nghiên cứu hơn là một công cụ trích xuất. Ngay sau đó ông chỉ người cần trích xuất sang hai công cụ khác là AssetRipper và AssetStudio.
Câu đó đáng đọc kỹ vì hai lý do. Thứ nhất, nhiều người tải công cụ này về đúng cho việc mà tác giả nói nó không nhắm tới. Thứ hai, nó cho thấy hai nhu cầu khác hẳn nhau đang bị gộp làm một. Xem và sửa cấu trúc một gói là chuyện của người dựng gói. Moi hết tài sản trong gói ra thành tệp rời là chuyện khác.
Đường đi của các công cụ nhóm sau cũng nói lên điều đó. AssetStudio, cái tên hay được nhắc cùng Unity Assets Bundle Extractor, đã bị chính tác giả đóng kho ở chế độ chỉ đọc từ tháng 1/2023. Dự án nay sống tiếp bằng nhánh rẽ của người khác.
Ranh giới: tài sản trong game là tác phẩm có chủ
Phần này cần nói rõ vì nó quyết định bạn được làm gì. Luật Sở hữu trí tuệ Việt Nam xếp chương trình máy tính vào nhóm tác phẩm được bảo hộ quyền tác giả, cùng nhóm với tác phẩm văn học. Ảnh, mô hình, âm thanh nằm trong game cũng là tác phẩm riêng và có chủ riêng.
Điều 25 của luật liệt kê các trường hợp ngoại lệ, trong đó có việc tự sao chép một bản để nghiên cứu khoa học hoặc học tập của cá nhân. Nhiều người lấy đúng câu này ra để biện minh. Nhưng một khoản khác của chính điều đó ghi rằng các ngoại lệ vừa liệt kê không áp dụng cho tác phẩm kiến trúc, tác phẩm tạo hình và chương trình máy tính. Nghĩa là lý do học tập cá nhân không che được cho việc sao chép phần mềm.
Ngoài luật còn một tầng nữa là điều khoản sử dụng của từng game. Rất nhiều hợp đồng người dùng cấm thẳng việc dịch ngược, tháo gỡ hoặc sửa đổi tệp của trò chơi. Tầng này không cần tòa án mới có hiệu lực: nhà phát hành khóa tài khoản là xong. Bài này dẫn lại điều luật và điều khoản đang có hiệu lực, không phải tư vấn pháp lý.
Hình 2. Cùng một công cụ, ba mục đích, ba mức hệ quả. Ranh giới nằm ở chỗ tài sản thuộc về ai, không nằm ở phần mềm bạn dùng.
Cách chính thống để xem gói tài nguyên của chính bạn
Nếu bạn là người dựng gói thì không cần công cụ ngoài. Unity có ba đường, và mỗi đường trả lời một câu hỏi khác nhau của người làm game.
Đường thứ nhất là báo cáo build layout của gói Addressables. Mỗi lần dựng nội dung Addressables, hệ thống tự sinh báo cáo này nếu bạn bật nó trong mục Addressables của cửa sổ Preferences. Tệp nằm trong thư mục dự án, đường dẫn Library/com.unity.addressables/buildlayout. Báo cáo cho biết Addressables đã đóng tài sản nào vào bundle nào. Quan trọng hơn, nó liệt kê cả những tài sản không phải Addressable bị kéo theo vào gói do phụ thuộc. Tài liệu cũng nói thẳng là bật báo cáo thì thời gian dựng lâu hơn.
Đường thứ hai là AssetBundle Browser. Đây là công cụ cho trình soạn thảo, cho phép xem nội dung của các bundle đã dựng xong, thêm bằng nút Add File hoặc Add Folder. Cần biết một điều trước khi dùng: Unity ghi rõ đây là tiện ích không được hỗ trợ chính thức, và khuyên dự án mới nên dùng Addressables thay thế.
Đường thứ ba là UnityDataTools, một công cụ dòng lệnh của Unity Technologies để phân tích tệp nhị phân của Unity. Lệnh analyze sinh ra cơ sở dữ liệu SQLite để bạn truy vấn. Lệnh dump đổ ra văn bản đọc được. Lệnh find-refs truy chuỗi tham chiếu giữa các đối tượng. Lệnh archive mở nội dung tệp lưu trữ, còn serialized-file cho xem cấu trúc bên trong. Kho cũng ghi rõ dự án được cung cấp nguyên trạng và không được Unity hỗ trợ chính thức.
| Đường chính thống | Trả lời câu hỏi gì | Giới hạn |
|---|---|---|
| Báo cáo build layout của Addressables | Tài sản nào nằm trong bundle nào, cái gì bị kéo theo do phụ thuộc | Chỉ có với dự án dùng Addressables. Bật thì dựng lâu hơn |
| AssetBundle Browser | Xem nội dung bundle đã dựng, ngay trong trình soạn thảo | Unity ghi là tiện ích không được hỗ trợ chính thức |
| UnityDataTools | Phân tích sâu bằng dòng lệnh, xuất ra SQLite hoặc văn bản | Cũng cung cấp nguyên trạng, không được hỗ trợ chính thức |
Ba đường này giải quyết đúng câu hỏi mà lập trình viên thật sự gặp. Vì sao gói phình to hơn dự tính. Tài sản nào bị nhân bản sang nhiều gói. Vì sao đổi một tệp nhỏ mà cả gói phải tải lại. Đó cũng là lý do một người làm game hiếm khi cần tới Unity Assets Bundle Extractor cho dự án của chính mình.
Lỗi thường gặp
| Việc hay làm | Kết quả | Vì sao |
|---|---|---|
| Tải bản đầu bảng kết quả tìm kiếm | Nhận về bản đã ngừng phát triển | Kho gốc đã bị khóa chỉ đọc, lần đẩy mã cuối vào cuối năm 2023, và chính nó chỉ sang bản mới |
| Lấy tệp cài từ trang chia sẻ hoặc diễn đàn | Không ai bảo đảm được nội dung tệp | Công cụ chạy với quyền đọc ghi tệp. Chỉ nên lấy ở kho mã của tác giả |
| Dùng công cụ này để moi hết tài sản ra tệp rời | Sai dụng cụ | Tác giả ghi rõ đây là công cụ nghiên cứu và làm mod, không phải công cụ trích xuất |
| Viện lý do học tập cá nhân để sao chép | Không nằm trong diện ngoại lệ | Điều 25 loại chương trình máy tính ra khỏi các ngoại lệ mà nó liệt kê |
| Mở gói game để lấy ảnh làm sản phẩm riêng | Vi phạm quyền tác giả | Ảnh và mô hình trong game là tác phẩm có chủ, không phải tài nguyên tự do |
| Sửa gói rồi không giữ bản gốc | Hỏng thì không quay lại được | Ghi đè lên tệp gói là thao tác không hoàn tác. Luôn sao lưu trước |
| Mang gói dựng cho một nền tảng sang nền tảng khác | Không nạp được | Unity dựng dữ liệu theo BuildTarget, gói gắn với nền tảng |
XEM THÊM:
Câu hỏi thường gặp
Unity Assets Bundle Extractor có miễn phí và an toàn không
Mã nguồn của UABEA và UABEANext đều mở, dùng giấy phép MIT, nên phần mã ai cũng đọc được. Rủi ro nằm ở khâu lấy tệp chứ không ở giấy phép. Bản dựng sẵn trôi nổi trên các trang chia sẻ thì không đối chiếu được với mã gốc, nên chỉ lấy ở trang phát hành trong kho mã của tác giả.
Tôi làm game bằng Unity thì có nên dùng công cụ này không
Thường là không cần. Với gói do chính bạn dựng, báo cáo build layout của Addressables đã trả lời gần hết các câu hỏi về dung lượng và phụ thuộc. Cần đào sâu hơn thì dùng UnityDataTools. Công cụ ngoài chỉ hợp khi bạn phải đọc một gói mà không còn dự án gốc trong tay.
Làm bản dịch cộng đồng cho một game thì có hợp lệ không
Không có câu trả lời chung, vì nó phụ thuộc vào từng game. Một số nhà phát hành mở hẳn cửa cho mod, có công cụ riêng và có điều khoản cho phép. Số khác cấm thẳng việc mở hay sửa tệp trò chơi. Đọc điều khoản sử dụng của đúng game đó trước, và nếu có kênh liên hệ thì hỏi nhà phát hành. Bài này không thay thế ý kiến của luật sư.
Vì sao mở tệp gói bằng phần mềm giải nén thông thường lại không ra gì
Vì AssetBundle không phải tệp nén kiểu ZIP có cây thư mục bên trong. Nó là tệp lưu trữ riêng của Unity, gồm serialized file và resource file, có thể nén bằng LZMA hoặc LZ4. Muốn thấy từng tài nguyên thì phải có công cụ hiểu được định dạng đó, chứ không phải công cụ giải nén thông thường.

