Dự án 11: Đáy biển và xác tàu đắm
Vẽ cảnh đáy biển 1920 × 1080 px có xác tàu gỗ, tia sáng từ mặt nước, rong biển, san hô và đàn cá, luyện quy tắc "càng sâu càng tối và xanh" bằng lớp nước phủ (haze) theo độ sâu, rồi tạo cảm giác dưới nước bằng Light 2D và hạt bong bóng 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).
Dưới nước, ánh sáng bị nước "ăn" rất nhanh: màu đỏ mất trước tiên, rồi cam, vàng – chỉ còn xanh lam. Vì vậy cảnh đáy biển có một quy tắc rất rõ: càng sâu càng tối và càng xanh, càng xa càng bị phủ màu nước. Đây chính là phối cảnh không khí (atmospheric perspective) nhưng mạnh gấp nhiều lần. Bài này dạy bạn dùng một lớp haze (lớp nước phủ) theo độ sâu, tia sáng từ mặt nước và cách giữ màu ấm cho vài điểm nhấn gần camera.
Hình mẫu
Thời gian ước tính: khoảng 3 giờ. Để ý xác tàu: thân tàu nâu ấm nhưng phần đáy chìm trong lớp nước phủ xanh – nó "nằm trong" nước chứ không dán lên trên. San hô cam và cá vàng gần camera giữ màu ấm vì ánh sáng đi qua ít nước hơn.
Chuẩn bị
- Canvas: 1920 × 1080 px (16:9), Resolution (Độ phân giải) 72, RGB Color.
- Công cụ chính: Gradient (Dải màu chuyển) Tool (G), Pen Tool (Bút tạo đường) (P) cho thân tàu, Lasso (Dây thòng lọng) (L), Brush (Cọ vẽ) Tool (B), và cho vệt sáng gợn nước (caustics), cho rong biển, chế độ Screen, Overlay (Phủ chồng), Multiply (Nhân (làm tối)).
- Thiết bị: rong biển và san hô hưởng lợi nhiều nhất từ bút Wacom, XP-Pen, Huion hay iPad – một nét bút có lực nhấn (Size Jitter (Dao động kích thước) › Control: Pen Pressure (Lực nhấn bút)) tạo cọng rong thon tự nhiên. Dùng chuột: vẽ một cọng rong bằng Pen Tool, nhân đôi và biến dạng bằng Warp (Uốn cong) cho từng cọng khác nhau.
- File mẫu: "Khung độ sâu": 3 dải xanh đậm dần là 3 vùng nước, nét vàng là tia sáng (cùng một góc), đường hồng là mặt cát, khung hồng là chỗ đặt xác tàu ở 2/3 phải.
| Màu | Mã hex | Dùng cho |
|---|---|---|
#3fc1d9 | Nước gần mặt | |
#1a6f9a | Nước giữa, lớp haze | |
#0c2e52 | Nước sâu, đáy | |
#2a6a8a | Đá xa | |
#6e4a3a | Thân tàu | |
#c8bba0 | Buồm rách | |
#d9c08a | Cát | |
#3a9a5a | Rong biển | |
#ff7a6b | San hô gần camera |
Các bước
- Thumbnail: 384 × 216 px, 3 tông: trên sáng, giữa vừa, đáy tối; xác tàu là một khối nghiêng tối vừa ở 2/3 phải, mũi chúc xuống cát. Thử 2–3 góc nghiêng tàu, chọn góc tạo đường chéo mạnh nhất.
- Nước theo độ sâu: 1920 × 1080 px, đặt file khung. Layer Water: Gradient Linear 3 điểm màu
#3fc1d9→#1a6f9a→#0c2e52từ trên xuống. Đây là "bầu trời" của cảnh dưới nước. - Đá xa: layer Far_Rocks: Lasso vẽ hai cụm đá xa lô nhô
#2a6a8a– gần như cùng màu nước, chỉ đậm hơn một chút. Không viền, không chi tiết: vật ở xa dưới nước gần như tan vào nước. - Xác tàu – khối chính: layer Ship: Pen Tool vẽ thân tàu hình thuyền nghiêng 10–15°, mũi chúc xuống, Fill
#6e4a3a, Stroke 4 px#2a1a14. Hai cột buồm gãy nghiêng lệch nhau, một mảnh buồm rách#c8bba0vẽ bằng Pen Tool có mép răng cưa. - Chi tiết tàu: layer kẹp: 2 đường ván dọc thân
#4a2e24, 3 lỗ cửa sổ tròn tối, một vệt sáng mảnh#a8785adọc mép mạn tàu phía trên (ánh sáng từ mặt nước chiếu xuống). Phần thân dưới tô Multiply#4a2e24– mặt khuất sáng. - Lớp nước phủ (haze) cho tàu: layer mới kẹp vào Ship, Gradient Linear từ trong suốt (trên) tới
#1a6f9aOpacity (Độ mờ đục) 55% (dưới). Phần đáy tàu – sâu hơn – bị nước phủ nhiều hơn. Bước này biến con tàu từ "hình dán" thành vật nằm trong nước. - Đáy cát: layer Sand: Lasso vẽ mặt cát gợn theo đường hồng, Fill
#d9c08a; dải dưới cùng tối#b8a070. Gợn cát: Brush 4 px#f1e0b0vẽ những đường cong ngắn song song. Thêm haze nhẹ cho phần cát xa (Gradient#1a6f9a30% từ đường chân cát lên). - Tia sáng: layer God_Rays chế độ Screen: Polygonal Lasso (Thòng lọng đa giác) vẽ 3 dải hẹp trên – rộng dưới theo nét vàng, Gradient
#e6fbff45% xuống trong suốt, Gaussian Blur 10 px. Tia đi qua thân tàu tạo vệt sáng trên mạn tàu – rất "điện ảnh". - Caustics (vệt gợn sáng): layer mới, đen trắng, rồi Amount 300% Size Large; ⌘ Cmd+L kéo Levels cho chỉ còn các đường sáng mảnh. Chế độ Screen, Opacity 25%, Layer Mask (Mặt nạ lớp) chỉ giữ trên mặt cát và mạn tàu.
- Rong biển và san hô: layer Seaweed: các cọng rong cao thấp ở hai mép
#3a9a5a/#4fb06a, cong như đang đung đưa. San hô cành#ff7a6bvà một cụm tím gần camera – vì gần camera nên giữ màu ấm, bão hòa, viền rõ. - Đàn cá và điểm nhấn: đàn cá xa là bóng tối
#0c3a5cOpacity 80% (5–7 con cùng hướng); một con cá cam gần camera có viền và mắt. Rương nhỏ hé mở ở chân tàu với tia lấp lánh vàng – gợi ý phần thưởng. - Bong bóng và kiểm tra: Brush tròn cứng 6–14 px, chỉ vẽ viền (Ellipse Tool Stroke 2 px trắng 70%, Fill none) – chuỗi bong bóng từ khoang tàu bay lên, nhỏ dần lên trên. Bật Black & White: cảnh phải sáng trên, tối dưới; tàu tách khỏi nền nhờ value, không chỉ nhờ màu.
- Xuất và đưa vào Unity 6: Export As (Xuất ra (tùy chỉnh)) PNG →
seabed_bg.png1920 × 1080 px; nếu làm parallax, xuất thêm Seaweed và San hô (nền trong suốt) làm lớp tiền cảnh. Unity 6: Global Light 2D màu#5fb8d9Intensity 0.7 cho cả cảnh ngả xanh; một Freeform Light 2D hình thang mờ làm tia sáng từ trên. Bong bóng: Particle System với Shape Cone hướng lên, Gravity Modifier −0.05, Size over Lifetime tăng dần, đặt ở khoang tàu. Rong biển đung đưa: Animation xoay ±4° với Pivot (Điểm neo) ở gốc.
Nâng cao (tùy chọn)
- Vực sâu: nhân đôi cảnh, tối toàn bộ bằng Curves, tắt tia sáng, thêm vài sinh vật phát quang xanh – cùng tàu đắm nhưng ở tầng nước sâu hơn.
- Caustics động: xuất lớp caustics thành ảnh 512 × 512 px lặp liền mạch ( để kiểm tra), trong Unity dùng làm Sprite Light 2D trượt chậm trên cát.
- Khoang tàu bên trong: vẽ thêm cảnh 1920 × 1080 bên trong khoang: tối hơn, chỉ có tia sáng qua lỗ thủng – màn chơi khám phá tiếp theo.
Mẹo & trick học nhanh
Mỗi vật (hoặc Group vật) có một layer kẹp Gradient màu nước #1a6f9a; vật càng xa Opacity càng cao (20% gần, 50% giữa, 80% xa). Thứ tự độ sâu trở nên rõ ràng ngay.
Mặt trời chỉ có một, nên mọi tia sáng dưới nước song song nhau. Vẽ một tia, nhân đôi và dời ngang thay vì vẽ mỗi tia một hướng.
San hô cam, cá vàng đặt ở tiền cảnh. Nhờ quy tắc này, người chơi đọc được khoảng cách chỉ bằng màu.