Lộ trình › Pixel art chuyên sâu › Bài 176/218

Dự án 3: Viền selout và anti-alias thủ công trên chiếc khiên

Vẽ một chiếc khiên tròn pixel 32 × 32 ba lần trên dải 96 × 32 px – viền đen 1 px, viền selout đổi màu theo vùng và hướng sáng, rồi selout kèm anti-alias đặt tay ở các bậc thang của đường cong – để hiểu vì sao sprite chuyên nghiệp trông mềm mà vẫn sắc.

Nâng cao 50 phút ★★★ Dễ Hướng dẫn cho macOS · đổi sang Windows

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.

File mẫu để luyện tập

Tải về rồi mở bằng Photoshop: FileTệp›OpenMở (⌘ Cmd+O).

Viền đen 1 px giúp sprite nổi rõ trên mọi nền, nhưng viền đen dày đặc quanh mọi thứ làm hình trông như sách tô màu. Họa sĩ pixel dùng hai kỹ thuật để "nâng cấp" viền. Selout (selective outlining – viền chọn lọc) là tô viền bằng màu tối của chính vùng bên trong và làm viền sáng hơn ở phía được chiếu. Anti-alias (Khử răng cưa) thủ công (AA) là đặt vài pixel tông trung gian vào góc của các bậc thang trên đường cong, làm đường cong mượt hơn ở cỡ thật. Photoshop có anti-alias tự động nhưng nó tạo màu mờ hỗn loạn; trong pixel art ta tự chọn từng pixel AA.

Hình mẫu

Cùng một chiếc khiên tròn 32 × 32 vẽ ba lần: viền đen 1 px, viền selout và selout kèm anti-alias thủ công, kèm dải cỡ thật 96 × 32
Cùng một chiếc khiên tròn 32 × 32 vẽ ba lần: viền đen 1 px, viền selout và selout kèm anti-alias thủ công, kèm dải cỡ thật 96 × 32

Thời gian ước tính: khoảng 50 phút. Nhìn kỹ vành khiên ở phía trên – trái: bản giữa và bản phải có viền xám tím thay vì đen; ở các bậc cong, bản phải có thêm pixel chuyển tiếp.

Chuẩn bị

  • Canvas: 96 × 32 px (3 ô 32 × 32), Resolution (Độ phân giải) 72, RGB Color, Background Contents: Transparent.
  • Công cụ chính: Pencil (Bút chì) Tool 1 px (⇧ Shift+B), Eraser (Tẩy) Mode Pencil, Elliptical Marquee (Khung chọn) bỏ Anti-alias, Magic Wand (Đũa thần) (W) Tolerance 0 bỏ Anti-alias, Eyedropper (Ống hút màu) Point Sample.
  • Phóng to không mờ: Image Interpolation Nearest Neighbor (Điểm lân cận) (Photoshop›SettingsCài đặt›GeneralChung), bật ViewHiển thị›ShowHiện›Pixel GridLưới điểm ảnh. Mở thêm cửa sổ xem cỡ thật: WindowCửa sổ›Arrange›New Window for… rồi đặt cửa sổ thứ hai ở 200%.
  • Thiết bị: sửa viền là công việc đặt từng pixel – chuột cho độ chính xác tốt nhất và hoàn toàn đủ dùng. Wacom, XP-Pen, Huion hay iPad + Apple Pencil cũng được nếu tắt lực nhấn; hãy bấm từng điểm, đừng kéo nét.
  • File mẫu: "Dải 3 ô 32 × 32" – vòng hồng là mép ngoài vành khiên (bán kính 13 px), vòng xanh là mép trong mặt gỗ (bán kính 10 px).
MàuMã hexDùng cho
#1b1a24Viền đen – phía bóng
#3d3a55 · #6a6888 · #9ea0b8 · #dcdde8Vành thép 4 tông (cũng là màu selout)
#4f4c6aPixel AA phía tối
#5c3a24 · #8f5a32 · #c58a52Mặt gỗ 3 tông
#b8741f · #f2b632 · #ffe68aHuy hiệu vàng 3 tông

