
Cách sử dụng ánh sáng 2D trong Unity để tạo không khí
Trang web này đã được dịch bằng máy để thuận tiện cho bạn. Chúng tôi không thể đảm bảo tính chính xác hoặc độ tin cậy của nội dung được dịch. Nếu bạn có thắc mắc về tính chính xác của nội dung được dịch, vui lòng tham khảo phiên bản tiếng Anh chính thức của trang web.
Bài viết này dựa trên bài thuyết trình của Martin Reinmann có tựa đề "Cách Odd Bug sử dụng ánh sáng 2D để tạo không khí" . Nội dung này đề cập đến quy trình phát triển của studio trong việc tạo ra một cảnh và cách họ sử dụng hệ thống chiếu sáng 2D của Unity kết hợp với các công cụ tùy chỉnh của riêng họ để tạo thế giới môi trường của Tails of Iron.

Xây dựng một cảnh
Tails of Iron được phát triển bởi Odd Bug Studio , một công ty gồm những người bạn và nghệ sĩ có trụ sở tại Manchester, Anh. Trò chơi bao gồm nhiều cấp độ khác nhau, trong đó người chơi có thể tự do di chuyển từ cảnh này sang cảnh khác thông qua cửa hoặc đường hầm.

Công cụ va chạm, ánh sáng và lớp
Mỗi quá trình tạo cảnh đều bắt đầu bằng Công cụ va chạm (Collider Tool), một công cụ tùy chỉnh do nhà thiết kế màn chơi của studio tạo ra. Đây là yếu tố nền tảng của màn chơi và tạo nên hình dáng tổng thể cho khung cảnh. Đó cũng là bề mặt mà người chơi bước đi trên đó. Đường giao nhau được sử dụng như một hướng dẫn để phác thảo bố cục và ý tưởng tạo ra một loạt các đối tượng và đặt chúng vào khung cảnh.
Nhưng trước khi làm điều đó, cần phải thiết lập bối cảnh bằng công cụ Ánh sáng và Lớp (Light and Layer Tool), một công cụ tùy chỉnh do lập trình viên trưởng của studio, Matt Taylor, tạo ra. Công cụ này cho phép nhóm quản lý ánh sáng và việc tìm nguồn cũng như đặt hàng tài nguyên sprite, khi họ xây dựng các cấp độ chi tiết bằng cách sử dụng một lượng lớn các tài sản sprite riêng biệt để tạo các cấp độ parallax.
Sau khi nhóm xác định các lớp, chẳng hạn như lớp nền và lớp trung cảnh, công cụ Ánh sáng và Lớp sẽ tập hợp tất cả các Trình kết xuất Sprite trong phần cảnh. Sau đó, các tài sản có thể được sắp xếp từ gần nhất đến xa nhất dựa trên độ sâu z của mỗi tài nguyên trong phần cấp độ. Sau khi danh sách này được tạo, công cụ sẽ gán giá trị theo thứ tự tuyến tính, đảm bảo rằng các tài sản được hiển thị theo đúng thứ tự.
Sau khi hoàn thành bước này, công cụ sẽ gán một lớp dựa trên các phân vùng đã được xác định trước đó trong cảnh. Điều này xác định những Sprite Renderer nào bị ảnh hưởng bởi một nguồn sáng 2D cụ thể. Bằng cách kết hợp hai quy trình này, studio có thể tạo các cấp độ thị sai lớn, chi tiết với các kịch bản chiếu sáng cụ thể cho từng lớp.
Nhóm cũng đã tạo ra một thư viện tài sản được chia thành nhiều tập bản đồ cho từng cấp độ cụ thể, để họ có thể dễ dàng chọn ra các tài sản để sử dụng trong các cảnh. Việc gắn tài sản với các cấp độ cụ thể giúp tối ưu hóa. Các bản đồ của họ được chia thành các danh mục như đá, cây cối và các tài sản nhỏ. Nhóm thường bắt đầu bằng việc đặt các đối tượng ở giữa để phác thảo các vật thể va chạm và củng cố bề mặt của một cảnh.
Việc đặt một vài vật thể ở tiền cảnh và hậu cảnh giúp thiết lập ánh sáng. Họ bắt đầu bằng cách sử dụng các yếu tố lớn như cây cối, đá và đồi núi để tạo bố cục tốt, sau đó mới thêm các chi tiết. Khi các đối tượng được định vị, tính năng "Sắp xếp" của Công cụ Ánh sáng đảm bảo các đối tượng được gán đúng cách và hiển thị ở độ sâu chính xác.
Việc bố trí tài sản đôi khi giống như một trò chơi xếp hình 3D khổng lồ. Việc tìm ra những hình dạng phù hợp để tạo một khung cảnh hiệu quả mà người chơi cũng có thể dễ dàng hiểu được có thể là một thách thức. Odd Bug muốn mỗi cảnh quay đều độc đáo. Điều này giúp người chơi dễ dàng định hướng trong thế giới game vì mỗi cảnh đều trở nên đáng nhớ với những địa danh hoặc chi tiết riêng biệt.
Họ đặt các đối tượng ở độ sâu khác nhau để tạo hiệu ứng thị sai khi người chơi di chuyển trong khung cảnh và camera phối cảnh có thể theo dõi chuyển động đó. Hiện tượng này có thể trở nên trầm trọng hơn bằng cách đặt các đối tượng cách xa nhau hơn trên trục z hoặc gần camera hơn. Bạn có thể giữ cho tài nguyên gần máy ảnh nhất tối hơn, hoặc hoàn toàn đen, vì điều này tạo ra một đường viền gần các cạnh màn hình và tăng cường chiều sâu.
Một tính năng tuyệt vời khác của công cụ Light Tool tùy chỉnh của Odd Bug là khả năng tạo ra chiều sâu nhân tạo ngay lập tức bằng cách làm mờ màu sắc của từng lớp phân chia khi di chuyển về phía đường chân trời. Nó cho phép nhóm điều chỉnh mật độ và thiết lập màu sắc ánh sáng tổng thể cũng như âm lượng của hiệu ứng chuyển màu đó. Điều này tạo ra một ảo ảnh tối ưu với đường chân trời mờ dần và sương mù bao phủ, và khi kết hợp với ánh sáng và các hạt bổ sung, nó có thể tạo những tâm trạng khác biệt đáng kể trong các cảnh.

