Contents

Cách thêm ánh sáng và bóng động trong Godot

Ánh sáng động và bóng đổ có thể nâng cao chất lượng hình ảnh và trải nghiệm chơi trò chơi Godot của bạn. Chúng thêm chiều sâu, bầu không khí và tính hiện thực, làm cho thế giới trò chơi của bạn trở nên đắm chìm và hấp dẫn hơn.

Godot cung cấp nhiều công cụ để tạo điều kiện thuận lợi cho việc tạo và cá nhân hóa các hiệu ứng ánh sáng và bóng đổ phức tạp thông qua các khả năng nâng cao của nó như CanvasModulate và PointLight2D.

Thiết lập Trò chơi Godot

Để bắt đầu triển khai ánh sáng động trong công cụ trò chơi Godot, hãy thiết lập trò chơi 2D cơ bản bằng cách tạo cảnh mới và kết hợp thực thể CharacterBody2D để đại diện cho nhân vật người chơi.

Mã nguồn được sử dụng trong ấn phẩm này có thể được truy cập thông qua kho lưu trữ GitHub chuyên dụng, đóng vai trò là nền tảng nguồn mở để các nhà phát triển nghiên cứu và triển khai theo quyết định của họ. Hơn nữa, nó có thể truy cập miễn phí theo các điều khoản của giấy phép MIT được thông qua rộng rãi, cấp cho người dùng quyền điều chỉnh và phân phối phần mềm mà không phải chịu bất kỳ khoản phí hoặc tiền bản quyền nào.

Kết hợp sự thể hiện ba chiều của môi trường trò chơi trong lĩnh vực tạo thủ tục bằng cách sử dụng các kỹ thuật phân vùng không gian như cây octree hoặc cây kd, cho phép tối ưu hóa và quản lý tài nguyên hiệu quả hơn. Ngoài ra, hãy kết hợp hệ thống chiếu sáng động có tính đến nhiều yếu tố khác nhau bao gồm thời gian trong ngày, điều kiện thời tiết và các yếu tố môi trường để mang lại trải nghiệm sống động cho người dùng. Cuối cùng là tích hợp các thuật toán mô phỏng vật lý cao cấp như Havok hay PhysX để mô hình hóa chính xác hành vi của các đối tượng trong thế giới trò chơi, tạo ra trải nghiệm chơi game chân thực và tương tác cao.

Kết hợp chuyển động và tương tác của người chơi với giới hạn màn hình bằng cách sử dụng GDScript như sau:

 extends CharacterBody2D

var speed = 200

func _physics_process(delta):
    var velocity = Vector2()

    if Input.is_action_pressed('ui_right'):
        velocity.x \+= 1

    if Input.is_action_pressed('ui_left'):
        velocity.x -= 1

    if Input.is_action_pressed('ui_down'):
        velocity.y \+= 1

    if Input.is_action_pressed('ui_up'):
        velocity.y -= 1

    velocity = velocity.normalized() * speed
    move_and_collide(velocity * delta)

Chương trình này cho phép người dùng điều hướng môi trường ảo theo nhiều hướng khác nhau, bị giới hạn bởi giới hạn của khu vực hiển thị trên màn hình thiết bị của họ.

/vi/images/simple-movement-in-godot.jpg

Làm tối phần còn lại của cảnh

Để tạo hiệu ứng ánh sáng động trong Godot, người ta phải sử dụng tính năng CanvasModulation để làm mờ toàn cảnh trong khi chỉ làm nổi bật những vùng đang được chiếu sáng bởi các nguồn sáng.

 extends Node2D

const DARKNESS = 0.7

func _ready():
    var canvas_modulate = CanvasModulate.new()
    canvas_modulate.color = Color(0, 0, 0, DARKNESS)
    add_child(canvas_modulate) 

Vui lòng đính kèm tập lệnh này vào Node2D mới được tạo để đóng vai trò là gốc của cảnh. Sau đó, nút CanvasModulate sẽ được sử dụng để tạo ra một lớp u ám màu đen trong mờ tinh tế trên toàn bộ trường thị giác, che khuất tất cả các phần tử bên trong nó, trừ những phần tử được chiếu sáng bởi các nguồn sáng.

Để thiết lập một thuộc tính thứ nguyên nhằm kiểm soát mức độ tối trong một môi trường, chúng tôi giới thiệu một biến hằng số được đặt tên có tên là “DARKNESS”. Tham số này cho phép thao tác cường độ che khuất được áp dụng cho biểu diễn trực quan trong thời gian không được chiếu sáng. Thông qua việc thay đổi giá trị được gán cho biến “BÓNG TỐI”, người ta có thể điều chỉnh mức độ mờ đục trong cảnh khi không có nguồn sáng. Giá trị tăng của “DARKNESS” sẽ dẫn đến trạng thái tối sâu hơn, trong khi giá trị giảm dần sẽ dẫn đến mức độ tối giảm tương ứng.

