Dự án 3: Bộ khối puzzle xếp gạch và nền bảng
Làm bộ khối vát cạnh 64 × 64 px cho game xếp gạch: 7 màu khối, khối xám, ô nền bảng, bóng mờ chỗ rơi và hiệu ứng xóa hàng – xuất sheet 512 × 128 px, ghép bảng chơi trong Unity 6 bằng Draw Mode Tiled.
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: (Ctrl+O).
Game xếp gạch (kiểu Tetris) là bài tập hoàn hảo về tính nhất quán: tất cả khối dùng đúng một khuôn, chỉ khác màu. Người chơi phải nhận ra màu ngay cả khi màn hình đầy khối và đang rơi rất nhanh, nên mỗi khối cần cạnh vát rõ (mặt sáng ở trên – trái, mặt tối ở dưới – phải) để các khối cạnh nhau không dính thành một mảng.
Hình mẫu
Thời gian ước tính: khoảng 60 phút. Bạn chỉ vẽ một khối thật kỹ; 7 khối còn lại được tạo bằng cách đổi màu.
Chuẩn bị
- Canvas: 512 × 128 px (8 × 2 ô 64 px), Background Contents: Transparent. Cả hai cạnh là lũy thừa của 2.
- Bố trí sheet: hàng trên – 7 khối màu I, O, T, S, Z, J, L và khối xám (khối "rác"). Hàng dưới – ô nền bảng, bóng mờ chỗ rơi, 3 frame hiệu ứng xóa hàng, khối bom, khối băng, khối sao.
- Công cụ chính: Rectangle Tool có bo góc, Polygonal Lasso (Thòng lọng đa giác) (L, nhấn Shift+L để đổi), Layer Style, Adjustment Layer (Lớp điều chỉnh) Hue/Saturation (Sắc độ/Độ bão hòa).
- Thiết bị: chỉ dùng hình khối và vùng chọn – chuột là đủ, không cần lực nhấn.
| Màu | Mã hex | Dùng cho |
|---|---|---|
#3dd6f5 | Khối I (tối #1f9bc0, sáng #a8f0ff) | |
#ffd23f | Khối O (tối #d49a1f) | |
#a66cff | Khối T (tối #6c3bc4) | |
#5fd35f | Khối S (tối #2f9a3a) | |
#ff5a5f | Khối Z (tối #b8323f) | |
#4d7cff | Khối J (tối #2b4fc0) | |
#ff9f43 | Khối L (tối #c9611f) | |
#8a93a6 | Khối xám | |
#1d2340 | Nền bảng (vạch lưới #2b3358) |
Các bước
- Tạo file Ctrl+N 512 × 128 px, Transparent. Đặt lưới 64 px, Subdivisions 4 (), bật và .
- Mặt khối: ở ô đầu tiên, Rectangle Tool vẽ hình vuông 62 × 62 px tại X 1, Y 1, bán kính góc 9 px, Fill
#3dd6f5. Thêm Stroke Inside 2 px màu#0f1226. Đặt tên Face. - Cạnh vát tối (dưới – phải): layer mới kẹp vào Face (Ctrl+Alt+G). Polygonal Lasso bấm 6 điểm tạo hình chữ L ở mép dưới và mép phải, dày 13 px (20% của 64), hai đầu chéo 45° ở góc. Tô
#1f9bc0. - Cạnh vát sáng (trên – trái): layer kẹp thứ hai, tạo chữ L ngược ở mép trên và mép trái cũng dày 13 px, tô
#a8f0ff. Phần vuông ở giữa còn lại chính là "mặt trên" của khối. - Điểm bóng: layer kẹp thứ ba, Rectangle bo góc nhỏ 14 × 8 px màu trắng ở góc trên – trái của mặt giữa. Chi tiết nhỏ này làm khối trông như kẹo bóng – đặc trưng của game puzzle.
- Gom khuôn: chọn Face cùng 3 layer kẹp, Ctrl+G tạo Group Block_I. Nhân đôi 7 lần, dời mỗi bản 64 px sang phải bằng Move Tool (Công cụ Di chuyển) (lưới sẽ bám).
- Đổi màu từng khối: trong Group thứ hai, bấm đúp vào thumbnail của Face để đổi Fill sang
#ffd23f. Chọn layer cạnh tối, bấm biểu tượng Lock transparent pixels (ô bàn cờ trên bảng Layers), chọn màu tối mới và nhấn Alt+Backspace – chỉ phần đã vẽ được tô lại. Làm tương tự với cạnh sáng. Lặp lại cho cả 7 khối theo bảng màu. - Khối xám: Group thứ 8 dùng
#8a93a6– đây là khối "rác" đối thủ gửi sang hoặc khối không phá được. Không có điểm bóng trắng để nó trông "chết" hơn khối màu. - Ô nền bảng: hàng dưới, ô đầu: hình vuông 64 × 64 tô kín
#1d2340, thêm viền 2 px#2b3358chỉ ở mép trên và mép trái. Khi lát nhiều ô cạnh nhau, các viền này nối thành lưới đều – không bị dày gấp đôi. - Bóng mờ chỗ rơi (ghost): ô thứ hai: hình vuông bo góc chỉ có viền 3 px nét đứt màu trắng, Fill trắng Opacity (Độ mờ đục) 10%. Khi chơi, Unity tô màu nó bằng SpriteRenderer › Color theo khối đang rơi.
- Hiệu ứng xóa hàng 3 frame: ô 3–5: frame 1 khối trắng Opacity 60%; frame 2 khối trắng nhỏ hơn với 4 tia sáng; frame 3 chỉ còn vài hạt lấp lánh. Đặt cùng tâm để Unity phát liên tục không bị giật.
- Khối đặc biệt: ô 6–8: khối bom (khối xám + hình tròn đen + dây cháy), khối băng (khối xanh nhạt + vệt nứt trắng), khối sao (khối vàng + ngôi sao trắng ở giữa). Dùng chung khuôn Group để không lạc phong cách.
- Xuất PNG: ẩn lưới mẫu, , PNG, Transparency (Độ trong suốt) bật →
blocks_64.png512 × 128 px. Ảnh nền màn hình (1080 × 1920 px dọc, gradient xanh đêm với vài ngôi sao mờ) làm file riêngbg_puzzle.png. - Đưa vào Unity 6: Texture Type Sprite (2D and UI), Sprite Mode Multiple, Pixels Per Unit (Số pixel mỗi đơn vị) 64, Apply. Sprite Editor › Slice › Grid By Cell Size 64 × 64 › Slice › Apply. Bảng chơi: tạo GameObject có SpriteRenderer dùng sprite ô nền, Draw Mode chọn Tiled, Size 10 × 20 – Unity lát ô nền thành cả bảng. Với Draw Mode Tiled, Unity có thể nhắc đặt Mesh Type Full Rect trong Import Settings – làm theo rồi Apply.
Nâng cao (tùy chọn)
- Khung bảng 9-slice: vẽ khung 192 × 192 px viền 32 px kiểu kim loại; trong Sprite Editor đặt Border 32 ở 4 cạnh để co giãn khung theo kích thước bảng.
- Phiên bản theo chủ đề: nhân đôi PSD, thay điểm bóng trắng bằng hoa văn (khối kẹo, khối đá quý, khối bánh quy) – cùng một khuôn, game có ngay "skin" mới.
- Hiệu ứng lóe hàng: vẽ dải sáng trắng 640 × 64 px có hai đầu mờ dần (Gradient (Dải màu chuyển) trong suốt) – trong Unity cho nó quét qua hàng vừa đầy.
Mẹo & trick học nhanh
Cạnh vát khoảng 20% cạnh khối (13 px trên 64 px) nhìn rõ ở cả cỡ nhỏ trên điện thoại. Dưới 10% thì khối trông phẳng; trên 30% thì mặt giữa quá nhỏ.
Bật (Shift+Ctrl+;). Khi kéo Group bằng Move Tool, nó sẽ "hít" vào lưới 64 px – không bao giờ lệch nửa pixel.
Tạo file thử 640 × 1280 px, đặt sheet đã xuất vào nhiều lần (Ctrl+J) và xếp thành bảng có vài hàng khối. Lỗi về độ tương phản giữa các màu sẽ lộ ra ngay.