Tổng quan về đèn
Sau khi đã điền đầy đủ các đối tượng vào khung cảnh, đã đến lúc thêm ánh sáng để tạo không khí và làm nổi bật các phần quan trọng của khung cảnh. Đây là lúc Unity 2D Lights phát huy tác dụng với quy trình làm việc của công cụ Light Tool tùy chỉnh.
Odd Bug đã điều chỉnh hệ thống chiếu sáng 2D Unity cho hiệu ứng thị sai đa lớp của mình. Mỗi nguồn sáng 2D tự xác định lớp của nó dựa trên độ sâu theo trục z trong khung cảnh bằng cách sử dụng các lớp phân chia được định nghĩa thủ công. Ngoài ra, nhóm cũng có thể tự thiết lập lớp nào mà ánh sáng 2D tác động đến.
Hệ thống đèn 2D trong mỗi phần tự động chiếu sáng các đối tượng (sprite) trong từng lớp một cách chính xác. Điều này giúp nhóm có thể kiểm soát ánh sáng rất tốt tùy thuộc vào vị trí đặt đèn. Ví dụ, bạn có thể thiết lập một nguồn sáng điểm mạnh hơn để chiếu sáng khu vực giữa sân và các nhân vật ở đó, kết hợp với ánh sáng mờ ở hậu cảnh để tập trung vào khu vực giữa sân.
Hệ thống ánh sáng nhiều lớp rất hữu ích để tạo ra các hiệu ứng thú vị như cảnh bóng, với một nguồn sáng được đặt ở hậu cảnh và chỉ tác động đến các lớp hậu cảnh, dẫn đến ánh sáng rất mờ ở lớp trung cảnh và tiền cảnh. Ngoài ra, bạn có thể tạo một bầu không khí khác biệt bằng cách thêm đèn phía sau cửa sổ hoặc cửa ra vào.
Có ba loại ánh sáng khác nhau được sử dụng xuyên suốt các cảnh quay: Điểm, Hình dạng tự do và Sprite.

Điểm sáng
Đèn điểm là loại đèn được sử dụng phổ biến nhất trong game, vì nó là một hình tròn 2D mà bạn có thể đặt nhanh chóng để làm nổi bật các đối tượng quan trọng hoặc tạo bóng nhân tạo. Bạn có thể sử dụng nó như một lớp ánh sáng mờ ảo ở hậu cảnh bằng cách tăng độ mờ của âm lượng hoặc sử dụng nó như ánh sáng phát ra từ đèn bằng cách điều chỉnh cường độ suy giảm của ánh sáng.

Ánh sáng tự do
Bạn có thể sử dụng Freeform Light nếu muốn thêm nguồn sáng mạnh vào một tài nguyên có hình dạng cụ thể, chẳng hạn như cửa sổ. Bạn chỉ cần vẽ theo hình dạng của tài nguyên, điều chỉnh độ suy giảm ánh sáng và đặt nguồn sáng ở độ sâu chính xác của tài nguyên. Điều đó khiến vật thể trông như đang phát ra ánh sáng.