/vi/images/dark-scene-in-godot.jpg

Truyền bóng sáng

Để các thực thể tạo hiệu ứng đổ bóng, cần phải sử dụng các thành phần LightOccluder2D trên bất kỳ vật cản nào nhằm cản trở chiếu sáng. Ví dụ về các cấu trúc như vậy bao gồm rào chắn, bề mặt nhô cao và các yếu tố kiến ​​trúc khác được thiết kế để đổ bóng. Việc cài đặt các bộ che khuất này tạo điều kiện tạo ra các hiệu ứng đổ bóng thực tế trong môi trường trò chơi.

Để mô phỏng hiệu quả các bóng thực tế cho một đối tượng trong môi trường trò chơi điện tử của bạn, cần phải tạo một thành phần LightOccluder2D tùy chỉnh phù hợp chính xác với các đường viền của thành phần cản trở được đề cập. Hơn nữa, người ta có thể hiệu chỉnh các thuộc tính khác nhau như số lượng đa giác và phân đoạn để đạt được sự kiểm soát tối ưu đối với hiện tượng đổ bóng.

Thêm đèn đa hướng

Xem xét việc thêm một đối tượng PointLight2D vào cảnh bằng cách gán cho nó một vật liệu có kết cấu. Điều này sẽ mô phỏng nguồn sáng đa hướng góp phần tạo nên một kịch bản chiếu sáng xung quanh thuyết phục hơn.

 extends PointLight2D

var light_color = Color(1, 1, 0.8)

func _ready():
    energy = 2.5
    color = light_color 

Bạn có khả năng cá nhân hóa các thuộc tính để điều chỉnh mức độ và màu sắc của ánh sáng do đối tượng PointLight2D tạo ra.

Bạn có tùy chọn tạo kết cấu ánh sáng được cá nhân hóa để xác định hình thức và đặc điểm hình ảnh của nguồn chiếu sáng. Điều này có thể bao gồm từ một mẫu hình tròn đơn giản đến một cấu hình phức tạp hơn, phản ánh bầu không khí mong muốn mà bạn muốn thiết lập.

Để truyền đạt chất lượng kết cấu cho thực thể PointLight2D, vui lòng tuân thủ các quy trình sau:

Vui lòng chọn nút PointLight2D trong phân cấp cảnh.

Vui lòng điều hướng đến thuộc tính Texture trong phần Hoạ tiết của bảng Trình kiểm tra trong ngữ cảnh của thành phần Văn bản.

Vui lòng nhấp vào vùng kết cấu trống, sau đó duyệt qua trình khám phá tệp để chọn kết cấu chiếu sáng ưa thích từ các tùy chọn có sẵn.

Ánh sáng được cung cấp bởi nguồn sáng bạn chọn sẽ thể hiện hình dạng và màu sắc được xác định trước, mang lại hiệu ứng thẩm mỹ đẹp mắt cho sự tương tác năng động của ánh sáng và bóng tối trong cảnh.

Bao gồm các tính năng bổ sung

Để nâng cao cả chất lượng thẩm mỹ và các khía cạnh tương tác trong dự án của bạn, có một số thành phần tùy chọn có thể được kết hợp cùng với cấu hình cơ bản của chiếu sáng động và đổ bóng. Một số bổ sung tiềm năng bao gồm:

Ảnh động nhẹ

Nâng cao bầu không khí và tính hiện thực của các nguồn sáng của bạn bằng các hiệu ứng động khiến chúng trở nên sống động. Ví dụ: bạn có thể tạo hiệu ứng hoạt hình ngọn lửa bập bùng cho ngọn đuốc hoặc nến, mô phỏng chuyển động nhảy múa của ngọn lửa đang nổ lách tách hoặc truyền hoạt ảnh rộn ràng cho các quả cầu thần bí phát ra ánh sáng từ thế giới khác.

Chu kỳ ngày đêm

Kết hợp chu kỳ ngày đêm năng động trong trò chơi, điều chỉnh độ sáng và màu sắc của nguồn sáng trong thời gian thực để phản ánh tiến trình của thời gian. Việc triển khai như vậy có thể nâng cao cảm giác đắm chìm của người chơi bằng cách tạo ra các điều kiện không khí khác nhau dựa trên thời gian trong ngày, từ đó góp phần vào trải nghiệm tổng thể.

Ánh sáng mờ dần

