Importowanie i konwertowanie zasobów
Projekty Unreal Engine 5 zawierają szereg zasobów składających się na ostateczną grę. Niektóre z tych typów zasobów, takie jak klasy Blueprintu, są właściwe dla Unreal Engine, podczas gdy inne są plikami w uniwersalnych formatach, które można zaimportować do silnika.
W poniższym dokumencie omówiono typy zasobów, które można zaimportować do Unreal Engine oraz sposób ich importowania, a także zamieszczono łącza do dodatkowych materiałów informacyjnych.
Najczęstsze typy zasobów
Unreal Engine 5 obsługuje następujące typy zasobów:
| Typ zasobu Unreal | Odpowiednik Unity | Obsługiwane formaty |
|---|---|---|
| Mesh |
|
| Skinned Mesh |
|
| Animation, Mecanim |
|
Tekstura |
| |
| plik dźwiękowy |
|
| Video clip |
|
| Font asset |
|
| Plik glTF |
|
SpeedTree |
|
Zagadnienia dotyczące zasobów do uwzględnienia przed importem do Unreal Engine
Układ współrzędnych Unreal Engine
Unreal Engine wykorzystuje układ współrzędnych kartezjańskich do reprezentowania położenia w trójwymiarowej przestrzeni euklidesowej. Układ współrzędnych w Unreal Editor jest układem lewoskrętnym, w którym oś X reprezentuje kierunki przód/tył, oś Y reprezentuje kierunki prawy/lewy, a oś Z reprezentuje kierunki góra/dół.
Układ współrzędnych w Unity również jest układem lewoskrętnym. Jednak w Unity oś X reprezentuje kierunki prawy/lewy, oś Y reprezentuje kierunki góra/dół, natomiast oś Z reprezentuje kierunki przód/tył.
Jest to istotne w przypadku bezpośredniego importowania zasobów z Unity do Unreal Engine, ponieważ orientacja zasobu może być nieprawidłowa. Aby rozwiązać ten problem, można zmienić orientację zasobu w pakiecie tworzenia treści cyfrowych (DCC), takim jak Maya czy Blender, albo bezpośrednio w oknie dialogowym importu w Unreal Engine.
Więcej informacji na temat układu współrzędnych w Unreal Engine można znaleźć w sekcji dokumentacji: Coordinate System and Spaces (Układ współrzędnych i przestrzenie).
Jednostki miary w Unreal Engine
Unreal Engine wykorzystuje system metryczny do pomiaru rozmiaru obiektów i odległości. A konkretnie Unreal Engine wykorzystuje Unreal unit (UU) (jednostki Unreal) do pomiarów na poziomie wewnętrznym. Jedna jednostka Unreal jest odpowiednikiem 1 cm.
Można wykorzystać tę informację, aby podczas tworzenia siatek w zewnętrznym pakiecie do tworzenia treści cyfrowych (DCC) przypisać właściwą skalę.
Unity również wykorzystuje system metryczny na poziomie wewnętrznym, z tym że jedna jednostka Unity jest odpowiednikiem 1 metra (100 cm). Będzie to wpływać na skalę obiektów importowanych bezpośrednio z Unity do Unreal Engine.
Więcej informacji na temat jednostek miary Unreal Engine można znaleźć w sekcji dokumentacji: Units of Measurement (Jednostki miary).
Potok zawartości FBX
Unreal Engine obsługuje różne formaty plików przy importowaniu zawartości do projektu. Jednym z najpopularniejszych formatów zasobów jest format Autodesk FBX.
Format FBX zapewnia interoperacyjność między wieloma różnymi pakietami tworzenia treści cyfrowych (DCC) i oferuje następujące korzyści:
Stosowanie jednego formatu plików do siatek statycznych, siatek szkieletowych, animacji i celów transformacji.
Importowanie wielu poziomów LOD i morfów / kształtów mieszanych w trakcie jednej operacji importu.
Importowanie zasobów materiałów i tekstur oraz automatyczne stosowanie ich do siatek statycznych.
Potok FBX Unreal Engine wykorzystuje FBX 2020.2, zaleca się więc korzystanie z tej wersji w celu uniknięcia potencjalnych niezgodności podczas importowania zasobów.
Więcej informacji na temat potoku FBX można znaleźć w sekcji dokumentacji: FBX Content Pipeline (Potok zawartości FBX).
Informacje o wersji
W chwili pisania tego tekstu do wykonania zrzutów ekranu i terminologii użyto następujących wersji Unreal Engine i Unity:
Unreal Engine 5.4.3
Unity 6 (6000.0.2f1)
Przygotowywanie do eksportu zasobów z Unity
Przed przystąpieniem do eksportu zasobów z Unity należy wykonać poniższe czynności, aby włączyć pakiet FBX Exporter:
W Unity kliknąć kolejno opcje Window > Package Manager, aby otworzyć okno Package Manager.
Kliknąć kategorię Unity Registry z lewej strony i wyszukać pozycję FBX Exporter. Kliknąć przycisk Install, aby zainstalować pakiet.
Po zainstalowaniu pakietu zamknąć okno Package Manager.
Teraz wystarczy kliknąć gotowiec prawym przyciskiem myszy w oknie Hierarchy i wybrać opcję Export to FBX, aby wyeksportować plik .fbx
Można również otworzyć folder źródłowy projektu Unity i bezpośrednio skopiować określone pliki, na przykład tekstury.
Siatki / siatki statyczne
Siatki statyczne są siatkami 3D, których geometria nie ulega zmianie. Siatki statyczne można importować do Unreal Engine w formacie .fbx lub .obj, przy czym preferowany jest format .fbx. Więcej informacji na temat siatek statycznych w Unreal Engine można znaleźć w sekcji dokumentacji: Static Meshes (Siatki statyczne).
W tym przykładzie przedstawiono sposób eksportowania siatki statycznej material ball Unreal Engine z Unity do Unreal.
Ten gotowiec składa się z jednej siatki oraz trzech materiałów. Jednak w hierarchii gotowca siatki może się znajdować wiele siatek.
Eksportowanie siatki statycznej z Unity
Aby wyeksportować siatkę statyczną z Unity, należy wykonać następujące czynności:
Kliknąć prawym przyciskiem myszy gotowiec w oknie Hierarchy i wybrać z menu opcję Export FBX…
W oknie Export Options wprowadzić nazwę w polu Export Name oraz ścieżkę w polu Export Path.
W kategorii Options wybrać pozycję ASCII Export Format.
Kliknąć listę rozwijaną Include i wybrać opcję Model(s) Only.
Jeśli siatka ma poziomy szczegółów (LODs), wówczas wybrać odpowiedni poziom.
Zaznaczyć pole wyboru Embed Textures, jeśli użytkownik chce wyeksportować materiały siatki wraz z odpowiadającymi im teksturami.
Kliknąć przycisk Export, aby wyeksportować siatkę statyczną.
Przejść do folderu Export Path, aby wyszukać plik siatki statycznej
.fbxJest to plik przeznaczony do zaimportowania do Unreal Engine.
Importowanie siatki statycznej do Unreal Engine
Aby zaimportować siatkę statyczną do Unreal Engine, należy wykonać następujące czynności:
Otworzyć Unreal Engine i kliknąć przycisk Import (Importuj) w Content Browser (przeglądarce zawartości).
Przejść do folderu Export Path (Ścieżka eksportu) i wybrać plik siatki .fbx, a następnie kliknąć opcję Otwórz.
Ewentualnie po użyciu ustawienia Show in Explorer w Unity można przeciągnąć plik z okna eksploratora plików bezpośrednio do Content Browser (przeglądarki zawartości) w Unreal Engine, aby go zaimportować.
Pojawi się okno FBX Import Options (Opcje importu FBX), w którym będą widoczne import settings (ustawienia importu) siatki statycznej.
Przewinąć do sekcji FBX File Information (Informacje o pliku FBX) w dolnej części okna, aby wyświetlić szczegóły zasobu. Należy zwrócić uwagę, że w pozycji Creator Application (Aplikacja twórcy pliku) pojawi się Unity FBX Exporter 5.1.1, a File Axis Direction (Kierunek osi pliku) to Y-UP.
Przewinąć w górę do sekcji Mesh (Siatka) i zaznaczyć pole wyboru Generate Missing Collision (Generuj brakującą kolizję).
Rozwinąć sekcję Advanced (Zaawansowane) i zaznaczyć pole wyboru Combine Meshes (Połączyć siatki), jeśli użytkownik chce połączyć kilka siatek w jedną. Można również zaznaczyć pole Import Mesh LODs (Importuj poziomy LOD siatki), jeśli siatka zawiera poziomy LOD.
Przewinąć w dół do sekcji Miscellaneous (Różne) i zaznaczyć pola wyboru Convert Scene (Konwertuj scenę) oraz Force Front X Axis (Wymuś przednią oś X).
Przewinąć w dół do sekcji Material (Materiał), kliknąć listę rozwijaną Material Import Method (Metoda importowania materiałów) i wybrać opcję Create New Materials (Utwórz nowe materiały). Spowoduje to automatyczne utworzenie nowych materiałów dla siatki statycznej.
Więcej informacji na temat ustawień dostępnych w importerze FBX zawiera strona z odwołaniami do opcji importu plików FBX.
Kliknąć opcję Import All (Importuj wszytko), aby zaimportować siatkę statyczną do Unreal Engine.
Zasób siatki statycznej wraz z materiałami i teksturami zostanie wówczas zaimportowany do Unreal Engine.
Przeciągnąć zasób siatki statycznej z Content Browser (Przeglądarki zawartości) do poziomu, aby zobaczyć wynik końcowy.
Więcej informacji na temat potoku FBX siatki statycznej zawiera sekcja dokumentacji: FBX Static Mesh Pipeline in Unreal Engine (Potok siatki statycznej FBX w Unreal Engine).
Siatki po skinningu / siatki szkieletowe
Postacie w Unreal Engine tworzy się przy użyciu wielu unikalnych zasobów pozwalających renderować geometrię wizualną, odtwarzać animacje oraz konstruować logikę sterującą zachowaniem postaci w czasie rzeczywistym.
Podstawowym zasobem postaci w Unreal Engine jest zasób skeletal mesh (siatki szkieletowej), który zawiera visual mesh (siatkę wizualną) postaci lub wyrenderowany model geometryczny postaci, oraz szkielet postaci obejmujący dane kości. Elementy te są wykorzystywane do animowania postaci.
Więcej informacji na temat siatek szkieletowych w Unreal Engine zawiera sekcja dokumentacji: Skeletal Meshes (Siatki szkieletowe).
W tym przykładzie zaprezentowano sposób eksportowania postaci Quinn właściwej dla Unreal Engine z Unity do Unreal.
Ten gotowiec zawiera komponent główny, w którym znajduje się kilka przekształceń do przetwarzania IK, a także komponent siatki szkieletowej z elementem renderera siatek po skinningu oraz dwoma materiałami.
Eksportowanie siatki szkieletowej z Unity
Aby wyeksportować siatkę szkieletową z Unity, należy wykonać następujące czynności:
Kliknąć prawym przyciskiem myszy gotowiec w oknie Hierarchy i wybrać z menu opcję Export FBX…
W oknie Export Options wprowadzić nazwę w polu Export Name oraz ścieżkę w polu Export Path.
W kategorii Options wybrać opcję ASCII Export Format, a następnie kliknąć menu rozwijane Include i wybrać pozycję Model(s) + Animations. Spowoduje to uwzględnienie wszelkich animacji przypisanych do siatki szkieletowej.
Jeśli siatka ma poziomy szczegółów (LODs), wybrać odpowiedni poziom.
Zaznaczyć pole wyboru Animated Skinned Mesh.
Zaznaczyć pole wyboru Embed Textures, jeśli użytkownik chce wyeksportować materiały siatki wraz z odpowiadającymi im teksturami.
Kliknąć przycisk Export, aby wyeksportować siatkę statyczną.
Przejść do folderu Export Path, aby wyszukać siatkę szkieletową
.fbx.fbxJest to plik przeznaczony do zaimportowania do Unreal Engine.
Importowanie siatki szkieletowej do Unreal Engine
Aby zaimportować siatkę szkieletową do Unreal Engine, należy wykonać następujące czynności:
Otworzyć Unreal Engine i kliknąć przycisk Import (Importuj) w Content Browser (przeglądarce zawartości).
Przejść do folderu Export Path (Ścieżka eksportu) i wybrać plik siatki szkieletowej
.fbx, a następnie kliknąć opcję Open (Otwórz).Alternatywnie po użyciu ustawienia Show in Explorer w Unity można przeciągnąć plik z okna eksploratora plików bezpośrednio do Content Browser (Przeglądarki zawartości) w Unreal Engine, aby go zaimportować.
Pojawi się okno FBX Import Options (Opcje importu FBX), w którym będą widoczne import settings (ustawienia importu) siatki statycznej.
Przewinąć do sekcji FBX File Information (Informacje o pliku FBX) w dolnej części okna, aby wyświetlić szczegóły zasobu. Należy zwrócić uwagę, że w pozycji Creator Application (Aplikacja twórcy pliku) pojawi się Unity FBX Exporter 5.1.1, a File Axis Direction (Kierunek osi pliku) to Y-UP.
Przewinąć w górę do sekcji Mesh (Siatka) i zaznaczyć pola wyboru Skeletal Mesh (Siatka szkieletowa) i Import Mesh (Importuj siatkę). Kliknąć menu rozwijane Import Content Type (Typ importowanej zawartości) i wybrać opcję Geometry and Skinning Weights (Geometria i wagi po skinningu).
Jeśli projekt Unreal Engine zawiera już zasób siatki szkieletowej zgodny z importowanym szkieletem postaci, można opcjonalnie wybrać zgodny szkielet z listy rozwijanej Skeleton (Szkielet). Jeśli jednak zasoby szkieletu nie są identyczne, można wybrać opcję zaimportowania szkieletów jako odrębnych zasobów, a następnie zdefiniowania różnych zasobów szkieletu jako zgodnych. Więcej informacji zawiera sekcja dokumentacji: Compatible Skeletons (Zgodne szkielety).
Jeśli siatka szkieletowa została wyeksportowana wraz z animacjami, przewinąć w dół do sekcji Animation (Animacja) i zaznaczyć pole wyboru Import Animations (Importuj animacje). W tym przykładzie siatka szkieletowa nie zawiera żadnych animacji.
Przewinąć w dół do sekcji Material (Materiał), kliknąć listę rozwijaną Material Import Method (Metoda importowania materiałów) i wybrać opcję Create New Materials (Utwórz nowe materiały). Spowoduje to automatyczne utworzenie nowych materiałów dla siatki szkieletowej.
Więcej informacji na temat ustawień dostępnych w importerze FBX zawiera strona z odwołaniami do opcji importu plików FBX. |
Kliknąć opcję Import All (Importuj wszytko), aby zaimportować siatkę szkieletową do Unreal Engine.
Zasób siatki szkieletowej wraz z materiałami i teksturami zostanie wówczas zaimportowany do Unreal Engine. Ponadto na podstawie siatki szkieletowej utworzone zostaną również szkielet oraz zasób fizyki.
Przeciągnąć zasób siatki szkieletowej z Content Browser (Przeglądarki zawartości) do poziomu, aby zobaczyć wynik końcowy.
Więcej informacji na temat potoku FBX siatki szkieletowej zawiera sekcja dokumentacji: FBX Skeletal Mesh Pipeline (Potok siatki szkieletowej FBX w Unreal Engine).
Animacje
Można wykorzystywać wszechstronny zestaw narzędzi i edytorów Unreal Engine do tworzenia systemów animacji postaci i obiektów podczas uruchamiania gry, renderowania materiałów kinowych i tworzenia nowych animacji bezpośrednio w silniku.
Animacje postaci w Unreal Engine tworzy się przy użyciu Skeletal Mesh Animation System (systemu animacji siatek szkieletowych). Animacje stosowane są do siatki szkieletowej i wspomagane zasobami animacji, takimi jak Blueprint animacji.
Unreal Engine oferuje szereg narzędzi animacji do pracy nad siatkami szkieletowymi, które dodatkowo pozwolą udoskonalić animacje.
Więcej informacji na temat systemu animacji siatek szkieletowych oraz pakietu edytorów animacji, a także zasobów i funkcji w Unreal Engine, zawiera sekcja dokumentacji: Animating Characters and Objects (Animowanie postaci i obiektów).
Eksportowanie klipów animacji z Unity
Klipy animacji można wyeksportować z Unity w formacie .fbx, wykorzystując pakiet FBX Exporter. Takie wyeksportowane pliki można następnie zaimportować do Unreal Engine jako Sekwencje animacji, które można wykorzystać w projekcie.
Aby wyeksportować klip animacji z Unity, należy wykonać następujące czynności:
W projekcie Unity przejść do panelu Hierarchy i wybrać gotowiec postaci zawierający klip animacji, który użytkownik chce wyeksportować.
Kliknąć gotowiec prawym przyciskiem myszy i wybrać opcję Export to FBX….
Skonfigurować właściwości Export Name i Export Path, aby zdefiniować nazwę eksportowanego pliku oraz miejsce jego zapisu na komputerze.
Dla właściwości Export Format wybrać ustawienie ASCII, a następnie dla właściwości Include wybrać ustawienie Model(s) + Animation. Opcjonalnie można uwzględnić wszystkie modele poziomu szczegółów (LOD) postaci za pomocą właściwości LOD Level i ustawić dla właściwości Object(s) Position niestandardową wartość przekształcenia.
Wybranie dla właściwości Include opcji Model(s) + Animation spowoduje wyeksportowanie klipu animacji oraz modelu postaci i hierarchii szkieletu, a następnie zapisanie tych danych w jednym pliku .fbx
.fbxFunkcja ta może być przydatna podczas importowania zasobów do Unreal Engine, ponieważ wszystkie zasoby zostaną zapisane razem.Zaznaczyć pole wyboru Animated Skinned Mesh, a następnie wyeksportować zasoby za pomocą przycisku Export.
Importowanie animacji do Unreal Engine
Aby zaimportować animację do Unreal Engine, należy wykonać następujące czynności:
W Content Browser (Przeglądarce zawartości) Unreal Engine kliknąć przycisk Import (Importuj).
Przejść do lokalizacji na komputerze, w którym zapisany został klip animacji wyeksportowany z Unity, zaznaczyć plik i kliknąć przycisk Open (Otwórz).
Ewentualnie po użyciu ustawienia Show in Explorer w Unity można przeciągnąć plik z okna eksploratora plików bezpośrednio do Content Browser (przeglądarki zawartości) w Unreal Engine, aby go zaimportować.
W oknie FBX Import Options (Opcje importu FBX) ustawić następujące właściwości:
Zaznaczyć właściwość siatki szkieletowej.
Aby zaimportować klip animacji i wygenerować nowy zasób siatki szkieletowej z użyciem zasobu sekwencji animacji, zaznaczyć właściwość Import Mesh (Importuj siatkę). Jeśli użytkownik chce jedynie zaimportować animację jako sekwencję animacji, powinien odznaczyć tę właściwość. W tym przykładzie importujemy jedynie animację i nie chcemy razem z nią importować siatki, ponieważ siatka szkieletowa została już wcześniej zaimportowana.
Jeśli użytkownik importuje nową postać i chce wygenerować nowy zasób szkieletu w trakcie importu, powinien pozostawić właściwość Skeleton (Szkielet) niezdefiniowaną. W przypadku importowania animacji, która ma być wykorzystywana z istniejącym szkieletem postaci w projekcie, użytkownik powinien wybrać zasób szkieletu z menu rozwijanego wyboru zasobu. W tym przykładzie animacja jest przeznaczona dla siatki szkieletowej Quinn, więc właściwość została zdefiniowana do korzystania z zasobu SK_Mannequin.
Jeśli projekt Unreal Engine zawiera już zasób siatki szkieletowej zgodny z importowanym szkieletem postaci, można opcjonalnie zdefiniować zgodny szkielet dla tej właściwości Skeleton (Szkielet). Jeśli jednak zasoby szkieletu nie są identyczne, można wybrać opcję zaimportowania szkieletów jako odrębnych zasobów, a następnie zdefiniowania różnych zasobów szkieletu jako zgodnych. Więcej informacji zawiera sekcja dokumentacji: Compatible Skeletons (Zgodne szkielety).
Po zdefiniowaniu właściwości okna FBX Import Option (Opcje importu FBX) kliknąć przycisk Import (Importuj), aby zaimportować zasoby.
Podczas importowania siatki szkieletowej i zasobów animacji przy użyciu okna FBX Import Option (Opcje importu FBX) proces importowania można zainicjować za pomocą przycisku Import All (Importuj wszystko) lub przycisku Import (Importuj). Kliknięcie przycisku Import All (Importuj wszystko) spowoduje zaimportowanie wszystkich powiązanych zasobów siatek, szkieletu, materiału i tekstury zawartych w pliku .fbx
.fbxOpcja ta sprawdza się najlepiej przy próbie zaimportowania wszystkich elementów postaci. Jeśli natomiast użytkownik importuje dodatkowe animacje powiązane z postacią, która została już wcześniej zaimportowana, powinien wybrać opcję Import (Importuj), aby zaimportować jedynie pojedyncze zasoby animacji.
Po ukończeniu procesu importowania Sekwencja animacji jest dostępna w Edytorze zasobów lub poprzez przeciągnięcie zasobu do poziomu, a następnie odtworzenie projektu w edytorze.
Rozwiązywanie problemów z importowaniem siatki szkieletowej
Podczas importowania siatek szkieletowych postaci i obiektów do Unreal Engine z innego pakietu tworzenia treści cyfrowych (DCC) lub silnika gry mogą pojawić się pewne problemy. Przykładowo obiekty mogą być importowane w niewłaściwej skali lub z zastosowaniem nieprawidłowego obrotu ze względu na różnice między programami i stosowanymi w nich układami współrzędnych.
Za pomocą menu Ustawienia importu FBX w Unreal Engine można skorygować niektóre problemy już w trakcie importowania, jeśli jednak obiekty importują się niepoprawnie, warto skorzystać z poniższych sekcji, w których opisano, w jaki sposób skorygować błędy powstałe w trakcie importu.
Skala
Układ współrzędnych Unreal Engine bazuje na ustalonej skali, w której 1 jednostka Unreal jest odpowiednikiem 1 centymetra. Inne programy wykorzystują odmienne skale, co podczas migracji plików między dwoma programami może sprawiać, że postacie lub obiekty będą mniejsze lub większe niż przewidziano przy ich projektowaniu. W przypadku migrowania pliku z Unity, gdzie wykorzystywane są jednostki 1-metrowe, postacie i obiekty zaimportowane do Unreal Engine mogą być mniejsze.
Aby naprawić ten błąd, w edytorze siatki szkieletowej należy przejść do panelu Asset Details (Szczegóły zasobu) i za pomocą właściwości Import Uniform Scale (Importuj jednolitą skalę) ustawić nową wartość dla siatki. Po ustawieniu tej wartości kliknąć przycisk Reimport Base Mesh (Importuj ponownie siatkę bazową) na pasku narzędzi edytora.
Obrót
Jeśli zasoby szkieletu, siatki szkieletowej lub animacji postaci mają niewłaściwy obrót w oknie wizualizacji, problem ten można naprawić, otwierając zasób w powiązanym z nim edytorze.
Za pomocą panelu Asset Details (Szczegóły zasobu) ustawić wartość właściwości Import Rotation (Importuj obrót), a następnie kliknąć przycisk Reimport Base Mesh (Ponownie importuj siatkę bazową) na pasku narzędzi edytora zasobu. Po zakończeniu procesu obrót zasobu w Unreal Engine powinien być prawidłowy.
Ze względu na różnice w układzie współrzędnym między Unity a Unreal Engine, zastosowanie wartości 90.0 w pozycji Oś X powinno skorygować wszelkie problemy z obrotem siatki szkieletowej lub zasobów Sekwencji animacji.
Właściwości konwersji sceny
W panelu Asset Details (Szczegóły zasobu) powiązanym z konkretnym zasobem można zaznaczyć właściwości Convert Scene (Konwertuj scenę), Force Front Axis (Wymuś oś przednią) i Convert Scene Unity (Konwertuj scenę Unity), aby skorygować wszelkie uszkodzone lub nieregularne siatki w trakcie odtwarzania. Po zaznaczeniu dowolnej z tych właściwości kliknąć przycisk Reimport Base Mesh (Importuj ponownie siatkę bazową) na pasku narzędzi edytora zasobu, aby zastosować zmiany.
Równoczesne edytowanie wielu zasobów
Podczas importowania zasobów do Unreal Engine może dojść do sytuacji, w której konieczne będzie wprowadzenie takiej samej poprawki ustawień, na przykład obrotu lub skali importu, w wielu zasobach. Zamiast edytowania każdego zasobu z osobna, można użyć opcji edycji zbiorczej, aby zastosować tę samą wartość ustawienia lub właściwości do wielu zasobów równocześnie.
Aby równocześnie edytować wiele zasobów, należy wykonać następujące czynności:
Zaznaczyć każdy zasób przeznaczony do edycji w Content Browser (Przeglądarce zawartości) lub za pomocą skrótu Shift + kliknięcie.
Kliknąć prawym przyciskiem myszy wybrane zasoby i w menu kontekstowym wybrać kolejno opcje Asset Actions (Akcje zasobu) > Edit Selection in Property Matrix (Edytuj zaznaczenie w Matrycy właściwości).
Każda właściwość zasobu będzie teraz dostępna w panelu Asset Details (Szczegóły zasobu), gdzie będzie można wyszukać konkretną właściwość lub do niej przejść, a następnie zastosować ustawienie do wszystkich zasobów równocześnie.
Blueprinty animacji
Po zaimportowaniu postaci opartej na siatce szkieletowej wraz z jej zasobami Sekwencji animacji można użyć opcji Animation Blueprint (Blueprint animacji), aby sterować odtwarzaniem i logiką animacji w czasie wykonywania programu. Za pomocą tych grafów można wybrać animacje do odtworzenia, mieszane przejścia między animacjami oraz animacje warstw. Więcej informacji na temat sterowania animacjami w projekcie za pomocą Blueprintów animacji zawiera sekcja dokumentacji:Animation Blueprint (Blueprint animacji).
Tekstury
Tekstury są zasobami obrazów używanymi głównie w materiałach i stosowanymi do obiektów. Można je również wykorzystać bezpośrednio do innych celów, na przykład na wyświetlaczach HUD.
Unreal Engine renderuje tekstury przy użyciu streamowania tekstur, aby zoptymalizować ładowanie tekstur do sceny. System streamowania tekstur wykorzystuje mipmaps (mipmapy) tekstur. Są to wstępnie obliczone sekwencje obrazów tej samej tekstury w różnych rozdzielczościach.
Więcej informacji na temat tekstur w Unreal Engine zawiera sekcja dokumentacji: Textures (Tekstury).
Eksportowanie tekstury z Unity
Unity przechowuje pliki tekstur zapisane w ich pierwotnym formacie w katalogu projektu, zatem nie ma potrzeby eksportowania tekstury z Unity. Zamiast tego, wystarczy skopiować pliki bezpośrednio z katalogu projektu.
Aby wyszukać plik tekstury w katalogu projektu Unity, należy wykonać następujące czynności:
Kliknąć prawym przyciskiem myszy plik tekstury w oknie Project, a następnie kliknąć opcję Show in Explorer.
Wówczas zostaną wyświetlone pliki w katalogu projektu. Pliki można skopiować bezpośrednio z tej lokalizacji lub wykorzystać lokalizację folderu do wyszukania plików z poziomu Unreal Engine.
Importowanie tekstury do Unreal Engine
Aby zaimportować teksturę do Unreal Engine, należy wykonać następujące czynności:
Otworzyć Unreal Engine i kliknąć przycisk Import (Importuj) w Content Browser (przeglądarce zawartości).
Przejść do folderu projektu Unity, w którym znajdują się tekstury, zaznaczyć pliki tekstury i kliknąć przycisk Open (Otwórz).
Ewentualnie po użyciu ustawienia Show in Explorer w Unity można przeciągnąć plik z okna eksploratora plików bezpośrednio do Content Browser (Przeglądarki zawartości) w Unreal Engine, aby je zaimportować.
Tekstury zaimportowane do Unreal Engine.
Informacje na temat stosowania tekstur w materiale zawiera poniższa sekcja Shadery/materiały.
Shadery/materiały
Materiały w Unreal Engine definiują właściwości powierzchni obiektów w scenie. W dużym uproszczeniu materiał stanowi "farbę" nałożoną na siatkę w celu zmodyfikowania jej wyglądu.
Z kolei w kategoriach technicznych materiały informują silnik renderowania, w jaki sposób powierzchnia powinna wchodzić w interakcje ze światłem w scenie. Materiały definiują każdy aspekt powierzchni, w tym kolor, refleksyjność, nierówności, przezroczystość itd. Obliczenia te wykonywane są w oparciu o dane wprowadzane do materiału z różnych obrazów (tekstur) oraz wyrażeń materiałów opartych na węzłach, a także z różnych ustawień właściwości charakterystycznych dla danego materiału.
Więcej informacji na temat materiałów w Unreal Engine zawiera sekcja dokumentacji: Materials (Materiały).
Eksportowanie materiału z Unity
Shader Graph w Unity służy do wizualnego tworzenia shaderów. W Unity również stosuje się materiały, które mogą odwoływać się do zasobu Shader Graph i stosowane są bezpośrednio do GameObjects.
W Unreal Engine materiały są wewnętrznie konwertowane do shaderów i tworzone przy użyciu Material Editor (Edytora materiałów), w którym materiały także tworzy się w oparciu o węzły.
Zasobu Shader Graph nie da się bezpośrednio wyeksportować z Unity i skonwertować do grafu materiału w Unreal Engine. Można jednak wyeksportować wszystkie istotne tekstury z Unity do Unreal Engine i odbudować sieć węzłów Shader Graph w Edytorze materiałów w Unreal Engine.
W tym przykładzie przedstawiono Lit Shader Graph zawierający teksturę zastosowaną do koloru bazowego oraz kolejną teksturę zastosowaną jako mapę normalnych.
Obydwie tekstury można wyeksportować z Unity zgodnie z procedurą opisaną w sekcji Textures (Tekstury) w tym dokumencie.
Importowanie materiału do Unreal Engine
Nie ma możliwości bezpośredniego zaimportowania materiału z Unity, dlatego przedstawiony powyżej Shader Graph trzeba odtworzyć w Edytorze materiałów w Unreal Engine.
Aby utworzyć materiał, należy wykonać następujące czynności:
Zaimportować tekstury do Unreal, wykonując procedurę opisaną w sekcji Textures (Tekstury) tej instrukcji.
Kliknąć prawym przyciskiem myszy w Content Browser (Przeglądarce zawartości), a następnie kliknąć opcję Material (Materiał), aby utworzyć nowy materiał. Nadać zasobowi nazwę M_Bricks.
Dwukrotne kliknąć M_Bricks w celu otwarcia Edytora materiałów.
Wybrać tekstury w Content Browser (Przeglądarce zawartości) i przeciągnąć je do Material Editor (Edytora materiałów), aby utworzyć węzły przykładowych tekstur.
Połączyć węzeł Texture Sample (Przykładowa tekstura) odwołujący się do tekstury rozproszenia z gniazdem Base Color (Kolor bazowy) węzła materiału. Następnie połączyć węzeł Texture Sample (Przykładowa tekstura) odwołujący się do tekstury mapy normalnych z gniazdem Normal (Normalna) węzła materiału.
Wprowadzić wartości 0.2 dla opcji Specular (Odbicie światła) i wartości 0.8 dla opcji Roughness (Chropowatość) w węźle materiału. Kliknąć przycisk Save (Zapisz), aby skompilować i zapisać materiał.
W oknie wizualizacji kliknąć kolejno opcje Add + > Shapes > Cube (Dodaj + > Kształty > Sześcian), aby dodać sześcienną siatkę statyczną do poziomu.
Wybrać pozycję M_Bricks w Content Browser (Przeglądarce zawartości) i przeciągnąć ją do sześciennej siatki statycznej w poziomie, aby zastosować materiał.
Więcej informacji na temat potoku FBX materiału zawiera sekcja dokumentacji: FBX Material Pipeline (Potok materiału FBX).
Efekty cząsteczkowe
Do tworzenia symulacji cząsteczek GPU w Unity służy graf efektów wizualnych. System ten wykorzystuje interfejs oparty na węzłach do tworzenia efektów i umożliwia symulowanie dużej liczby cząsteczek w trakcie rozgrywki.
Niagara VFX System jest systemem VFX nowej generacji stosowanym w Unreal Engine. Niagara zapewnia użytkownikom pełną kontrolę nad efektami. Umożliwia on programowanie i dostosowywanie efektów w każdej osi oraz posiada zaawansowane narzędzia do debugowania, wizualizacji i pomiaru wydajności.
Systemy Niagara zawierają co najmniej jeden emiter. Takie emitery można łączyć, tworząc złożone efekty. Emitery mogą spawnować cząsteczki CPU lub GPU niezależnie oraz renderować ich cząsteczki jako sprite'y, siatki, naklejki, światła oraz wstążki. Ponadto systemy Niagara obsługują dziedziczenie, co oznacza, że można utworzyć główny system Niagara, a na jego podstawie wykonać kilka systemów podrzędnych.
Zaawansowani użytkownicy mogą tworzyć moduły niestandardowe bezpośrednio w systemie, zyskując całkowitą kontrolę nad zachowaniem emitera. Niagara oferuje również pre-built templates (wstępnie skonfigurowane szablony), w tym pełny pakiet przykładowych symulacji płynów dla gazów 2D i 3D, cieczy, a także płytkich wód.
Cząstki Niagara mogą wchodzić w interakcje ze środowiskiem przy użyciu pól odległości siatki, kolizji i modułu NeighborGrid3D, który umożliwia tworzenie złożonych, związanych z algorytmem stada (BOID) zachowań cząsteczek, takich jak gromadzenie się.
Niagara obsługuje dane wejściowe z innych systemów w Unreal Engine, na przykład fizyki, animacji czy kodu Blueprint. Obsługuje również dane wejściowe ze źródeł zewnętrznych.
Grafu efektów wizualnych z Unity nie można bezpośrednio wyeksportować ani zaimportować do Unreal, więc konieczne będzie odtworzenie efektów w środowisku Niagara. Wiele efektów wykorzystuje materiały i tekstury, które można eksportować. Więcej informacji na temat eksportowania tekstur z Unity zawiera sekcja Textures (Tekstury) tego dokumentu.
Więcej informacji na temat systemu Niagara zawiera sekcja dokumentacji: Creating Visual Effects (Tworzenie efektów wizualnych).
Audio
System audio Unity pozwala importować i odtwarzać różne formaty plików dźwiękowych w przestrzeni 3D. System pozwala również zastosować wiele efektów opcjonalnych, takich jak pogłos, w czasie wykonywania programu.
Unreal Audio Engine jest rozbudowanym silnikiem audio obsługującym szeroki wachlarz funkcji obejmujących wszystkie platformy wspierane przez Unreal Engine.
Silnik audio jest wyposażony w wieloplatformowy mikser dźwięku umożliwiający przetwarzanie cyfrowych sygnałów dźwiękowych (DSP), syntezę proceduralną, personalizowany graf submixowy i elastyczny interfejs API C++.
Funkcje nowej generacji, takie jak MetaSounds, modulacja dźwięku czy analiza dźwięku w połączeniu z możliwością obsługi niestandardowych interaktywnych i proceduralnych systemów muzycznych eliminują konieczność korzystania z dźwiękowego oprogramowania pośredniczącego, takiego jak FMOD czy Wwise, przy tworzeniu bogatych, interaktywnych dźwięków do gier.
Więcej informacji na temat dźwięku w Unreal Engine zawiera sekcja dokumentacji: Audio in Unreal Engine 5 (Dźwięk w Unreal Engine 5).
Eksportowanie pliku dźwiękowego z Unity
Unity przechowuje pliki dźwiękowe zapisane w ich pierwotnym formacie w katalogu projektu, zatem nie ma potrzeby eksportowania plików dźwiękowych z Unity. Zamiast tego, wystarczy skopiować plik bezpośrednio z katalogu projektu.
Aby wyszukać plik dźwiękowy w katalogu projektu Unity, należy wykonać następujące czynności:
Kliknąć prawym przyciskiem myszy plik dźwiękowy w oknie Project, a następnie kliknąć opcję Show in Explorer.
Wówczas zostanie wyświetlony plik dźwiękowy w katalogu projektu. Plik można skopiować bezpośrednio z tej lokalizacji lub wykorzystać lokalizację folderu do wyszukania pliku z poziomu Unreal Engine.
Importowanie pliku audio do Unreal Engine
Aby zaimportować plik audio do Unreal Engine, należy wykonać następujące czynności:
Otworzyć Unreal Engine i kliknąć przycisk Import (Importuj) w Content Browser (przeglądarce zawartości).
Przejść do folderu projektu Unity, w którym znajduje się plik audio, zaznaczyć plik audio i kliknąć przycisk Open (Otwórz).
Ewentualnie po użyciu ustawienia Show in Explorer w Unity można przeciągnąć plik z okna eksploratora plików bezpośrednio do Content Browser (przeglądarki zawartości) w Unreal Engine, aby go zaimportować.
Plik audio zostanie wówczas zaimportowany do Unreal Engine.
Kliknąć prawym przyciskiem myszy plik audio w Content Browser (Przeglądarce zawartości) i kliknąć opcję Create Cue (Utwórz sygnał), aby utworzyć zasób sygnału dźwiękowego. Jest to standardowy zasób dźwiękowy w silniku używany do odtwarzania dźwięków w trakcie gry.
Więcej informacji na temat sygnałów dźwiękowych zawiera sekcja dokumentacji: Sound Cues (Sygnały dźwiękowe). Zalecamy również zapoznanie się z rozwiązaniami MetaSounds, które oferują funkcje bardziej zaawansowane w porównaniu z sygnałami dźwiękowymi.
Wideo
Komponent Video Player w Unity dołącza pliki wideo do GameObjects i oferuje kilka opcji odtwarzania plików wideo w scenie.
Unreal Engine jest wyposażony we w pełni funkcjonalny Framework multimediów o zbliżonej funkcjonalności. Framework ten obsługuje różne formaty plików wideo i oferuje optymalizację odtwarzania, a ponadto zapewnia obsługę sprzętu do przechwytywania dźwięku / obrazu wideo na urządzeniach z systemem Windows i Android.
Więcej informacji na temat odtwarzania pliku filmowego w Unreal Engine zawiera sekcja dokumentacji: Play a Video File (Odtwarzanie pliku wideo).
Eksportowanie pliku filmowego z Unity
Unity przechowuje pliki wideo zapisane w ich pierwotnym formacie w katalogu projektu, zatem nie ma potrzeby eksportowania filmu z Unity. Zamiast tego, wystarczy skopiować plik bezpośrednio z katalogu projektu.
Aby wyszukać plik wideo w katalogu projektu Unity, należy wykonać następujące czynności:
Kliknąć prawym przyciskiem myszy plik wideo w oknie Project, a następnie kliknąć opcję Show in Explorer.
Wówczas zostanie wyświetlony plik w katalogu projektu. Plik można skopiować bezpośrednio z tej lokalizacji lub wykorzystać lokalizację folderu do wyszukania pliku z poziomu Unreal Engine.
Importowanie pliku filmowego do Unreal Engine
Aby zaimportować plik wideo do Unreal Engine, należy wykonać następujące czynności:
Otworzyć Unreal Engine i kliknąć przycisk Import (Importuj) w Content Browser (przeglądarce zawartości).
Przejść do folderu projektu Unity, w którym znajduje się plik filmowy, zaznaczyć plik filmowy i kliknąć przycisk Open (Otwórz).
Ewentualnie po użyciu ustawienia Show in Explorer w Unity można przeciągnąć plik z okna eksploratora plików bezpośrednio do Content Browser (przeglądarki zawartości) w Unreal Engine, aby go zaimportować.
Plik wideo zostanie wówczas zaimportowany do Unreal Engine. Aktor przycisku panelu multimediów zostanie automatycznie utworzony w Content Browser (Przeglądarce zawartości) i będzie można przeciągnąć go do poziomu, aby bezpośrednio odtwarzać plik filmowy.
Wybrać plik filmowy w Content Browser (Przeglądarce zawartości) i przeciągnąć go do poziomu.
Po wybraniu aktora przycisku panelu multimediów przejść do panelu Details (Szczegóły) i przewinąć w dół do sekcji Control (Sterowanie).
Zaznaczyć pole wyboru Play on Open (Odtwarzaj po otwarciu), Auto Play (Automatyczne odtwarzanie) i Enable Audio (Włącz audio).
Jeśli użytkownik chce, aby odtwarzanie wideo było zapętlone w nieskończoność, zaznaczyć pole wyboru Loop (Pętla).
Opcjonalnie można przewinąć w dół do sekcji Geometry (Geometria) i dostosować geometrię używaną do wyświetlania filmu (płaszczyzna, kula lub niestandardowa), Aspect Ratio (proporcje obrazu), a także Letterbox Aspect Ratio (proporcje obrazu Letterbox). W naszym przykładzie pozostawimy zaznaczone pole wyboru Auto Aspect Ratio (Automatyczne proporcje obrazu), aby podczas odtwarzania kształt był zgodny z natywnymi proporcjami obrazu pliku filmowego.
Kliknięcie opcji Simulate (Symuluj) w celu odtworzenia filmu w poziomie.
Więcej informacji na temat aktora przycisków panelu multimediów zawiera sekcja dokumentacji: Media Plate Actor (Aktor przycisków panelu multimediów).
Sterowanie kamerą i sekwencje filmowe
Unity jest wyposażone w kilka narzędzi do tworzenia przerywników filmowych. Narzędzie Timeline służy do tworzenia sekwencji filmowych w edytorze, natomiast Cinemachine to zestaw narzędzi do sterowania kamerą.
W połączeniu ze sobą narzędzia te umożliwiają programistom tworzenie dynamicznych sekwencji filmowych w czasie wykonywania programu.
Sequencer jest natomiast wielościeżkowym edytorem przeznaczonym do tworzenia i wyświetlania podglądu sekwencji filmowych w czasie rzeczywistym w Unreal Engine.
Edytor zawiera zaawansowane narzędzia filmowe, za pomocą których można tworzyć sekwencje filmowe i animowane. Użytkownik ma możliwość sterowania kamerami, aby tworzyć widoki ogólne całego poziomu, animować światła i postacie, przesuwać obiekty, renderować sekwencje wyjściowe i nie tylko.
Animacji z użyciem kamery oraz zachowań utworzonych w Timeline i Cinemachine nie da się wyeksportować bezpośrednio z Unity do Unreal Engine. Na potrzeby tego przypadku użycia konieczne będzie odtworzenie zachowania przy użyciu Sequencera.
Więcej informacji na temat Sequencera zawiera sekcja dokumentacji: Cinematics and Sequencer (Przerywniki filmowe i Sequencer).
Tworzenie skryptów kodowych i wizualnych
Domyślnym językiem programowania Unity jest C#, podczas gdy natywnym językiem programowania w Unreal jest C++. Unity obsługuje również system skryptowania wizualnego Bolt, natomiast w Unreal Engine podobną rolę pełni system skryptowania wizualnego Blueprint.
Plików skryptów C# ani Bolt z Unity nie da się wyeksportować bezpośrednio z Unity, aby zaimportować je do Unreal Engine. Konieczne będzie zbudowanie funkcji przy użyciu języka C++ lub Blueprintów.
Więcej informacji na temat często stosowanych wzorców programowania i dobrych praktyk w Unreal Engine zawiera sekcja dokumentacji: Creating Gameplay in Unreal Engine (Tworzenie rozgrywki w Unreal Engine).
Zasoby 2D
Paper 2D jest opartym na sprite'ach systemem do tworzenia gier 2D oraz gier hybrydowych 2D/3D w Unreal Engine. System Paper 2D wykorzystuje pliki tekstur zmapowane do obiektów gry planera w celu reprezentacji postaci 2D, obiektów i elementów tła w projekcie w Unreal Engine.
Więcej informacji na temat rozwiązania Paper 2D oraz tworzenia projektów 2D w Unreal Engine zawiera sekcja dokumentacji: Paper 2D.
Eksportowanie zasobów 2D z Unity
Aby wyeksportować zasoby 2D z Unity, należy wykonać następujące czynności:
Kliknąć prawym przyciskiem myszy zasób w oknie Project i wybrać opcję Show In Explorer, aby otworzyć lokalizację zasobu na komputerze.
Wówczas zostanie wyświetlony plik w katalogu projektu. Plik można skopiować bezpośrednio z tej lokalizacji lub wykorzystać lokalizację folderu do wyszukania pliku z poziomu Unreal Engine.
Importowanie zasobów 2D do Unreal Engine
Aby zaimportować zasób 2D do Unreal Engine, należy wykonać następujące czynności:
Otworzyć Unreal Engine i kliknąć przycisk Import (Importuj) w Content Browser (przeglądarce zawartości).
Przejść do folderu projektu Unity, w którym znajduje się plik 2D, zaznaczyć plik 2D i kliknąć przycisk Open (Otwórz), aby zaimportować zasób.
Zasób 2D zostanie wówczas zaimportowany do Unreal Engine
Zaimportowany w ten sposób plik jest gotowy do użycia przy tworzeniu zasobów 2D lub animacji z wykorzystaniem Paper 2D.
Informacje na temat importowania zasobów, tworzenia sprite'ów oraz animacji flipbookowych zawiera sekcja dokumentacji:Paper 2D.
Zasoby SpeedTree
SpeedTree jest pakietem produktów przeznaczonych do tworzenia roślinności dla zawartości generowanej liniowo i w czasie rzeczywistym. Produkt ten zawiera narzędzie do tworzenia modeli drzew oraz wstępnie utworzone zasoby, które można zakupić i zaimportować bezpośrednio do Unreal Engine.
Więcej informacji na temat korzystania ze SpeedTree w Unreal Engine zawiera sekcja: Introduction to SpeedTree for Unreal Engine (Wprowadzenie do SpeedTree dla Unreal Engine) w dokumentacji SpeedTree.