Dowiedz się, jak tworzyć własne efekty świetlne, aby rozjaśnić swoje gry.
Dynamiczne oświetlenie i cienie mogą podnieść jakość wizualną i wrażenia z rozgrywki w grach Godot. Dodają głębi, atmosfery i realizmu, czyniąc świat gry bardziej wciągającym i wciągającym.
Dzięki potężnym funkcjom Godota, takim jak CanvasModulate i PointLight2D, tworzenie i dostosowywanie dynamicznego oświetlenia i cieni jest łatwym zadaniem.
Przygotowanie gry Godot
Zanim przejdziesz do dynamicznego oświetlenia, skonfiguruj podstawową grę 2D w programie silnik gry Godota. Utwórz nową scenę i dodaj plik CharakterBody2D dla gracza.
Kod użyty w tym artykule jest dostępny w this Repozytorium GitHub i jest darmowy do użytku na licencji MIT.
W środku CharakterBody2D, dodać KolizjaKształt2D o kształcie prostokąta i a Sprite2D do reprezentowania postaci gracza. Utwórz także kilka platform za pomocą StaticBody2D węzły.
Teraz zaimplementuj ruch gracza i kolizję z granicami ekranu za pomocą GDScript:
extends CharacterBody2D
var speed = 200
func _physics_process(delta):
var velocity = Vector2()if Input.is_action_pressed('ui_right'):
velocity.x += 1if Input.is_action_pressed('ui_left'):
velocity.x -= 1if Input.is_action_pressed('ui_down'):
velocity.y += 1if Input.is_action_pressed('ui_up'):
velocity.y -= 1
velocity = velocity.normalized() * speed
move_and_collide(velocity * delta)
Za pomocą tego kodu gracz może poruszać się w lewo, w prawo, w górę iw dół, będąc ograniczonym w granicach ekranu.
Przyciemnij resztę sceny
Aby uzyskać efekt dynamicznego oświetlenia, należy przyciemnić resztę sceny poza obszarami oświetlanymi przez źródła światła. Możesz to zrobić za pomocą Godota Modulacja płótna funkcja.
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)
Dołącz ten skrypt do nowego Węzeł2D dodany w katalogu głównym sceny. The Modulacja płótna node zastosuje półprzezroczystą czarną nakładkę, przyciemniając całą scenę z wyjątkiem obszarów oświetlonych światłami.
Utwórz stałą zmienną CIEMNOŚĆ, która określa intensywność ciemności zastosowanej do sceny. Dostosowując wartość CIEMNOŚĆ, możesz kontrolować, jak ciemna staje się scena, gdy nie jest oświetlona przez światła. Wyższa wartość spowoduje, że scena będzie ciemniejsza, a niższa wartość sprawi, że scena będzie mniej ciemna.
Rzuć lekki cień
Aby rzucać cienie, musisz je ustawić LightOccluder2D węzły na przeszkodach, które powinny blokować światło. Na przykład, jeśli masz ściany, platformy lub inne obiekty, które powinny rzucać cienie, dodaj a LightOccluder2D do każdego.
Stwórz nowy LightOccluder2D węzeł i dopasuj jego kształt do kształtu przeszkody w twojej grze. Możesz także dostosować właściwości okludera, takie jak wielokąty I segmenty aby dostroić zachowanie rzucania cienia.
Dodaj światła dookólne
Teraz dodaj A PointLight2D węzeł z teksturą reprezentującą twoje źródło światła. Światła punktowe emitują światło we wszystkich kierunkach i tworzą realistyczny efekt świetlny.
extends PointLight2D
var light_color = Color(1, 1, 0.8)
func _ready():
energy = 2.5
color = light_color
Możesz dostosować właściwości, aby kontrolować zasięg i kolor światła emitowanego przez PointLight2D.
Możesz także utworzyć lub zaimportować niestandardową teksturę światła, aby zdefiniować kształt i wygląd źródła światła. Może to być proste koło lub bardziej złożony kształt, w zależności od atmosfery, którą chcesz stworzyć.
Aby zastosować teksturę do PointLight2D węzeł, wykonaj następujące kroki:
- Wybierz PointLight2D węzeł w drzewie sceny.
- W panelu Inspektora znajdź właściwość Tekstura pod Tekstura Sekcja.
- Kliknij puste pole tekstury i wybierz żądaną jasną teksturę z przeglądarki plików.
Teraz Twoje źródło światła będzie emitować światło o określonym kształcie i kolorze, dodając atrakcyjnego wizualnie akcentu dynamicznemu oświetleniu i cieniom.
W tym dodatkowe funkcje
Oprócz podstawowej konfiguracji dynamicznego oświetlenia i cieni możesz wprowadzić różne dodatkowe funkcje, aby jeszcze bardziej podnieść atrakcyjność wizualną i wrażenia z gry. Oto kilka pomysłów do rozważenia:
Lekkie animacje
Ożyw swoje źródła światła, dodając do nich animacje. Możesz na przykład stworzyć migoczące światła dla pochodni lub świec, symulować ruch ogniska, a nawet dodać pulsujący efekt do magicznych kul.
Cykl dnia i nocy
Wprowadź dynamiczny cykl dnia i nocy, który stopniowo zmienia intensywność i kolor świateł w miarę upływu czasu w grze. Ta funkcja może zwiększyć immersję i stworzyć różne nastroje w zależności od pory dnia.
Zanikanie światła
Twórz płynne przejścia dla zmian natężenia światła, aby uniknąć nagłych przesunięć, które mogą przerwać immersję. Stopniowe włączanie i wyłączanie światła pozwala uzyskać bardziej naturalny i przyjemny dla oka efekt.
Dynamiczne cienie
Zamiast używać statycznych cieni, rozważ dodanie dynamicznych cieni do poruszających się obiektów lub postaci. Możesz to zrobić za pomocą dodatkowych źródeł światła, które podążają za ruchem postaci, dając złudzenie aktualizacji cieni w czasie rzeczywistym.
Efekty dźwiękowe wolne od praw autorskich
Efekty dźwiękowe odgrywają kluczową rolę w ożywianiu i dynamice świata gry. Rozważ włączenie efekty dźwiękowe wolne od praw autorskich aby uzupełnić dynamiczne oświetlenie i cienie.
Najlepsze praktyki dotyczące dynamicznego oświetlenia i cieni
Podczas gdy dynamiczne oświetlenie i cienie mogą znacznie ulepszyć grę, niewłaściwa implementacja może negatywnie wpłynąć na wydajność i jakość obrazu. Oto kilka najlepszych praktyk, o których warto pamiętać:
Zoptymalizuj źródła światła
Ogranicz liczbę aktywnych źródeł światła do niezbędnego minimum dla uzyskania pożądanego efektu wizualnego. Nadmierne oświetlenie może znacząco wpłynąć na wydajność, zwłaszcza na urządzeniach z niższej półki.
Użyj lekkiego pieczenia
W przypadku statycznych scen lub obiektów rozważ zapisanie informacji o oświetleniu, aby poprawić wydajność. Light Baking wstępnie oblicza dane oświetlenia, zmniejszając potrzebę obliczeń w czasie rzeczywistym podczas gry.
Zdecyduj się na proste okludery
Podczas ustawiania LightOccluder2D węzłów, wybieraj proste kształty tam, gdzie to możliwe. Złożone okludery z wieloma wierzchołkami mogą prowadzić do problemów z wydajnością. W miarę możliwości używaj prostych wielokątów lub segmentów linii jako okluderów.
Ubijanie i układanie warstw
Wykorzystaj system widoczności i warstw Godota, aby mieć pewność, że światła i cienie są obliczane tylko dla widocznych obszarów. Usuwanie świateł i cieni poza ekranem może znacznie poprawić wydajność.
Postępując zgodnie z tymi najlepszymi praktykami i ostrożnie wdrażając dodatkowe funkcje, możesz tworzyć oszałamiające i urzekające dynamiczne oświetlenie i cienie, które podnoszą ogólną jakość Twoja gra platformowa.
Uatrakcyjnianie gier Godot dzięki dynamicznemu oświetleniu i cieniom
Dynamiczne oświetlenie i cienie tchną życie w Twój świat gry. Tworzą bardziej wciągające i klimatyczne środowisko, wciągając graczy głębiej w rozgrywkę. Wzajemne oddziaływanie światła i cienia może wywołać emocje, nadać ton i ulepszyć wizualną narrację Twojej gry.
Niezależnie od tego, czy jest to tajemniczy ciemny loch, czy spokojna księżycowa noc, dynamiczne oświetlenie wzbogaca rozgrywkę i pozostawia niezatarte wrażenie na graczach.