Ta funkcja jest w stanie eksperymentalnym, co oznacza, że możesz ją wypróbować, przesłać nam swoją opinię i zobaczyć, co planujemy wdrożyć. Obecnie nie można opublikować projektu korzystającego z Scene Graph. Pamiętaj, że nie gwarantujemy wstecznej kompatybilności dla zasobów utworzonych na etapie eksperymentalnym. Interfejsy API tych funkcji mogą ulec zmianie i możemy, wedle własnego uznania, usunąć całe eksperymentalne funkcje lub określone funkcjonalności. Zobacz listę znanych problemów, zanim zaczniesz pracować z tą funkcją.
Scene Graph to ujednolicona struktura, która łączy wszystkie obiekty w świecie. Pomyśl o tym, jak o skrzynce narzędziowej zawierającej wszystkie narzędzia potrzebne do dekoracji scenerii, systemów rozgrywki, dźwięku, efektów wizualnych i wielu innych elementów, które pozwolą ci stworzyć przygody dla metawersum.
Dzięki Scene Graph możesz szybko przejść od greyboxingu i budowania świata do w pełni grywalnego poziomu w kilku prostych krokach.
Budując przy użyciu Scene Graph, możesz wykonywać operacje na powiązanych obiektach w swoim projekcie. Możesz także użyć Scene Graph do duplikowania i iterowania struktur podczas ich tworzenia. Możesz nawet zamienić utworzone obiekty w gotowce wielokrotnego użytku i używać ich w różnych projektach.
Scene Graph to natywny system Verse, który wykorzystuje właściwości języka Verse. Dzięki temu możesz w większym stopniu dostosować swoje projekty za pomocą interaktywnych, niestandardowych obiektów i wrażeń z rozgrywki.
Scene Graph zapewnia lepszą stabilność projektu, ponieważ Verse wykonuje całą ciężką pracę w tle, zapewniając, że jednostki działają zgodnie z oczekiwaniami. Verse ma także głęboki dostęp do wszystkich komponentów i jednostek sceny, dzięki czemu możesz sprawić, że twoja scena będzie prezentować się z dużą różnorodnością.
Obiekty w Metawersum
Metawersum to internetowa rozrywka społecznościowa w czasie rzeczywistym, w której ludzie bawią się i nawiązują kontakty w świecie 3D. Firma Epic Games opracowała system Scene Graph do UEFN, aby umożliwić ci tworzenie takich wrażeń w metawersum.
W systemie Scene Graph możesz tworzyć instancje i ponownie wykorzystywać obiekty bez klasyfikacji aktora z Unreal Engine. Rdzeniem Scene Graph jest zestaw elementów, które wykorzystują dane i logikę do tworzenia gry, a także renderowania i symulowania obiektów w dowolnym środowisku gry.
Aktorzy i jednostki nie są wymienne – są to różne systemy, które współpracują ze sobą na scenie.
Za pomocą Scene Graph możesz stworzyć środowisko symulacji 3D w czasie rzeczywistym, w którym wszystkie podejmowane decyzje projektowe i rezultaty są natychmiastowo widoczne w oknie wizualizacji. Można je edytować w panelu Szczegóły lub w Edytorze gotowców.
Możesz importować zasoby, które tworzysz lub kupujesz od dostawcy, np. przez Fab i używać ich ze Scene Graph do tworzenia niestandardowych obiektów i gotowców.
Wszystko, co zbudujesz w Scene Graph, może być wykorzystywane wielokrotnie i przy mniejszej ilości pamięci. System budowania Scene Graph został zaprojektowany, aby umożliwić złożone udostępnianie treści i wspólne realizowanie symulacji przy jednoczesnym egzekwowaniu granic między zawartościami.
Jednostki i komponenty
Jednostki i komponenty stanowią podstawę Scene Graph. Działają poprzez sterowanie definicją i zachowaniem obiektów.
Jednostki to kontenery, które same w sobie nie mają widocznej definicji ani funkcji. Komponenty dostarczają danych i zachowań jednostkom. Komponenty określają, co jednostka powinna robić na scenie.
Komponenty mają edytowalne właściwości. Mogą to być elementy fizyczne, takie jak siatka statyczna i system cząsteczkowy, lub logiczne, takie jak tagi rozgrywki lub niestandardowy kod Verse, który definiuje ruch platformy. Domyślnie wszystkie jednostki posiadają Transform Component (komponent przekształcenia), który określa, gdzie dana jednostka istnieje w świecie.
Konstruowanie jednostki za pomocą języka Verse nie tworzy Transform Component automatycznie.
Dzięki Scene Graph możesz szybko zestawić elementy sceny i stworzyć mechanikę gry, wykorzystując dane fizyczne z siatek, sygnałów dźwiękowych i wielu innych rzeczy.
Jednostka staje się fizyczną reprezentacją siatki statycznej po dodaniu komponentu Mesh Component do jednostki i wybraniu siatki w polu Siatka komponentu. Oznacza to, że możesz szybko tworzyć makiety budynków lub poszczególnych elementów sceny i od razu używać ich w swojej scenie.
Dla przykładu, na poniższym filmie widać, że jednostka zamienia się w kępę bambusowych drzew i do jednostki dodawany jest komponent dźwiękowy, przeciągając sygnał dźwiękowy do pola Sound Component.
Możesz zamienić tę kępę bambusa w gotowiec samodzielnie lub połączyć go z dodatkowymi jednostkami, aby stworzyć gotowiec lasu.
Jedna jednostka (jednostka symulacji) znajduje się na samej górze twojego projektu i reprezentuje symulację. Scena jest tworzona, gdy jednostki są zagnieżdżone pod jednostką symulacji. Dodając jednostki do mapy, automatycznie tworzysz jednostki podrzędne jednostki symulacji.
Górna jednostka gotowca stanowi główną jednostkę dla całego gotowca wraz z innymi gotowcami i jednostkami zagnieżdżonymi poniżej. Gotowce nadrzędne obejmują wygląd i zachowanie ich jednostek podrzędnych do interakcji z innymi obiektami na scenie.
Kliknij obraz, aby go powiększyć.
-
Gotowiec, jednostka główna → WoodenHouse_Tiny_Prefab
-
Gotowiec podrzędny → WoodenHouse_RoofSmall_Prefab_C_1
-
Jednostka podrzędna → Building_WIndowCircle_Bright2
-
Jednostka podrzędna → Building_WIndowCircle_Bright4
-
Jednostka podrzędna → Building_WIndowCircle_Dark2
-
Jednostka podrzędna → Building_WIndowCircle_Dark4
-
Jednostka podrzędna → WoodenHouse_Floor
-
Jednostka podrzędna → WoodenHouse_RoofCap2
-
Jednostka podrzędna → WoodenHouse_RoofCap3
-
Jednostka podrzędna → WoodenHouse_RoofWindow2
-
-
Gotowiec podrzędny → WoodenHouse_SmallFloor_Prefab_C_1
-
Jednostka podrzędna → WoodenHouse_Floor
-
Jednostka podrzędna → WoodenHouse_Wall10
-
Jednostka podrzędna → WoodenHouse_WallDoor_C4
-
-
Gotowiec podrzędny → WoodenHouse_Windows_Prefab_C_3
-
Jednostka podrzędna → Building_WindowPlane_Bright3
-
Jednostka podrzędna → Building_WindowPlane_Bright4
-
Jednostka podrzędna → Building_WindowPlane_Dark3
-
Jednostka podrzędna → Building_WindowPlane_Dark4
-
Jednostka podrzędna → WoodenHouse_Windoows_10
-
-
Każdy gotowiec podrzędny zawiera komponenty, które określają, jak gotowiec wygląda i jak dopasowuje się do innych gotowców na scenie. Za pomocą Verse możesz wybrać określone gotowce i jednostki, aby wymienić gotowiec podrzędny na inny gotowiec, a nawet zmienić kolor używany do jednostek Building_WindowPlane_Bright i Building_WindowPlane_Dark.
Istnieje wiele typów komponentów, które określają sposób działania części lub całej jednostki. Aby dowiedzieć się więcej na temat różnych typów komponentów dostępnych w Scene Graph, zobacz Komponenty.
Aby uzyskać więcej informacji na temat używania jednostek i komponentów, zobacz Praca z jednostkami i komponentami.
Gotowce
Scene Graph tworzy gotowce poprzez pakowanie jednostek w ramach jednej jednostki nadrzędnej. Wszystkie wybrane jednostki, hierarchie jednostek i ich komponenty są natychmiast dodawane do drzewa jednostek w gotowcu. Gdy już stworzysz gotowca, możesz dostosować wszystkie jego instancje w Edytorze gotowców.
Aby utworzyć instancję gotowca, przeciągnij gotowca z Przeglądarki zawartości do okna wizualizacji. Możesz również zagnieżdżać gotowce w hierarchii gotowców. Możesz użyć hierarchii, aby zastosować zmiany wprowadzone we wszystkich instancjach i gotowcach w hierarchii.
Aktualizując i ulepszając gotowca, oszczędzasz czas, ponieważ nie musisz znajdować wszystkich instancji tego obiektu, aby zaktualizować każdą z osobna.
Ponadto możesz stworzyć wiele podobnie wyglądających obiektów, wybierając podelementy w hierarchii i zastępując różne wartości komponentu. Możesz także obracać obiekty i dodawać nowe wartości komponentów do różnych instancji gotowców podczas edycji w Edytorze gotowców.
Edytor zaznacza wszystkie zmiany w panelu Szczegóły ikoną przełączania zastępowania poszczególnych atrybutów komponentu. Oznacza także różne ikony komponentów na przycisku listy rozwijanej dla danej karty komponentu.
Aby wrócić do oryginalnego projektu gotowca, kliknij przełącznik zastąpienia danego komponentu. Obiekt automatycznie powraca do stanu nadrzędnego gotowca. Możesz także kliknąć przycisk listy rozwijanej dla karty komponentu i wybrać opcję Usuń zastąpienie.
Aby dowiedzieć się więcej na temat modyfikowania gotowców, zobacz Gotowce i instancje gotowców.
W poniższym filmie Scene Graph posłużył do stworzenia dwóch gotowców małych domów.
Dom jest zduplikowany. Różne elementy domu są zmieniane poprzez wybór różnych siatek w celu zastąpienia części oryginału, co powoduje stworzenie nowego gotowca. Możesz nadal kopiować i wymieniać części, aby szybko stworzyć makietę małej wioski. Działa to również z komponentami, więc możesz dodać inne zachowanie do każdego domu w wiosce.
Edycja gotowców nie wpływa na stabilność i pamięć oryginalnego obiektu lub jego kopii. Oznacza to, że możesz ukończyć układ poziomu, abstrakcyjny projekt i grafikę, aby stworzyć niestandardowe obiekty do swojej wyspy. Dzięki systemowi budowania Scene Graph możesz ponownie wykorzystywać utworzone gotowce w różnych projektach, by stworzyć swoje własne uniwersum rozgrywki w Fortnite.
Verse w Scene Graph
Verse to język programowania używany przez Scene Graph do tworzenia i usuwania jednostek ze świata oraz tworzenia niestandardowych komponentów i zachowań.
Za pomocą języka Verse można stworzyć zewnętrzną wahadłową latarnię dla domu z poprzedniego przykładu. W Verse można zdefiniować właściwości kołysania, obrotu i czasu trwania, aby określić sposób, w jaki porusza się latarnia.
Gotowce utworzone w projekcie są widoczne jako klasa w Verse w pliku Assets.digest.verse twojego projektu. Jednostki i komponenty zdefiniowane w gotowcu są dostępne w Verse poprzez wywołania GetEntities()
i GetComponents()
na gotowcu.
Aby rozpocząć używanie kodu Verse w Scene Graph, zobacz Tworzenie własnego komponentu za pomocą Verse.
Włączanie Scene Graph w swoim projekcie
Aby użyć Scene Graph w swoim projekcie:
-
Z paska narzędzi wybierz Projekt > Ustawienia projektu, aby otworzyć okno Ustawienia projektu.
-
W oknie Ustawienia projektu w sekcji Dostęp do funkcji eksperymentalnych włącz System Scene Graph.
Kliknij obraz, aby go powiększyć.
- Aby potwierdzić, czy możesz wyświetlać funkcje Scene Graph, na pasku narzędzi wybierz Umieść aktorów i sprawdź, czy Jednostki pojawia się w menu dla listy rozwijanej Umieść aktorów.

