Material Atlas (Không dùng plugin)
Hướng dẫn này giải thích cách gộp material atlas bằng tay. Không cần plugin nào.
Trước khi bắt đầu, có một hướng dẫn khác về chủ đề này làm ra kết quả giống hệt mà lại nhanh hơn nhờ plugin ở đây. Đề phòng bạn bỏ lỡ.
Nhưng nếu:
- Plugin bị hỏng hoặc gặp lỗi
- Bạn lười cập nhật Blender lên bản 5.xxx (giống mình đây lol)
- Bạn là kiểu người bài trừ plugin.
Vậy thì đọc tiếp thôi.
Đầu tiên, material atlas là gì? Lý tưởng nhất là ta muốn gộp toàn bộ texture của model 3D vào một ảnh duy nhất để nhập vào LMHT. Đôi khi lúc tải model về, phần material view của nó trông thế này:

Bạn thấy đấy, danh sách material dài dằng dặc và mỗi cái gắn với một ảnh chứa một phần texture của model. Ta sẽ rút gọn nó xuống còn đúng 1.
Muốn vậy, ta làm theo các bước sau:
- UV unwrap model vào một ảnh trống mới bằng một UV map mới.
- Thiết lập baking
- Bake texture vào ảnh trống của ta.
- Chỉnh sửa cuối và dọn dẹp
Bước 1
Đây có lẽ là phần khó nhất, nên làm xong bước này coi như bạn đã hoàn thành 80%.
Trong bài này ta sẽ bỏ qua phần “UV đẹp” và để Blender tự làm hết cho ta. Nhưng nhớ rằng luôn tốt hơn nếu bạn tự tạo seam cho model và unwrap chúng cẩn thận.
Trước tiên, tạo một UV map mới để chứa các thay đổi. Muốn vậy, qua panel bên phải trong Blender và nhấn vào hình tam giác xanh lá như hình:

Bạn đặt tên UV map mới tùy thích. Giờ bạn sẽ có thứ trông như thế này

Để ý rằng nó được tô xanh nhưng biểu tượng camera lại đang tắt, khác với UVMap mặc định vốn bật sẵn, chỗ này quan trọng. Nó bảo Blender “Hiện UV của UVMap khi render, nhưng mọi thao tác hay chỉnh sửa được lưu vào cái đang tô xanh”.
Tiếp theo là qua tab UV Editing

Panel bên trái là nơi bạn chỉnh UV. Theo mặc định, một ảnh ngẫu nhiên trong số các material của model sẽ được chọn, nhưng cái ta muốn là tạo một ảnh mới từ đầu. Mình thường đặt ảnh cỡ 2K → 2048 x 2048.

Sau khi tạo ảnh, chắc chắn rằng bạn đang thực sự chỉnh sửa đúng ảnh đó và cũng đang dùng UV map mới vừa tạo:

Giờ ta phải sắp xếp lại UV cho gọn gàng. Ngay lúc này nếu bạn chọn một phần của model, bạn sẽ thấy một mớ hỗn độn:

Đừng lo, quá trình này gần như tự động.
Chọn toàn bộ model 3D bằng phím “a”, rồi nhấn “u” và chọn “Smart UV Project”. Chép y hệt thiết lập của mình, hoặc chỉnh theo ý bạn nếu cần.

Giờ bạn sẽ có thứ trông như thế này

Nhìn thì có vẻ “ổn” nhưng bạn phải cẩn thận, vì UV unwrap tự động không hoàn hảo và có thể có vài chỗ chồng lấn.
Ví dụ, nếu phóng to góc dưới bên trái, ta thấy nó chưa được unwrap đẹp cho lắm

Sửa thế nào? Dễ thôi. Trước tiên, chọn phần bị lỗi. Muốn vậy, bạn cần bật cái biểu tượng nhỏ ở góc trên bên trái của ảnh dưới. Cũng nhớ chuyển sang chế độ “face selection” (biểu tượng có gạch chân)

