Dự án 6: Tileset hầm ngục 16 × 16 (8 × 8 ô)
Vẽ trọn một tileset hầm ngục nhìn từ trên xuống gồm 64 ô 16 × 16 trên ảnh 128 × 128 px – mặt trên tường với cạnh và góc, mặt tường gạch, đuốc, 8 biến thể sàn, cầu thang, bẫy, nước và vật trang trí – rồi ghép màn chơi bằng Tilemap và Rule Tile trong Unity 6.
Photoshop hiển thị tiếng Anh. Từ có gạch chân chấm là thuật ngữ trên giao diện — chạm để xem nghĩa, hoặc tra Từ điển Anh–Việt.
Tải về rồi mở bằng Photoshop: (⌘ Cmd+O).
Một tileset là bộ "viên gạch" nhỏ cùng kích thước mà nhà thiết kế màn chơi dùng để lát nên cả thế giới. Với góc nhìn 3/4 từ trên xuống (kiểu Zelda cổ điển), một bức tường gồm hai phần: mặt trên (đỉnh tường nhìn từ trên) và mặt tường (gạch nhìn chính diện). Bài khó nhất ở tileset không phải vẽ đẹp từng ô mà là làm cho mọi ô ghép liền với ô bên cạnh: sàn lặp không thấy đường nối, cạnh tường gặp góc tường khớp từng pixel. Dự án này cho bạn một bộ đủ dùng để làm cả một tầng hầm ngục.
Hình mẫu
Thời gian ước tính: khoảng 150 phút – hãy chia 2–3 buổi. Trình tự trong hình là trình tự nên vẽ: sàn trước (dùng nhiều nhất), rồi mặt tường, mặt trên tường, các ô chuyển tiếp, cuối cùng là đồ trang trí.
Chuẩn bị
- Canvas: 128 × 128 px (8 × 8 ô 16 × 16), Resolution (Độ phân giải) 72, RGB Color, Background Contents: Transparent. Cạnh 128 là lũy thừa của 2 – GPU xử lý texture này hiệu quả nhất.
- Công cụ chính: Pencil (Bút chì) Tool 1 px (⇧ Shift+B), Rectangular Marquee (Khung chọn) Fixed Size 16 × 16, Paint Bucket (Thùng sơn) Tolerance 0 bỏ Anti-alias (Khử răng cưa), để kiểm tra lặp, Magic Wand (Đũa thần) Tolerance 0 bỏ Contiguous để thay màu hàng loạt.
- Phóng to không mờ: Image Interpolation Nearest Neighbor (Điểm lân cận), , Grid: Gridline Every 16 Pixels, Subdivisions 16.
- Thiết bị: tileset gồm nhiều đường thẳng, gạch, viền – chuột cực kỳ phù hợp: bấm – giữ ⇧ Shift – bấm để kẻ thẳng. Bút Wacom, XP-Pen, Huion hay iPad + Apple Pencil hữu ích khi chấm rêu và vết nứt, nhớ tắt lực nhấn.
- File mẫu: "Lưới 8 × 8 ô 16 px" đặt trên cùng; bản 400% có tên từng hàng để bạn in ra và phác bằng bút chì trước.
| Màu | Mã hex | Dùng cho |
|---|---|---|
#14121c | Hố tối, khe, viền vật | |
#2b2838 · #3d3a55 · #57536e · #7a7690 · #a3a0b8 | Đá 5 tông: mạch sàn, mặt trên tường, sàn, mép sáng, xương | |
#3a2630 · #5c3a3a · #8a5a48 · #b07a5a | Gạch 4 tông: vữa, đáy viên gạch, thân gạch, mép trên viên gạch (cũng dùng cho gỗ) | |
#2f4a3a · #4f7a4a | Rêu | |
#ff7a2a · #ffd84a | Lửa đuốc, vàng, khóa rương | |
#2c3f7a · #3f74c0 | Nước |
Các bước
- Tạo file và sơ đồ: ⌘ Cmd+N 128 × 128 px, Transparent, đặt lưới và file mẫu. Layer Plan: tô mỗi hàng một màu theo loại ô (2 hàng mặt trên tường, 2 hàng mặt tường, 1 hàng sàn, 1 hàng bóng – cầu thang, 1 hàng nước – bẫy – thảm, 1 hàng vật trang trí). Sơ đồ giúp bạn không vẽ thiếu ô nào.
- Ô sàn gốc: layer Tiles, ô hàng 5 cột 1. Tô
#57536e, kẻ mạch vữa#2b2838chia thành các phiến đá so le: chỉ kẻ mạch ở mép phải và mép dưới của ô (x = 15, y = 15), không kẻ ở mép trái và trên – khi lát cạnh nhau, mạch của ô này thành mép của ô kia, không bị dày gấp đôi. - Kiểm tra lặp: sao chép ô sàn ra file mới 16 × 16, Horizontal 8, Vertical 8, chọn Wrap Around. Đường nối giữa ảnh phải liền mạch. Thêm mép sáng
#7a76901 pixel ở cạnh trên mỗi phiến và 2–3 đốm đá – đốm nằm xa mép để không lộ khi lặp. - 8 biến thể sàn: nhân ô gốc ra 8 ô hàng 5 (⌘ Cmd+C, ⌘ Cmd+⇧ Shift+V, dời đúng 16 px). Mỗi bản sửa một chút: vết nứt, sỏi, rêu, vũng nước, xương, nứt lớn, phiến tối. Giữ nguyên mạch vữa ở mép để mọi biến thể ghép lẫn với nhau.
- Mặt tường gạch: hàng 3, ô 1. Viên gạch cao 4 px (3 px gạch + 1 px vữa
#3a2630), so le nửa viên mỗi hàng. Mỗi viên: hàng trên#b07a5a(ánh sáng từ trên), thân#8a5a48, hàng đáy#5c3a3a. Mép trái – phải của ô phải khớp: viên gạch bị cắt ở mép phải tiếp tục ở mép trái. - Biến thể tường: rêu bám chân tường (cụm
#2f4a3a/#4f7a4aở 4 hàng dưới), tường nứt, tường có song sắt (ô#14121cvới 4 thanh#57536e), cánh cửa gỗ có đai sắt và tay nắm#ffd84a, hai ô đầu tường có cột đá ở mép trái / mép phải. - Đuốc 3 frame: ba ô tường liền nhau có giá đuốc giống hệt, chỉ khác ngọn lửa: lửa cao – thấp – nghiêng, lõi
#ffd84a, viền lửa#ff7a2a, thêm 1–2 tia lửa lệch vị trí. Unity sẽ phát ba ô này thành một ô động. - Mặt trên tường (hàng 1–2): nền
#3d3a55với vài vệt#57536e. Ô có cạnh hở phía trên hoặc trái: viền ngoài#14121cvà mép sáng#7a7690bên trong; cạnh hở phía dưới hoặc phải: mép tối#2b2838. Vẽ đủ 4 góc ngoài (trên trái, trên phải, dưới trái, dưới phải), 2 cạnh ngang, 2 cạnh dọc, 1 ô giữa kín và 1 cột đơn. - Góc trong: hàng 2, ô 5–8: ô mặt trên kín nhưng có "khấc" 1 pixel tối kèm 2 pixel sáng ở đúng một góc – dùng khi hai bức tường gặp nhau tạo góc lõm. Đây là các ô hay bị quên nhất; thiếu chúng, góc phòng sẽ có lỗ.
- Ô chuyển tiếp: hàng 6: sàn có bóng tường đổ xuống (3 hàng trên tối dần), sàn có bóng bên trái, góc bóng, cầu thang đi xuống (4 bậc tối dần), cửa sập, bàn nhấn, song thoát nước. Bóng tường làm căn phòng có chiều sâu ngay lập tức.
- Nước, bẫy, thảm: hàng 7: nước
#2c3f7acó gợn#3f74c0, mép nước giáp sàn, hố sâu, bẫy chông thu vào và bật lên (2 trạng thái để làm hoạt ảnh), thảm đỏ nâu có viền vàng (ô giữa và ô mép), và một ô đen kín để lấp vùng ngoài tường. - Vật trang trí (hàng 8): rương, hũ sành, đầu lâu, thùng gỗ, cần gạt, chìa khóa, hộp gỗ, cây đuốc cắm đất – mỗi vật vẽ trên nền sàn, có viền
#14121cvà bóng nhỏ phía dưới – phải. Vật nằm giữa ô, chừa ít nhất 1 px quanh mép. - Kiểm tra màn ghép thử: file mới 160 × 128 px, dán các ô ghép thành một căn phòng nhỏ: tường bao, góc, cửa, sàn trộn biến thể. Đường nối nào lộ ra thì sửa trên tileset. Đếm màu bằng bản sao Indexed Color: đúng 16 màu. Xuất PNG 100% →
dungeon_tiles.png128 × 128 px. - Unity 6: Texture Type Sprite (2D and UI), Sprite Mode Multiple, Pixels Per Unit (Số pixel mỗi đơn vị) 16, Filter Mode (Chế độ lọc ảnh) Point (no filter), Compression None; Sprite Editor › Slice › Grid By Cell Size 16 × 16. Tạo hai lần (Floor, Walls), mở , Create New Palette rồi kéo các sprite vào. Cài gói 2D Tilemap Extras trong Package Manager để dùng Rule Tile (tự chọn cạnh, góc tường) và Animated Tile (đuốc 3 frame). Walls thêm Tilemap Collider 2D; Main Camera thêm Pixel Perfect Camera với Assets Pixels Per Unit 16.
Nâng cao (tùy chọn)
- Bản tileset thứ hai bằng đổi màu: nhân bản file, dùng Magic Wand (Tolerance 0, bỏ Contiguous) đổi dải gạch sang xanh băng và dải đá sang xanh xám – có ngay tầng hầm băng.
- Ô nước động: kết hợp với dự án nước chảy 4 frame ở bài sau để thay ô nước tĩnh bằng Animated Tile.
- Hết khe hở giữa ô: nếu camera di chuyển thấy vạch mảnh giữa các ô, gom tileset vào Sprite Atlas với Padding 2 hoặc 4 và giữ Pixel Perfect Camera – đây là lỗi lấy mẫu tràn mép rất phổ biến.
Mẹo & trick học nhanh
Sàn chiếm 60–70% màn hình. Một ô sàn đẹp, lặp không lộ đường nối có giá trị hơn mười đồ trang trí. Hãy dành 20–30 phút chỉ cho ô sàn gốc.
Trong góc nhìn 3/4, nguồn sáng giả định ở phía trên màn hình: mép trên viên gạch sáng, mép dưới tối, bóng tường đổ xuống sàn. Giữ quy ước này cho mọi ô để các ô ghép thành một không gian thống nhất.
Magic Wand với Tolerance 0 và bỏ Contiguous chọn mọi pixel cùng một màu trên cả 64 ô. Tô màu mới bằng ⌥ Option+⌫ Delete là đổi cả tileset trong một giây – lý do vì sao giữ đúng 16 màu là rất đáng.