Pierwsze kroki
Otwórz Szablon gotowców, aby dowiedzieć się więcej o Scene Graph. Szablon wprowadza cię w podstawowe koncepcje pracy z funkcjami Scene Graph i opiera się na tych podstawowych przepływach pracy, aby zilustrować możliwości tworzenia projektu przy użyciu gotowców i Verse.
Znane problemy
Poniżej przedstawiono znane problemy podczas pracy z funkcją Scene Graph. Jeśli masz uwagi lub znajdziesz błędy, które nie zostały ujęte na poniższej liście, zgłoś je na forach.
-
Ponieważ jest to funkcja eksperymentalna, mogą wystąpić nieoczekiwane zawieszenia czy awarie i niestabilność.
-
W edytorze gotowców nie można używać przyciągania do siatki, obrotu ani skali.
-
W edytorze gotowców nie można dokonywać wielokrotnego wyboru.
-
W edytorze gotowców nie można kopiować i wklejać ani przeciągać elementów z wciśniętym klawiszem Alt.
-
Nie można kopiować i wklejać komponentów.
-
Nie można usunąć wszystkich zastąpień z instancji gotowca na raz. Należy to zrobić ręcznie przy każdym zastąpieniu.
-
Jednostki nie korzystają z jednego pliku na aktora, zamiast tego jednostki są zapisywane w zasobie UMAP. Jeśli użyjesz URC w swoim projekcie, będziesz stale blokować poziom główny i wyłączysz możliwość współpracy nad projektem.
-
Nie ma możliwości zapisania zastąpionych instancji gotowca w zasobie gotowca.
-
Jednostki zduplikowane nie mają prawidłowych nazw w edytorze gotowców.
-
Opcje Rozwiń wszystko i Zwiń wszystko nie działają na komponentach.
-
Aktualnie nie ma możliwości usunięcia zastąpień z gotowca.
-
Kliknięcie prawym przyciskiem myszy ikony zastąpienia powinno powodować ten sam efekt, co kliknięcie lewym przyciskiem myszy.
-
Nie można odłączyć jednostki podrzędnej, przeciągając ją na jednostkę nadrzędną.
-
Scrubbing Static Mesh Component Rotation (obrotu komponentu siatki statycznej) wzdłuż osi Y powoduje nieoczekiwany ruch.
-
Występuje nieoczekiwane zachowanie gracza podczas kolizji z obiektami Scene Graph.
-
Po ręcznej zmianie nazwy jednostki nie można jej już zmienić.
-
Skalowanie ujemne może powodować nieprawidłowe interakcje w jednostkach podrzędnych po obróceniu.
-
Przeciąganie wartości dla ustawienia Przekształcenie w edytorze gotowców jest wolniejsze i mniej wydajne niż zmiana z poziomu widżetu.
-
Okno Utwórz komponent Verse nie wyświetla szablonów w Opcje edytora.
-
Nie zawsze można wybrać jednostki w edytorze gotowców.
-
Usunięcie gotowca powoduje utworzenie gotowca „ducha” w sesjach edycji na żywo.
-
Zasoby gotowców nie mają miniatur.
-
Logika komponentów działa zarówno w trybie edycji, jak i odtwarzania.
-
Komponenty są inicjowane znacznie wcześniej niż urządzenia trybu kreatywnego, co oznacza, że próba pobrania urządzenia trybu kreatywnego z
component.OnBeginSimulation
lubcomponent.OnSimulate
zakończy się niepowodzeniem. Aby obejść ten problem, można wykonać zapętlenie i uśpienie do momentu znalezienia komponentów lub stworzyć gotowce z wywołania OnBegin urządzenia kreatywnego. -
Wywołanie
Dispose()
na jednostce umieszczonej bezpośrednio w poziomie nie usunie z widoku klienta takich elementów jak widoczne efekty siatki i inne. WywołanieDispose()
na jednostkach, które są tworzone za pomocą kodu Verse, będą działać poprawnie. -
Nie działa możliwość ukrycia wybranych jednostek w edytorze poziomów (skrót klawiszowy: H) i edytorze gotowców.
-
Zmiany dokonane w edytorze gotowców nie zostaną zastosowane do umieszczonych instancji gotowca, chyba że zmiany zostaną zapisane.
-
Zapisanie projektu, gdy kod Verse nie jest kompilowany, może spowodować uszkodzenie danych gotowców.