Để tránh làm gián đoạn trải nghiệm đắm chìm, bạn nên sử dụng các hiệu ứng chuyển tiếp liền mạch khi thay đổi mức độ sáng. Phương pháp này cho phép làm mờ dần hoặc làm sáng môi trường, dẫn đến kết quả chân thực và hấp dẫn hơn về mặt thẩm mỹ.

Bóng năng động

Một cách tiếp cận khác để sử dụng bóng tĩnh là kết hợp bóng động cho các đối tượng đang chuyển động. Điều này có thể đạt được thông qua việc sử dụng các nguồn sáng bổ sung theo dõi chuyển động của các nhân vật, dẫn đến sự thể hiện thuyết phục về sự thay đổi bóng theo thời gian thực.

Hiệu ứng âm thanh không có bản quyền

Việc kết hợp các hiệu ứng âm thanh thích hợp có thể nâng cao đáng kể trải nghiệm nhập vai của một trò chơi điện tử, mang lại cho trò chơi một bầu không khí sống động và năng động. Để đạt được hiệu ứng này, hãy cân nhắc sử dụng các yếu tố âm thanh không có bản quyền tích hợp liền mạch với động lực ánh sáng và bóng thực tế của bạn.

Các phương pháp hay nhất cho Ánh sáng động và Bóng đổ

Để sử dụng hiệu quả ánh sáng động và bóng tối trong trò chơi điện tử, điều quan trọng là phải đảm bảo triển khai đúng cách để tránh bất kỳ hậu quả tiêu cực nào đối với hiệu suất hoặc chất lượng hình ảnh. Tuân thủ một số thực hành tốt nhất sẽ giúp đạt được mục tiêu này.

Tối ưu hóa nguồn sáng

Tối ưu hóa việc sử dụng các yếu tố chiếu sáng bằng cách tuân theo phương pháp bảo thủ phù hợp với kết quả thẩm mỹ mong muốn. Sự dư thừa của bộ đèn có thể tạo ra gánh nặng đáng kể đối với khả năng của hệ thống, đặc biệt là trong các tình huống liên quan đến phần cứng yếu hơn.

Sử dụng nướng nhẹ

Khi xử lý các cài đặt cố định hoặc các thực thể vô tri vô giác, bạn nên sử dụng một kỹ thuật được gọi là"nướng nhẹ"để nâng cao hiệu quả. Phương pháp này liên quan đến việc tính toán và lưu trữ thông tin ánh sáng trước thời hạn, do đó làm giảm nhu cầu tính toán nhanh trong các phiên chơi trò chơi.

Chọn sử dụng Bộ bao gồm đơn giản

Khi định cấu hình các nút LightOccluder2D, bạn nên sử dụng các dạng hình học đơn giản nếu có thể. Việc sử dụng các vật cản phức tạp bao gồm vô số đỉnh có thể làm phát sinh các thách thức về hiệu quả. Trong những trường hợp như vậy, hãy xem xét việc triển khai các dạng đa giác không phức tạp hoặc các đoạn tuyến tính làm bộ bao khi thấy phù hợp.

Culling và Layering

Godot cung cấp một hệ thống phân lớp và khả năng hiển thị mạnh mẽ, cho phép quản lý hiệu quả các phép tính ánh sáng và bóng tối bằng cách giới hạn chúng ở các phần có thể nhìn thấy của cảnh. Bằng cách loại bỏ các yếu tố ngoài màn hình, hiệu suất có thể được nâng cao đáng kể thông qua việc giảm nhu cầu tính toán.

Việc triển khai các kỹ thuật tiên tiến để tạo ánh sáng và bóng động hấp dẫn trong trò chơi platformer có thể nâng cao đáng kể sức hấp dẫn về mặt hình ảnh và chất lượng tổng thể của trò chơi.

Làm cho trò chơi Godot hấp dẫn hơn với ánh sáng động và bóng đổ

Ánh sáng động và bóng tối giúp mang lại trải nghiệm chơi trò chơi của một người với cảm giác sống động và chân thực hơn. Bằng cách tạo ra một môi trường ngày càng đắm chìm và phong phú về bầu không khí, những yếu tố này có khả năng gợi lên một loạt phản ứng cảm xúc trong người chơi, đồng thời thiết lập một tâm trạng khác biệt và nâng cao cách kể chuyện bằng hình ảnh của trò chơi.

Ánh sáng động có thể tạo ra trải nghiệm chơi trò chơi sống động bằng cách thêm chiều sâu cho cả môi trường kỳ lạ và yên tĩnh. Việc tích hợp nhiều loại nguồn sáng khác nhau, chẳng hạn như đuốc, đèn lửa và ánh sáng mặt trăng, cho phép tạo ra các hiệu ứng hình ảnh đa dạng giúp tăng cường sự tham gia của người chơi và để lại tác động đáng nhớ.