Giờ mọi UV island sẽ hiện ở bên trái. Bạn qua vùng có vấn đề, di chuột lên một face ở đó rồi nhấn L để chỉ chọn island đó. Bạn sẽ thấy nó cũng sáng lên trên model 3D. Ta unwrap riêng cái này thôi: sau khi chọn nó, nhấn U nhưng lần này chọn “Unwrap minimum stretch”.

Ảnh 12. Kết quả unwrap minimum stretch của vùng đã chọn
Bạn có thể chỉnh cỡ bằng tay cho vừa các khoảng trống trong ảnh, hoặc để Blender làm hộ! Với cách thứ hai, nhấn “A” lần nữa để chọn lại tất cả. Rồi vào menu UV và chọn pack islands

Cố dùng cùng giá trị spacing như trong ảnh 8

UV của bạn giờ đã sẵn sàng. Qua phần baking thôi.
Bước 2
Baking bảo Blender chuyển một số phần trong cách model 3D đang hiển thị sang một nơi khác, thường là một ảnh texture.
Với bước này ta dùng tab shading từ menu tab ở đầu cửa sổ Blender.
Ở bên trái, nhớ mở ảnh “one_texture” ta tạo lúc nãy, giờ nó vẫn còn màu đen.

Giờ đến phần nhàm chán. Qua panel bên phải, phần material view, chọn cái đầu tiên. Rồi trong node panel (các ô ngay dưới model 3D), nhấn F3 và gõ “Image texture”

Giờ chọn ảnh “one_texture” của ta từ biểu tượng “picture”. Bạn sẽ có thứ trông như thế này

Nhân tiện, mình thích đổi color space sang sRGB, phần còn lại cứ để nguyên.
Để ý thấy có viền sáng trắng quanh ô không? Nghĩa là nó đang được chọn, chỗ này cũng quan trọng cho việc bake.
Xong rồi thì nhấn ctrl+c để chép node, rồi lần lượt qua từng material còn lại trong danh sách bên phải và nhấn ctrl+v để dán vào.
Nếu làm đúng, giờ bạn sẽ có một ô giống như Ảnh 17 cho mỗi material. Nhớ chọn hết tất cả chúng.
Bước 3
Qua tab render ở panel bên phải

Đổi render engine từ EEVEE sang Cycles, vì EEVEE không hỗ trợ baking.
Vào submenu “Bake” ở đó và chọn các thiết lập sau:

Diffuse map bake màu của texture. Ta tắt direct và indirect vì không muốn ánh sáng xen vào.
Trước khi nhấn nút “Bake”, chắc chắn những điều này- UV map đang chọn là cái bạn mới tạo.
- Có một node image texture mới đang chọn cho mỗi material.
- Model 3D của bạn cũng đang được chọn

Sẵn sàng rồi thì nhấn bake.
Nếu bạn làm đúng theo hướng dẫn, giờ bạn sẽ có thứ trông như thế này

Lưu ảnh về máy nếu không bạn sẽ mất nó.

Bước 4
Đến lúc dọn dẹp và thử kết quả.
Quay lại giao diện layout (ở thanh menu trên cùng). Model 3D của bạn giờ trông đã ổn, ta phá nó một chút nào. Trước tiên, tạo một material mới để chứa texture mới của ta.

Đặt tên cho nó, ví dụ “one_texture”, rồi chuyển sang layout shading và nối các node như trong ảnh dưới.

Quay lại tab layout và xóa hết material trừ cái ta vừa tạo. Bạn sẽ có một mớ hỗn độn như thế này

Còn nhớ menu UV map ở ảnh 2 chứ? Đổi biểu tượng camera sao cho UV map mới của bạn là cái đang bật, rồi xem phép màu diễn ra.
Giờ đến bước cuối, xóa “UVMap” cũ và đổi tên cái mới thành đúng tên “UVMap”. Mình không chắc lắm nhưng đọc đâu đó thấy nói tên UVMap quan trọng để skin chạy được trong LMHT.
