Hướng Dẫn Swizzle & Unswizzle Texture UE4 Bằng Noesis Cho Nintendo Switch

Nếu bạn từng mod game dùng Unreal Engine 4 trên Nintendo Switch, chắc chắn sẽ gặp vấn đề texture bị “xáo trộn” (tiled/swizzled). Một công cụ cực kỳ hữu ích cho việc này là Noesis của Rich Whitehouse.

Điều thú vị là Noesis có một chức năng ẩn hỗ trợ tile và untile texture UE4, đặc biệt hữu ích cho các game Switch như Octopath Traveler.

Trong bài viết này, mình sẽ hướng dẫn đầy đủ cách sử dụng Noesis để:

  • Swizzle texture UE4
  • Unswizzle texture UE4
  • Cook lại texture bằng Unreal Engine 4.19
  • Fix lỗi texture DXT5
  • Mod texture cho game Nintendo Switch

Noesis UE4 Texture Tool Là Gì?

Noesis là công cụ chuyên dùng để:

  • Extract model
  • Texture
  • Animation
  • Asset game

Ngoài các tính năng phổ biến, Noesis còn hỗ trợ xử lý texture tiled của Unreal Engine 4 trên Nintendo Switch.

Các texture này thường được:

  • Swizzle
  • Tile
  • Block Linear

để tối ưu VRAM và tốc độ đọc dữ liệu trên Switch GPU.


Yêu Cầu Trước Khi Thực Hiện

Bạn cần:

  • Unreal Engine 4.19
  • Noesis đã patch plugin UE4
  • File:
    • .uasset
    • .uexp
    • .ubulk

Lưu ý:

  • Chỉ cần mở .uasset
  • Các file còn lại sẽ tự load

Chỉnh Sửa Plugin UE4 Trong Noesis

File cần sửa:

plugins\python\fmt_ue4.py

Thêm Function Swizzle

Thêm:

-ue4texungob

Function này hoạt động tương tự:

-ue4texgob

Nhưng dùng:

tile_blocklineargob

thay cho:

untile_blocklineargob

Fix Lỗi Untile Texture

Trong function:

def ue4UntileTexture

Đổi:

heightInBlocks = (height + (blockHeight - 1)) // blockHeight

thành:

heightInBlocks = (height + 4 + (blockHeight - 1)) // blockHeight

Cách này giúp sửa lỗi texture UE4 bị lệch block khi unswizzle.


Fix Texture DXT5 Cho UE4 Switch

Trong function:

def ue4ConvertTextureData

thay đoạn:

elif pixelFormat == "PF_DXT5":
textureData = ue4UntileTexture(asset, width, height, 4, 4, 16, textureData, 8)

bằng:

elif pixelFormat == "PF_DXT5":
if height <= 128:
textureData = ue4UntileTexture(asset, width, height, 4, 4, 16, textureData, 8)
elif 128 < height <= 256:
textureData = ue4UntileTexture(asset, width, height, 2, 2, 8, textureData, 8)
elif height > 256:
textureData = ue4UntileTexture(asset, width, height, 1, 1, 4, textureData, 8)

Fix này giúp:

  • Texture text hiển thị đúng
  • Không bị lỗi block
  • Hỗ trợ DXT5 tốt hơn

Kích Thước Texture Khuyến Nghị

Để tránh lỗi tile texture UE4:

Nên dùng:

  • Bội số của 16
  • Tốt nhất là bội số của 128

Ví dụ:

SaiĐúng
499×258512×272
300×150320×160

Không nên:

  • Texture nhỏ hơn 64×64

Thiết Lập Cook Texture Trong Unreal Engine 4

Thiết lập tốt nhất khi import texture:

Compression Settings

Chọn:

  • UserInterface2D (RGBA)

hoặc:

  • Default (DXT1/5)

Texture Group

UI

sRGB

Unchecked

Mip Gen Settings

NoMipMaps

Cách Swizzle Texture UE4

Bước 1

Copy file từ thư mục:

Cooked

vào thư mục Noesis.

Bước 2

Kéo file:

.uasset

vào:

Swizzle.cmd

Bước 3

Noesis sẽ tạo PNG tiled.

Bước 4

Cook lại texture bằng UE4.


Cách Unswizzle Texture UE4

Bước 1

Copy asset vào thư mục Noesis.

Bước 2

Kéo:

.uasset

vào:

Unswizzle.cmd

Bước 3

PNG đã untile sẽ được xuất ra.


Cách Kiểm Tra Texture Tile Có Đúng Không

Nếu texture bị lỗi:

  • thử Unswizzle-nop.bat
  • đổi kích thước texture
  • dùng texture có padding

Một số dimension sẽ bị lỗi do chính Noesis.


Ví Dụ Mod Logo Octopath Traveler

Bạn có thể mod logo game Octopath Traveler bằng cách thay:

\Content\UI\Title\Texture\UiTX_Title_logo_00.uexp
\Content\UI\Title\Texture\UiTX_Title_logo_00.uasset

Sau khi cook lại texture tiled đúng chuẩn Switch, logo sẽ hiển thị chính xác trong game.


Tổng Kết

Việc swizzle và unswizzle texture UE4 cho Nintendo Switch trước đây khá khó khăn, nhưng nhờ Noesis và các patch trong fmt_ue4.py, việc mod texture đã dễ hơn rất nhiều.

Công cụ này đặc biệt hữu ích cho:

  • Mod texture game UE4
  • Việt hóa game Switch
  • Thay UI
  • Mod logo
  • Chỉnh sửa texture DXT5

Nếu bạn thường xuyên mod game Unreal Engine 4 trên Switch, đây gần như là công cụ bắt buộc phải có.

Leave a Comment

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

0
    0
    Tạo wiki game yêu thích
    Giỏ game trốngTrở lại trang
    Scroll to Top