Các bước

Sáu giai đoạn: bóng dáng tròn, tô phẳng có viền đen, đổ khối, đổi viền sang selout, thêm pixel anti-alias ở bậc cong, so sánh ba phiên bản
Sáu giai đoạn: bóng dáng tròn, tô phẳng có viền đen, đổ khối, đổi viền sang selout, thêm pixel anti-alias ở bậc cong, so sánh ba phiên bản
  1. Tạo file: ⌘ Cmd+N 96 × 32 px, Transparent. Gridline Every 32 Pixels, Subdivisions 32. Đặt file mẫu lên trên cùng, khóa layer, zoom 800%.
  2. Bóng dáng khiên: layer Shield A. Elliptical Marquee bỏ Anti-alias, Fixed Size 27 × 27 px, đặt khớp vòng hồng ở ô 1, tô #6a6888. Thu vùng chọn bằng SelectVùng chọn›Modify›Contract 3 px rồi tô #8f5a32 cho mặt gỗ.
  3. Sửa đường cong: một đường tròn pixel đẹp có các bậc thang giảm/tăng đều: 1-1-2-3-5… rồi đối xứng. Tìm chỗ bậc bị "lắc" (ví dụ 2-1-2) và sửa bằng Pencil/Eraser. Kiểm tra bằng cách lật ảnh ImageHình ảnh›Image Rotation›Flip Canvas Horizontal – lỗi lệch sẽ hiện ra ngay; lật lại khi xong.
  4. Viền đen 1 px: ⌘ Cmd + bấm thumbnail layer để chọn khối, EditChỉnh sửa›StrokeViền 1 px, Outside, #1b1a24. Xóa các góc chữ L dày 2 px (chỗ viền tạo thành khối 2 × 2) – đường viền 1 px phải liền nhưng không dày.
  5. Đổ khối: ánh sáng trên – trái. Vành thép: phía trên – trái #9ea0b8, một cung ngắn #dcdde8 làm ánh kim, phía dưới – phải #3d3a55. Mặt gỗ: tối #5c3a24 dưới – phải, sáng #c58a52 trên – trái. Huy hiệu hình thoi vàng ở giữa: nửa trên – trái #ffe68a, nửa dưới – phải #b8741f. Thêm 4 đinh tán 1 pixel #dcdde8.
  6. Nhân bản sang ô 2 và 3: ⌘ Cmd+J hai lần, dời đúng 32 và 64 px. Đặt tên Shield B – Selout và Shield C – AA. Ô 1 giữ nguyên làm bản so sánh.
  7. Selout – phía sáng: trên bản B, những pixel viền ở cung trên – trái (khoảng 10 giờ tới 1 giờ) đổi thành #6a6888 – tông tối của vành thép thay vì đen. Viền vẫn còn, nhưng mềm và "thuộc về" vật.
  8. Selout – vùng chuyển: hai đoạn viền nối giữa phía sáng và phía tối (khoảng 9 giờ và 2–3 giờ) đổi thành #3d3a55. Phía dưới – phải giữ #1b1a24 – đen chỉ còn ở chỗ thật sự tối, nên khiên trông như được chiếu sáng thật.
  9. Anti-alias – tìm bậc thang: trên bản C (đã có selout), zoom 800% và tìm các góc trong của đường cong, nơi viền "rẽ" từ ngang sang dọc tạo thành bậc. Chính các góc này làm mép trông răng cưa ở cỡ thật.
  10. Anti-alias – đặt pixel: ở mỗi góc trong, đổi pixel bên trong vành (kề hai pixel viền) sang một tông nằm giữa viền và vành: phía sáng dùng #9ea0b8, phía tối dùng #4f4c6a. Chỉ 1 pixel mỗi bậc; bậc dài 3–5 pixel có thể dùng 2 pixel tông giảm dần.
  11. Không anti-alias ra nền: đừng đặt pixel AA bên ngoài viền. Bạn không biết sprite sẽ đứng trên nền gì trong game; pixel AA ngoài viền sẽ thành "quầng" sai màu trên nền khác.
  12. So sánh ở cỡ thật: nhìn cửa sổ 200%: bản A sắc nhưng cứng, bản B mềm và có khối, bản C tròn trịa nhất. Thêm tạm một layer tô nền #3a8f4a phía dưới để kiểm tra trên nền màu – bản C không được có quầng.
  13. Đếm màu và xuất: bản sao › Indexed Color, Palette Exact ≤ 16 màu. Ẩn mẫu và nền thử, FileTệp›Export›Export AsXuất ra (tùy chỉnh) PNG Scale 100% → shield_outline.png 96 × 32 px.
  14. Unity 6: Texture Type Sprite (2D and UI), Sprite Mode Multiple, Pixels Per Unit (Số pixel mỗi đơn vị) 32, Filter Mode (Chế độ lọc ảnh) Point (no filter), Compression None; Sprite Editor › Slice › Grid By Cell Size 32 × 32. Đặt ba sprite trên các nền sáng – tối khác nhau trong Scene để chọn kiểu viền cho cả dự án, và giữ một kiểu duy nhất cho mọi vật phẩm.
