SubViewport Node

in polish •  18 hours ago 

SubViewport w Godot 4 to specjalny typ węzła Viewport, który jest przeznaczony do renderowania zawartości w ramach istniejącego okna aplikacji. W odróżnieniu od standardowego Viewport, który może być używany do tworzenia całkowicie oddzielnych okien, SubViewport renderuje swoją zawartość w ramach głównego okna gry i można go osadzić jako teksturę w różnych miejscach, np. w przestrzeni 3D, UI, czy jako element sceny.

Cechy SubViewport:

  • Renderowanie wewnątrz głównego okna: SubViewport renderuje zawartość jako część głównego okna aplikacji, co oznacza, że można go łatwo osadzić jako teksturę lub element interfejsu użytkownika.
  • Obsługa scen 2D i 3D: Może renderować zarówno sceny 2D, jak i 3D, co czyni go idealnym do tworzenia podglądów, mini-map, ekranów, efektów post-procesowych, itp.
  • Interakcja z UI i światem gry: Można go używać do dynamicznych elementów UI, takich jak podgląd postaci, okna dialogowe, a nawet renderowania interaktywnego UI w świecie 3D.

Jak używać SubViewport w Godot 4

1. Dodanie SubViewport do sceny

  1. W drzewie scen kliknij „Dodaj węzeł”.
  2. Wyszukaj SubViewport i dodaj go do swojej sceny.
  3. Dodaj węzły (np. Camera3D, Sprite2D, Control, MeshInstance3D) jako dzieci SubViewport, aby renderować scenę w ramach tego węzła.

2. Wyświetlanie zawartości SubViewport

Aby zobaczyć zawartość SubViewport w swojej scenie, użyj SubViewportContainer lub ViewportTexture, aby przypisać jego renderowaną teksturę do innych obiektów:

  • SubViewportContainer:
  • To węzeł specjalnie przeznaczony do wyświetlania SubViewport. Automatycznie wyświetli zawartość SubViewport na ekranie.
  • Po prostu dodaj SubViewport jako dziecko SubViewportContainer.
  • Wyświetlanie jako tekstura na obiekcie 3D:
  • Możesz przypisać teksturę wygenerowaną przez SubViewport do obiektu 3D, takiego jak MeshInstance3D.
  • Utwórz materiał dla obiektu 3D i ustaw teksturę na ViewportTexture.

Przykład:

MainScene
├── SubViewportContainer
│   └── SubViewport
│       └── Camera3D (dla sceny 3D lub elementów 2D)

3. Renderowanie scen 2D i 3D w SubViewport

Renderowanie sceny 3D:

  1. Dodaj Camera3D do SubViewport jako dziecko.
  2. Umieść elementy 3D w SubViewport i ustaw kamerę, aby obejmowała obszar, który chcesz wyrenderować.

Renderowanie sceny 2D:

  1. Dodaj elementy 2D (np. Sprite2D, Label, Control) jako dzieci SubViewport.
  2. Możesz wyświetlić je jako podgląd w ramach innego UI, np. mini-mapy lub dynamicznego interfejsu.

4. Ustawienia SubViewport w inspektorze

  1. Size:
  • Ustawia rozdzielczość (szerokość i wysokość) SubViewport. Możesz zmieniać te wartości dynamicznie:
   $SubViewport.size = Vector2(320, 240)
  1. Transparent Background:
  • Pozwala renderować przezroczyste tło, co jest przydatne, jeśli chcesz nakładać renderowane treści na inne elementy UI.
  1. Render Target:
  • Możesz ustawić, czy SubViewport renderuje 2D czy 3D. To decyduje, w jaki sposób SubViewport renderuje zawartość.
  1. Usage:
  • Można ustawić SubViewport na 3D, 2D, lub 2D No Stretch, zależnie od tego, co chcesz osiągnąć.

Przykłady dynamicznego użycia SubViewport w skrypcie

Przykład: Tworzenie dynamicznego podglądu w UI

extends Control

func _ready():
# Tworzenie nowego SubViewport
var sub_viewport = SubViewport.new()
sub_viewport.size = Vector2(200, 200)
sub_viewport.usage = SubViewport.USAGE_3D
add_child(sub_viewport)

# Dodanie kamery 3D do SubViewport
var camera = Camera3D.new()
sub_viewport.add_child(camera)

# Wyświetlenie SubViewport jako tekstura na TextureRect
var texture_rect = TextureRect.new()
texture_rect.texture = sub_viewport.get_texture()
add_child(texture_rect)</code></pre>

5. Przykłady zastosowania SubViewport w grach

  1. Mini-mapki i podglądy UI:
  • SubViewport jest świetny do tworzenia mini-map, które mogą być renderowane jako tekstura i umieszczone w interfejsie użytkownika. Dzięki osobnej kamerze można łatwo kontrolować, co jest widoczne na mini-mapce.
  1. Ekrany i monitory w przestrzeni 3D:
  • Możesz użyć SubViewport do tworzenia ekranów komputerowych, kamer bezpieczeństwa, czy luster w grze. Renderując zawartość SubViewport, a następnie przypisując go jako teksturę do obiektów 3D, można uzyskać realistyczne efekty wizualne.
  1. Podgląd postaci:
  • Użyj SubViewport, aby stworzyć dynamiczny podgląd postaci (np. w menu ekwipunku). Możesz renderować postać 3D z osobną kamerą i wyświetlać ją na UI, dając graczowi możliwość obejrzenia swojego awatara w pełnym widoku.
  1. Nakładki HUD w grach VR:
  • SubViewport może być użyty do renderowania dodatkowych elementów HUD (Heads-Up Display) w przestrzeni 3D, co jest szczególnie przydatne w aplikacjach VR.

Użycie SubViewport z shaderami i efektami post-processingu

Dzięki SubViewport możesz także zastosować niestandardowe shadery lub efekty post-processingu do wyrenderowanej zawartości, co pozwala na tworzenie efektów specjalnych takich jak rozmycie, kolorowanie, odbicia czy efekty zniekształcenia.

Podsumowanie:

SubViewport w Godot 4 to wszechstronne narzędzie do tworzenia dodatkowych przestrzeni renderowania w głównym oknie aplikacji. Dzięki możliwości renderowania scen 2D i 3D, oraz używaniu wynikowej tekstury do różnych celów, można go stosować do mini-map, dynamicznych interfejsów, efektów specjalnych, ekranów, podglądów postaci i wiele więcej. SubViewport pozwala na łatwe zarządzanie osobnymi przestrzeniami renderowania bez potrzeby opuszczania głównego okna gry, co czyni go bardzo przydatnym w wielu scenariuszach projektowych.

Jeśli potrzebujesz więcej informacji na temat używania SubViewport w konkretnych zastosowaniach, daj mi znać!


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!