Camera3D Node

in polish •  27 days ago 

Camera3D w Godot 4 to węzeł kamery przeznaczony do pracy w przestrzeni 3D. Camera3D pozwala na obserwację i interakcję ze światem 3D w grze. W Godot 4 kamera 3D została wzbogacona o dodatkowe opcje, takie jak zaawansowane efekty wizualne, różne tryby projekcji oraz dynamiczne dostosowywanie pozycji i rotacji.

Cechy Camera3D:

  • Różne tryby projekcji: Camera3D wspiera perspektywę (domyślną), ortograficzny oraz frustum, co pozwala na dostosowanie widoku do specyficznych potrzeb gry.
  • Obsługa efektów wizualnych: Wbudowane opcje takie jak rozmycie ruchu, wygładzanie krawędzi (anti-aliasing), głębia ostrości i inne efekty wizualne.
  • Dynamiczna kontrola kamery: Możesz ustawić Camera3D jako główną kamerę, sterować jej pozycją i rotacją oraz dostosować zoom.
  • Culling mask: Pozwala na filtrowanie obiektów renderowanych przez kamerę na podstawie ich warstw.

Jak używać Camera3D w Godot 4

1. Dodanie Camera3D do sceny

  1. W drzewie scen kliknij „Dodaj węzeł”.
  2. Wyszukaj Camera3D i dodaj ją do swojej sceny.
  3. Ustaw kamerę jako dziecko obiektu, który ma być śledzony (np. postaci gracza) lub umieść ją jako statyczny element w scenie.

2. Ustawienie Current na aktywną kamerę

Aby Camera3D była aktywna, zaznacz opcję Current w inspektorze lub ustaw kamerę jako aktywną w skrypcie:

$Camera3D.current = true

3. Konfiguracja Camera3D

  1. Projection (Projekcja):
  • Camera3D oferuje trzy tryby projekcji:
    • Perspective: Domyślna perspektywa, zapewnia realistyczny widok 3D.
    • Orthogonal: Widok bez perspektywy (używany np. w grach typu RTS).
    • Frustum: Pozwala na dostosowanie frustumu kamery, co przydaje się do niestandardowych efektów wizualnych.
   $Camera3D.projection = Camera3D.PROJECTION_ORTHOGONAL
  1. FOV (Pole widzenia):
  • Pole widzenia (ang. Field of View) kontroluje kąt, pod jakim kamera „widzi” scenę. Domyślnie wynosi 70 stopni, ale można go zmieniać, aby uzyskać szerszy lub węższy widok.
   $Camera3D.fov = 90  # Szeroki kąt widzenia
  1. Near i Far Clip:
  • Near i Far Clip definiują zakres renderowania kamery, co oznacza, że tylko obiekty w tym zakresie od kamery będą renderowane. Przydaje się, aby zoptymalizować wydajność gry.
   $Camera3D.near = 0.1
   $Camera3D.far = 1000
  1. Depth of Field (DOF):
  • Umożliwia kontrolowanie głębi ostrości, co pozwala rozmywać obiekty znajdujące się poza wybranym zakresem ostrości, tworząc efekt fotograficzny.
   $Camera3D.dof_blur_far_distance = 20  # Rozmycie dla obiektów daleko od kamery
  1. Culling Mask:
  • Culling Mask pozwala kontrolować, które warstwy są widoczne dla kamery. Możesz użyć tej funkcji, aby kamera renderowała tylko wybrane obiekty, co jest przydatne w przypadku, gdy masz wiele kamer renderujących różne elementy w scenie.
   $Camera3D.cull_mask = 1 << 2  # Renderuje tylko obiekty na warstwie 2

4. Skrypt do dynamicznej kontroli Camera3D

Poniższy skrypt przedstawia przykładową kamerę, która podąża za graczem i dostosowuje zoom w zależności od sytuacji:

extends Camera3D

var target_node: Node3D

func _ready():
target_node = get_parent() # Ustawienie celu, np. gracza
current = true

func _process(delta):
if target_node:
# Aktualizacja pozycji kamery, aby podążała za graczem
global_transform.origin = lerp(global_transform.origin, target_node.global_transform.origin + Vector3(0, 5, -10), 0.1)

Przykład zmiany FOV

func zoom_in():
fov = 50 # Przybliżenie

func zoom_out():
fov = 70 # Oddalenie

5. Przykład użycia Camera3D w różnych gatunkach gier

  1. Gry przygodowe i eksploracyjne:
  • Camera3D może podążać za graczem z pewnej odległości, co daje graczowi dobry widok na otoczenie. Dostosowanie FOV oraz głębi ostrości nadaje realistycznego wyglądu.
  1. Gry akcji i FPS:
  • W grach pierwszoosobowych możesz umieścić kamerę w pozycji „oczu” gracza, aby stworzyć wrażenie bycia wewnątrz postaci.
  1. Gry wyścigowe:
  • W grach wyścigowych Camera3D może być ustawiona za pojazdem, a odpowiednia konfiguracja FOV i zoomu pozwoli podkreślić prędkość.
  1. Symulatory:
  • Camera3D może być używana do symulacji widoku z różnych punktów, np. z kabiny pojazdu lub statku. Można także wykorzystać culling mask, aby renderować tylko odpowiednie elementy, jak wnętrze kokpitu.
  1. RTS i widok izometryczny:
  • Ustawienie kamery w trybie ortogonalnym daje klasyczny, płaski widok, używany często w grach typu RTS i symulatorach budowy.

6. Zaawansowane efekty wizualne

  1. Motion Blur:
  • Motion Blur w Camera3D dodaje efekt rozmycia ruchu, co sprawdza się przy dużych prędkościach, np. w grach wyścigowych.
   $Camera3D.motion_blur_amount = 0.2  # Ustawienie intensywności rozmycia
  1. Environment i Custom Background:
  • Możesz przypisać środowisko Environment, aby kontrolować oświetlenie, tło, efekty mgły i wiele innych. Tło może być kolorowe, teksturowane lub używać gradientów.
   var env = Environment.new()
   env.background_mode = Environment.BG_COLOR
   env.background_color = Color(0.1, 0.1, 0.1)  # Ustawia kolor tła
   $Camera3D.environment = env

Podsumowanie:

Camera3D w Godot 4 to wszechstronne narzędzie do zarządzania widokiem 3D, które oferuje szeroki zakres opcji, takich jak różne tryby projekcji, zaawansowane efekty wizualne i dynamiczną kontrolę. Dzięki funkcjom takim jak FOV, głębia ostrości, culling mask i motion blur, Camera3D pozwala na pełne dostosowanie perspektywy i atmosfery sceny 3D. Możliwość ustawienia dynamicznej pozycji i rotacji kamery umożliwia tworzenie angażujących wrażeń wizualnych dostosowanych do różnych typów gier.


Published using WordPress Blurt Publisher from https://godot.com.pl.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE BLURT!