Sprite Light
Sprite Light cho phép bạn thiết lập một tài nguyên cụ thể để chiếu sáng. Nhóm nghiên cứu đã sử dụng phương pháp này trên các chùm tia sáng có nguồn sáng dạng bề mặt. Vật thể này có thể được đặt và xoay trong khung cảnh để thể hiện ánh sáng chiếu đến từ các góc độ khác nhau. Bằng cách kết hợp các loại ánh sáng khác nhau, bạn có thể tạo những cảnh mà các nhân vật được chiếu sáng bằng ánh sáng mang tính khí quyển.

Đánh bóng hiện trường
Khi khung cảnh đã được chiếu sáng đẹp mắt, bạn có thể bắt đầu hoàn thiện bằng cách thêm các hiệu ứng hạt để tạo chuyển động và làm mịn các khu vực trông lộn xộn. Bạn có thể đặt một lớp sương mù dạng hạt (Particle Fog) ở độ sâu z đã chọn và thiết lập để nó hiển thị trên lớp phân chia phù hợp. Sương mù là một hiệu ứng tuyệt vời để phân tách các lớp riêng lẻ, tạo thêm chiều sâu cho hình ảnh. Trong Tails of Iron , việc đặt sương mù ở phía trước phần giữa bức tranh cũng giúp các nhân vật hòa nhập vào thế giới xung quanh. Bằng cách này, sương mù sẽ dịch chuyển nhẹ theo hướng mà người chơi cần đi.
Bước tiếp theo là thêm các hiệu ứng khí quyển như bụi bay, mưa hoặc lá rơi, tùy thuộc vào khung cảnh. Nên đặt chúng gần máy ảnh hơn để tạo hiệu ứng thị sai mạnh mẽ hơn. Hiệu ứng mưa là sự kết hợp giữa các giọt nước rơi và các hạt chuyển động của những tia nước bắn tung tóe trên mặt đất. Các hạt này, giống như hầu hết tài nguyên khác, được gán các lớp riêng biệt để phù hợp với hiệu ứng thị sai trong trò chơi.
Nếu cảnh quay có cỏ cao, hoa hoặc cây cối, hãy nhớ tạo thêm chuyển động cho chúng. Lập trình viên trưởng Matt Taylor đã tạo ra một công cụ chuyển đổi tất cả các shader sprite cây cối được chọn từ một cảnh thành một shader đặc biệt duy nhất, giúp chúng chuyển động đồng bộ theo gió. Nhóm có thể điều chỉnh giá trị của từng tài nguyên một cách riêng lẻ. Những chiếc lá được sắp xếp thành từng cụm có kích thước khác nhau xung quanh ngọn cây để tạo chuyển động tự nhiên hơn.
Cảnh phim được kết nối với nhau bằng một số hiệu ứng xử lý màu sắc và hiệu ứng viền ảnh. Họ sử dụng một công cụ tùy chỉnh để vẽ một khung hình chữ nhật bao quanh khu vực của cảnh mà họ muốn áp dụng quá trình xử lý hậu kỳ. Họ có thể kéo nó trên toàn bộ khung cảnh hoặc trên các yếu tố khác nhau hòa quyện vào nhau khi người chơi di chuyển trong khung cảnh đó. Khi một cảnh có nhiều trạng thái khác nhau, ví dụ như ngày và đêm, bạn có thể tạo một thư mục trong cảnh đó chứa tất cả các đèn, tài sản và bộ lọc được bật hoặc tắt trong trò chơi.
Cuối cùng, nhóm sẽ thực hiện một (hoặc ba) lần kiểm tra cuối cùng về các yếu tố, vị trí và mọi thứ khác cho đến khi cảnh quay được hoàn thiện. Để biết thêm thông tin hoặc có câu hỏi về Tails of Iron và nhóm phát triển trò chơi, hãy theo dõi @OddBugStudio trên Twitter.
Nếu bạn muốn xem các công cụ 2D của Unity có thể làm được những gì, hãy tải xuống dự án mẫu Lost Crypt . Dự án bao gồm một cửa sổ hướng dẫn giúp bạn làm quen với các tính năng như 2D Animation, Hình dạng 2D Sprite , Bản đồ ô 2D , Ánh sáng 2D , Shader Graph cho 2D, Kết cấu phụ và Xử lý hậu kỳ Thể tích.
Bạn muốn tìm hiểu thêm về lập trình 2D ?
"Nghệ thuật, hoạt hình và ánh sáng trong game 2D dành cho nghệ sĩ" là cuốn cẩm nang phát triển game 2D toàn diện và đồ sộ nhất của chúng tôi, được tạo ra dành cho các nhà phát triển và nghệ sĩ Unity muốn tạo ra một trò chơi 2D thương mại.