Mẹo: Trong game, viền ngoài của nhân vật và vật phẩm quan trọng nên giữ đen ở phía bóng để chúng tách khỏi nền; selout mạnh hơn (gần như không còn đen) hợp với cảnh nền và vật trang trí – chúng nên chìm vào thế giới thay vì nổi bật.
Lỗi hay gặp: Anti-alias quá tay – đặt 2–3 tông trung gian ở mọi chỗ. Sprite thành mờ như ảnh bị phóng to bằng Bicubic (Nội suy mượt). AA thủ công chỉ dùng ở những bậc cong lộ rõ, mỗi bậc 1 pixel, và đường thẳng hay đường chéo 1:1 thì không cần AA.

Nâng cao (tùy chọn)

  • Viền trong (inner line): thêm đường 1 px #3d3a55 giữa vành thép và mặt gỗ – đừng dùng đen, để chi tiết bên trong nhẹ hơn viền ngoài.
  • Bộ 3 vật phẩm: áp dụng kiểu viền của bản C cho một thanh kiếm chéo 45° và một bình thuốc tròn – lưỡi kiếm chéo 1:1 sẽ cho bạn thấy đường thẳng không cần AA.
  • Viền phát sáng: vật phẩm hiếm có thể dùng viền ngoài màu vàng #ffe68a ở phía sáng – Unity đổi giữa sprite thường và sprite "sáng" khi người chơi lại gần.

Mẹo & trick học nhanh

Selout = viền mượn màu

Màu viền của mỗi đoạn lấy từ tông tối của vùng nằm ngay trong đoạn đó. Vành thép mượn xám tím, mặt gỗ (nếu chạm viền) mượn nâu tối – không thêm màu mới vào bảng.

Lật canvas để soi lỗi

ImageHình ảnh›Image Rotation›Flip Canvas Horizontal làm mắt bạn "quên" hình cũ và thấy ngay đường cong lệch hay bậc thang không đều. Đây là cách nhanh nhất để soi hình tròn.

Bậc thang đẹp

Đường cong pixel đẹp khi độ dài các bậc tăng hoặc giảm đều đặn (1, 1, 2, 3, 4…). Một bậc "ngược" (3, 1, 3) là nguyên nhân chính của răng cưa – sửa nó trước khi nghĩ tới anti-alias.

Kiểm tra nhanh

1 Selout là gì?
2 Pixel anti-alias thủ công nên đặt ở đâu?
3 Với selout, phần viền nào vẫn nên giữ màu đen #1b1a24?

Bài tập: Ba phiên bản viền cho vật phẩm của bạn

Làm trong Photoshop rồi nộp file. Máy chấm kiểm tra các yêu cầu kỹ thuật và chỉ cách sửa từng lỗi; giáo viên chấm thêm phần thẩm mỹ.

Làm bài tập