Khi bạn thay đổi một tệp hình ảnh (texture) trong game UE4, thông thường game sẽ không nhận diện được hoặc hiển thị sai lệch hoàn toàn. Lý do là vì engine đã sử dụng một kỹ thuật gọi là Tiling/Swizzling để tối ưu hóa tốc độ đọc của GPU. Thread trên GBAtemp đã giới thiệu một plugin cho Noesis để giải quyết triệt để vấn đề này.
1. Tại sao cần Plugin Noesis Tiling Texture?
Trong các tệp .uasset của UE4, dữ liệu hình ảnh không được lưu trữ theo dạng pixel thông thường (từ trái qua phải, từ trên xuống dưới). Thay vào đó, nó được sắp xếp theo các khối (tiles) để GPU truy xuất nhanh hơn.
- Vấn đề: Nếu bạn chỉ copy-paste một tấm ảnh PNG bình thường vào, GPU sẽ đọc sai vị trí các pixel, dẫn đến hình ảnh bị nát hoặc lỗi màu.
- Giải pháp: Plugin này sẽ giả lập lại quá trình “sắp xếp” của engine, biến một tấm ảnh bình thường thành định dạng mà engine UE4 của console (PS4/Switch) hiểu được.
2. Quy trình sử dụng Plugin (Cập nhật cho quy trình Modding)
Dựa trên thread GBAtemp, bạn cần thêm bước này vào giữa quy trình chỉnh sửa:
- Export: Dùng UModel xuất texture gốc ra.
- Edit: Dùng Photoshop sửa ảnh và lưu lại dưới dạng PNG (giữ nguyên kích thước gốc).
- Noesis Process (Quan trọng):
- Mở Noesis và nạp plugin
fmt_ue4_tiling.py(hoặc script tương đương). - Sử dụng lệnh Swizzle để chuyển đổi file PNG đã sửa.
- Kết quả: Bạn sẽ nhận được một file ảnh trông rất “rác” và bị chia cắt, nhưng đây mới chính là dữ liệu mà GPU cần.
- Mở Noesis và nạp plugin
- Inject: Đưa file đã swizzle này ngược lại vào tệp
.uassetthông qua các công cụ như Hex Editor hoặc UE4 Cooker.
3. Lưu ý kỹ thuật cho Quản trị viên (chepgame.net)
- Tính tương thích: Plugin này cực kỳ quan trọng đối với các game có phong cách đồ họa Cel-shading (như DBFZ), nơi mà các texture thường có các đường kẻ (line-art) và vùng đổ bóng đặc thù. Nếu không qua bước này, các đường kẻ sẽ bị răng cưa hoặc đứt đoạn.
- Tự động hóa bằng Python: Vì plugin Noesis này bản chất là một script Python, bạn hoàn toàn có thể tích hợp nó vào bộ công cụ tự động hóa trên server của mình. Khi người dùng upload một file ảnh, hệ thống có thể tự động chạy script Noesis để swizzle và trả về file
.pakhoàn chỉnh. - Hỗ trợ đa nền tảng: Kỹ thuật này áp dụng được cho cả PS4 và Nintendo Switch (vốn là hai nền tảng chủ lực trên website của bạn).
4. Từ khóa tối ưu SEO bổ sung
Để bài viết thu hút thêm các “vọc sĩ” quốc tế và trong nước, hãy bổ sung các từ khóa:
- Noesis UE4 Tiling Plugin
- Fix broken textures UE4 Mod
- UE4 Swizzle tutorial
- Mod Dragon Ball FighterZ PS4 technical guide
Việc nắm vững kỹ thuật Noesis Tiling sẽ giúp các bản Mod trên chepgame.net có chất lượng hiển thị vượt trội, không khác gì hàng chính hãng từ nhà phát triển. Chúc bạn thành công với những dự án modding sắp tới!
Some of you probably remember Noesis made by Rich Whitehouse – big tool for extracting data from many games. It turns out that it has hidden function for tiling UE4 games textures.
You need Unreal Engine 4.19!
Spoiler: Changes in code
Restrictions:
Spoiler: Informations
Both functions are working only with *.uasset (+ *.uexp & *.ubulk, but it’s loaded by *.uasset file only), so you need installed Unreal Engine 4.19 to make textures.
Making textures in Unreal Engine 4 will need tutorial for people who are too scared to learn by mistakes.
F.e. Octopath Traveler logo made by me.
When it’s untiled
When it’s tiled
When putted to Octopath Traveler:
You can download tiled image (make sure that this is 55,4 kB PNG, not recompressed image) and make from this cooked texture in Unreal Engine for Octopath Traveler and swap files with
Code:
\Content\UI\Title\Texture\UiTX_Title_logo_00.uexp
\Content\UI\Title\Texture\UiTX_Title_logo_00.uassetHow to get tiled image:
Copy assets from Cooked folder to noesis folder. Drop *.uasset file ready for tiling to “Swizzle.cmd”. It will create new png that needs to be cooked again in UE4 (better with version that your game uses) with the same settings. And that’s it.
How to untile texture:
Copy assets to noesis folder. Drop *.uasset file ready for untiling to “Unswizzle.cmd”. It will create PNG with the same name.
Big thanks for making this tool by Rich Whitehouse. You can download whole tool here (without enabled tiling function and with broken untiling function for UE4 textures):
https://www.richwhitehouse.com/index.php?content=inc_projects.php&showproject=91
Code:
#10.04.2019: added v2 with repaired untiling textures and tiling textures with dimensions different than multiplication of 128 (still not recommended for some files).
//added Unswizzle-nop.bat for assets made by swizzle.bat without regular resolution (dimensions are not multiplications of 128 with padding)
#27.04.2019: added v3 with support for DXT5 textures.
#09.06.2019: added v4 with updated support for DXT5 textures (it was not working correctly for textures with height <= 256)