Wprowadzenie
Ta strona zawiera ogólny przegląd głównych systemów i procesów pracy Unreal Engine oraz porównanie ich z najczęściej używanymi edytorami, narzędziami i typami zasobów w Unity. Ten dokument ma na celu pomóc deweloperom Unity zrozumieć, jak wykonać znane przepływy pracy w Unreal Engine. Więcej informacji na temat poszczególnych funkcji można znaleźć, klikając linki w poszczególnych sekcjach.
Ta strona zawiera odwołania do narzędzi i funkcji opartych na wersjach Unreal Engine 5.5.4 oraz Unity 6 (6000.0.30f1). Odwołania do funkcji mogą się różnić w innych wersjach obu silników.
Rozgrywka
Fizyka
Aby uzyskać bardziej szczegółowy przegląd funkcji dostępnych w Chaos Physics, należy zapoznać się z dokumentacją Physics (Fizyka).
Silnik fizyki
Unreal Engine zawiera Chaos Physics, lekkie rozwiązanie do symulacji fizyki, stworzone od podstaw z myślą o potrzebach gier nowej generacji. Chaos Physics oferuje wiele funkcji, takich jak zniszczenie, fizyka sieciowa, fizyka sztywnych korpusów, pojazdy i wiele innych.
Domyślnym silnikiem fizyki Unity dla gier 3D jest NVIDIA PhysX, który posiada wiele funkcji podobnych do Chaos Physics.
Chaos Destruction
System Chaos Destruction jest zbiorem narzędzi w Unreal Engine, których można użyć do osiągnięcia kinowej jakości efektów zniszczenia w czasie rzeczywistym. Oprócz atrakcyjnej oprawy wizualnej system został zoptymalizowany pod kątem wydajności i zapewnia twórcom i projektantom większą kontrolę nad tworzeniem zawartości.
System Chaos Destruction wykorzystuje kolekcje elementów geometrycznych – rodzaj zasobów zbudowanych z co najmniej jednej siatki statycznej, w tym siatek zagnieżdżonych w Blueprincie. Te kolekcje elementów geometrycznych można rozbijać, aby uzyskać efekt zniszczenia w czasie rzeczywistym.
System zapewnia niespotykaną dotąd kontrolę nad procesem rozbijania dzięki intuicyjnemu, nieliniowemu procesowi pracy. Użytkownik może tworzyć wiele poziomów rozbicia, a także selektywne rozbicie na częściach kolekcji elementów geometrycznych, co zapewnia większą kontrolę artystyczną. Użytkownicy mogą również zdefiniować progi uszkodzeń dla poszczególnych klastrów, które spowodują rozbicie.
Więcej informacji na temat systemu Chaos Destruction można znaleźć w sekcji dokumentacji: Chaos Destruction.
Fizyka sieciowa
Praca w sieci lub replikacja w grach odnosi się do możliwości przekazywania informacji dotyczących rozgrywki między wieloma urządzeniami za pośrednictwem połączenia internetowego. Unreal Engine oferuje solidną strukturę sieciową, która pomaga deweloperom usprawnić tworzenie gier wieloosobowych.
Fizyka sieciowa jest częścią struktury sieciowej i umożliwia działanie symulacji opartych na fizyce w środowisku wieloosobowym. W Unreal Engine replikacja fizyki odnosi się do aktorów z replikowanym ruchem, którzy symulują fizykę. Te symulacje są uruchamiane w lokalnym kliencie (na komputerze gracza) podczas rozgrywki.
You can learn more about Networked Physics by reading the Networked Physics documentation.
Dynamika sztywnego korpusu
Fizyka systemu Chaos oferuje wiele funkcji związanych z dynamiką sztywnego korpusu. Obejmuje to reakcje na kolizje, śledzenie, ograniczenia fizyki oraz tłumienie i tarcie.
Kolizja
W Unreal Engine kolizje są wbudowane w większość komponentów aktorów korzystających z silnika fizyki. Ustawienia kolizji aktora można zmodyfikować, przechodząc do sekcji Collision (Kolizja) w panelu Details (panelu szczegółów). Na przykład można włączyć opcję Simulation Generates Hit Events (Symulacja generuje zdarzenia uderzeń), aby obiekt mógł wyzwalać zdarzenia Hit, do których dostęp można uzyskać za pośrednictwem blueprintów lub kodu w celu wykrywania kolizji. Jest to podobne do obsługi kolizji w Unity przy użyciu OnCollisionEnter w C# lub skryptowaniu wizualnym.
Więcej informacji na temat konfigurowania kolizji dla aktorów można znaleźć w sekcji dokumentacji:Collision (Kolizja).
Tworzenie śladów za pomocą Raycastu
System Chaos Physics oferuje różne metody śledzenia. Ślady oferują metodę gromadzenia informacji zewnętrznych do aktora. Informacje te można następnie wykorzystać w czasie wykonywania programu w celu reagowania na zmieniające się warunki rozgrywki.
Podczas pracy ze śladami dostępne są różne opcje. Można używać różnych typów śladów, takich jak linia, kula, prostokąt lub kapsuła. Można również śledzić pojedyncze lub wielokrotne trafienia, a nawet śledzić określone typy obiektów lub kanały kolizji.
System śledzenia w Unreal jest podobny do systemu raycastingu w Unity.
Więcej informacji na temat śledzenia można znaleźć w sekcji dokumentacji: Tworzenie śladów za pomocą Raycastu.
Odzież Chaos
Odzież Chaos zapewnia dokładną i wydajną symulację tkaniny w grach i przygodach w czasie rzeczywistym. System jest wyposażony w rozbudowane elementy sterujące oraz reakcje fizyczne, takie jak wiatr, które pozwalają osiągnąć określony efekt artystyczny. Ponadto Odzież Chaos posiada potężny system napędu animacji, który deformuje siatkę tkaniny, dopasowując ją do animowanej siatki szkieletowej obiektu nadrzędnego.
Odzież Chaos zapewnia również symulację tkanin opartą na uczeniu maszynowym. Ten system zapewnia wyższą wierność symulacji w porównaniu z tradycyjnym modelem opartym na fizyce dzięki zastosowaniu trenowanych zestawów danych, które można wykorzystywać w czasie rzeczywistym do osiągania wyników wcześniej możliwych tylko w drodze symulacji offline.
Więcej informacji na temat odzieży Chaos można znaleźć w sekcji dokumentacji: Chaos Cloth (Odzież Chaos).
Pojazdy Chaos
Pojazdy Chaos to niewielkich rozmiarów system Unreal Engine do przeprowadzania symulacji fizyki pojazdów. Ten system zapewnia większą elastyczność użytkownikowi poprzez symulację dowolnej liczby kół w pojeździe. Można też skonfigurować dowolną liczbę biegów do przodu i do tyłu, aby jeszcze bardziej dostosować urządzenie do swoich potrzeb.
Pojazdy Chaos można skonfigurować do złożonych symulacji pojazdów. Można dodać dowolną liczbę powierzchni aerodynamicznych, które zapewniają siłę docisku lub siłę nośną w określonych miejscach podwozia. Mogą one symulować spojlery samochodowe, a nawet skrzydła lub stery samolotów. Każdą z tych powierzchni sterujących można manipulować za pomocą przechylenia, pochylenia i odchylenia.
Więcej informacji na temat pojazdów Chaos można znaleźć w sekcji dokumentacji: Chaos Vehicles (Pojazdy Chaos).
Symulacje płynów
Unreal Engine zawiera wbudowany zestaw narzędzi umożliwiających symulacje efektów płynu 2D i 3D w czasie rzeczywistym. Systemy te wykorzystują oparte o fizykę metody symulacji w celu wytworzenia realistycznych efektów takich zjawisk, jak ogień, dym, chmury, rzeki, rozpryski oraz fale rozbijające się o plażę.
Zestaw narzędzi opracowano w taki sposób, by był otwartą platformą do eksperymentowania poprzez wykorzystanie etapów symulacji, modułów wielokrotnego użytku oraz niezawodnych interfejsów danych.
Więcej informacji na temat symulacji płynów można znaleźć w sekcji dokumentacji: Fluid Simulation (Symulacje płynów).
Sztuczna inteligencja
Unreal Engine oferuje szereg systemów służących do tworzenia agentów SI (NPC) i zarządzania nimi podczas rozgrywki.
Symulowanie agentów SI na dużą skalę
MassEntity to framework zorientowany na rozgrywkę, zaprojektowany z myślą o wysokiej wydajności i symulacjach zorientowanych na dane. MassEntity można używać do efektywnego renderowania dużej liczby obiektów na ekranie i zarządzania nimi.
Więcej informacji na ten temat można znaleźć w sekcji dokumentacji: MassEntity.
Symulowanie zachowań agenta SI
Unreal Engine oferuje funkcjonalność agenta SI w następujących kategoriach: percepcja i bodźce, podejmowanie decyzji, nawigacja w świecie i interakcje z otoczeniem. Każda kategoria zawiera co najmniej jeden system, który pomoże użytkownikowi osiągnąć pożądane rezultaty.
Postrzeganie i bodźce
W obszarze postrzegania i bodźców Unreal Engine oferuje funkcje wykrywania pionka, emitera szumu pionka oraz komponenty AI Perception.
AI Perception można używać do definiowania i obsługi zmysłów, do których ma dostęp agent SI. Komponent AI Perception to typ komponentu, który może być dodawany do skryptu Blueprintu AIController pionka z okna komponentów i służy do definiowania zmysłów do nasłuchiwania, parametrów tych zmysłów oraz sposobu reagowania po wykryciu zmysłu.
Można także użyć kilku różnych funkcji, aby uzyskać informacje o tym, co zostało wykryte, jacy aktorzy zostali wykryci, a nawet wyłączyć lub włączyć określony typ zmysłu.
Więcej informacji na ten temat można znaleźć w sekcji dokumentacji: AI Perception (Percepcja SI).
Podejmowanie decyzji
W obszarze podejmowania decyzji Unreal Engine oferuje drzewa zachowań i drzewa stanów (State Tree). Te zasoby zawierają logikę, którą agenci SI wykorzystują do podejmowania decyzji podczas rozgrywki.
Zasoby drzewa zachowań zawierają graf decyzyjny z różnymi węzłami zawierającymi logikę, którą może wykonać agent SI. Drzewo zaczyna się od komponentu głównego i wykonuje określone węzły na podstawie danych przechowywanych w zasobie tablicy lub innych danych pochodzących z samego agenta. Drzewa zachowań oferują intuicyjny sposób wizualizacji procesu podejmowania decyzji przez agentów SI i mogą być konfigurowane tak, aby były elastyczne i wielokrotnego użytku.
Więcej informacji na ten temat można znaleźć w sekcji dokumentacji: Behavior Trees (Drzewa zachowań).
StateTree – drzewo stanów – to uniwersalny hierarchiczny automat stanów, łączący w sobie selektory z drzew zachowań ze stanami i przejściami z automatów stanów. Drzewa StateTree można używać do tworzenia wysoce efektywnej logiki, która zachowuje elastyczność i zorganizowaną strukturę.
Więcej informacji na ten temat można znaleźć w sekcji dokumentacji: State Tree (Drzewa stanów).
Nawigacja po świecie
W obszarze nawigacji po świecie Unreal Engine oferuje w pełni funkcjonalny system nawigacji dla agentów SI.
System nawigacji zapewnia agentom SI w projekcie wydajne funkcje wytyczania ścieżek. W poziomie można utworzyć aktora siatki nawigacji, aby zbudować i zaplanować nawigację dla agentów. Można również użyć opcji Navigation Mesh Modifiers (Modyfikatory siatki nawigacyjnej) i Niestandardowe obszary nawigacji, aby wpłynąć na koszt przemieszczania się po określonych obszarach, aktywnie wpływając na wybór optymalnej ścieżki nawigacyjnej agentów SI do celu.
Ponadto system jest wyposażony w dwa systemy unikania – Reciprocal Velocity Obstacles oraz Detour Crowd Manager, które pomagają agentom SI unikać dynamicznych elementów otoczenia i siebie nawzajem.
Więcej informacji na ten temat można znaleźć w sekcji dokumentacji: Navigation System (System nawigacji).
Interakcje z otoczeniem
W obszarze interakcji z otoczeniem Unreal Engine oferuje obiekty inteligentne.
Smart Objects, czyli inteligentne obiekty, to obiekty umieszczane w obrębie poziomu, z którymi mogą wchodzić w interakcje agenci SI oraz gracze. Obiekty te zawierają całość informacji potrzebnych do takich interakcji. Inteligentne obiekty stanowią część globalnej bazy danych i korzystają z przestrzennej struktury partycji. Oznacza to, że mogą one być przedmiotem kwerend w trakcie wykonywania poprzez wykorzystanie filtrów, np. obszaru wyszukiwania wokół agenta czy tagów rozgrywki.
Więcej informacji na ten temat można znaleźć w sekcji dokumentacji: Smart Objects (Obiekty inteligentne).
Nauka maszynowa
Aby tworzyć bardziej złożone rozwiązania SI, w których agenci SI mogą się uczyć i dostosowywać, Unreal Engine oferuje wtyczkę Agenci uczenia, którą można wykorzystać do szkolenia agentów SI za pomocą algorytmów takich jak uczenie się przez wzmacnianie. W Unreal Engine jest to odpowiednik pakietu MLAgents w Unity.
Więcej informacji na ten temat można znaleźć w sekcji dokumentacji: Learning Agents (Agenci uczenia).
Animowanie postaci i obiektów
Blueprinty animacji w Unreal Engine są odpowiednikiem Animator Controllers w Unity. Blueprinty animacji zawierają graf animacji oraz standardowy graf zdarzeń blueprintu, umożliwiając definiowanie parametrów oraz tworzenie skryptów złożonych zachowań i logiki animacji w jednym miejscu.
Więcej informacji na ten temat można znaleźć w sekcji dokumentacji: Animation Blueprints (Blueprinty animacji). w dokumentacji.
Jeśli użytkownik woli organizować animacje za pomocą maszyny stanu, może utworzyć węzły State Machine w grafie animacji, a następnie kliknąć je dwukrotnie, aby otworzyć ich specjalistyczne podgrafy. Następnie użytkownik może tworzyć nowe stany, kanały i aliasy stanów oraz tworzyć połączenia między nimi. Każdy stan zawiera własny graf animacji, który kontroluje wyjście stanu, a połączenia kontrolują przejścia między nimi.
Więcej informacji na ten temat można znaleźć w sekcji dokumentacji: State Machines (Maszyny stanów).
Przestrzenie mieszania definiują graf animacji, które są mieszane na podstawie parametrów. Na przykład przestrzeń mieszania 2D może mieszać animacje chodzenia do przodu, do tyłu, w lewo i w prawo w oparciu o prędkość i kierunek postaci.
Więcej informacji na ten temat można znaleźć w sekcji dokumentacji: Blend Spaces (Przestrzenie mieszania).
Unity używa narzędzia Timeline do animowania sekwencji filmowych. Edytor Sequencer w Unreal Engine to odpowiednik Timeline w Unity. Zapewnia interfejs podobny do edytora nieliniowego, służący do koordynowania animacji, efektów i ruchów kamery. Za pomocą Sequencera można definiować sekwencje poziomu, które reprezentują sekwencje filmowe lub samodzielne animacje postaci i obiektów.
Więcej informacji na temat tworzenia sekwencji można znaleźć w sekcji dokumentacji: Sequencer Editor (Edytor Sequencer).
Unreal Engine zawiera również system Control Rig, którego można używać do rigowania siatek szkieletowych do animacji bezpośrednio w edytorze. W Control Rig można tworzyć i ustawiać niestandardowe elementy sterujące dla postaci, animować w Sequencerze oraz korzystać z szeregu innych narzędzi do animacji, aby wspomóc proces animowania.
Więcej informacji na temat korzystania z riggingu w Unreal Engine można znaleźć w sekcji dokumentacji: Control Rig.
Aby przechwycić i wyeksportować sekwencje obrazów i filmów w Unreal Editor, można użyć funkcji Kolejka renderowania filmów. Jest to odpowiednik narzędzia Recorder w Unity. Kolejka renderowania filmów może służyć do renderowania i eksportowania sekwencji klatka po klatce, obrazów z gry lub nagrań wideo bez utraty jakości.
Więcej informacji na temat Kolejki renderowania filmów można znaleźć w sekcji dokumentacji: Rendering High Quality Frames with Movie Render Queue (Renderowanie wysokiej jakości klatek za pomocą kolejki renderowania filmów).
Struktura rozgrywki
Framework rozgrywki w Unreal Engine jest zbiorem klas, które zapewniają modułową podstawę, na której można budować swoją rozgrywkę, takie jak tryb gry, stan gracza, kontrolery, pionki i kamery.
W Unity podobne struktury są obsługiwane przez komponenty takie jak skrypty CharacterController i MonoBehaviour dołączone do GameObjects w celu zdefiniowania zachowań.
Więcej informacji na temat wykorzystania frameworku rozgrywki można znaleźć w sekcji dokumentacji: Gameplay Framework (Framework rozgrywki).
Dane wejściowe
System Enhanced Input został zaprojektowany do obsługi danych wprowadzanych przez graczy za pomocą różnych urządzeń, w tym klawiatur, gamepadów i ekranów dotykowych.
Można zdefiniować działania wejściowe (dla działań takich jak skakanie i strzelanie) oraz osie wejściowe (dla ciągłych działań wejściowych, takich jak ruch lub obrót kamery). Te działania i osie można przypisać do określonych klawiszy, przycisków, a nawet gestów dotykowych, co zapewnia wysoki stopień dostosowania.
Aby rozpocząć korzystanie z systemu Enhanced Input, użytkownik może utworzyć zasoby Enhanced Input w Content Browser (przeglądarce zawartości), naciskając przycisk + Add (+ Dodaj) i wybierając opcję Input (Dane wejściowe). Te zasoby można skonfigurować w celu zdefiniowania przypisania klawiszy i danych wprowadzanych dla gry.
Można powiązać te działania i osie ze zdarzeniami wprowadzania danych przez gracza w logice gry. System może być używany do zarządzania różnymi schematami wprowadzania danych (np. klawiatura vs. gamepad) i umożliwia definiowanie złożonych schematów sterowania.
Deweloperzy Unity mogą znać system Unity Input System, który działa podobnie do systemu Enhanced Input w Unreal Engine. In Unreal Engine, Enhanced Input is the standard for complex input handling or runtime control remapping.
Więcej informacji na temat definiowania danych wejściowych w projekcie można znaleźć w sekcji dokumentacji: Enhanced Input (Rozszerzone dane wejściowe).
Tworzenie i projektowanie świata
Funkcje tworzenia światów w Unreal Engine są podzielone na różne tryby edytora w oknie wizualizacji poziomu.
Modelowanie i prototypowanie poziomów
Tryb modelowania zapewnia podobną funkcjonalność do rozszerzenia ProBuilder z Unity, oferując rozbudowane narzędzia do edycji wierzchołków, krawędzi, powierzchni i UV, podobne do tych używanych w programie do modelowania.
Tryb modelowania można aktywować, klikając menu rozwijane Tryby w oknie wizualizacji i wybierając opcję Modelowanie.
Więcej informacji na temat modelowania w Unreal Engine można znaleźć w sekcji dokumentacji: Modeling Mode Overview (Omówienie trybu modelowania).
Tworzenie terenu / krajobrazu
Tryb krajobrazu zapewnia funkcjonalność podobną do systemu Terrain w Unity. Tryb krajobrazu można wykorzystać do stworzenia krajobrazu i nadania mu kształtu za pomocą zestawu narzędzi podobnych do systemu Terrain w Unity, takich jak podnoszenie, obniżanie i spłaszczanie.
Tryb krajobrazu można aktywować, klikając menu rozwijane Tryby w oknie wizualizacji i wybierając opcję Krajobraz.
Więcej informacji na ten temat można znaleźć w sekcji dokumentacji: Landscape Quick Start Guide (Skrócony poradnik – krajobraz). Dodatkowo warto zapoznać się z dokumentacją Landscape Outdoor (Teren zewnętrznego krajobrazu), aby dowiedzieć się więcej o tworzeniu terenu dla dużych, otwartych środowisk zewnętrznych.
Listowie
Tryb roślinności przypomina system Terrain w Unity, służący do dodawania roślinności i zarządzania nią. W trybie roślinności można malować drzewa, trawę i inne rośliny w poziomie, dostosowując takie właściwości jak gęstość, wysokość i obrót każdego elementu.
Kluczową różnicą w stosunku do systemu Terrain w Unity jest to, że trybu roślinności w Unreal Engine można używać do malowania roślinności na dowolnym obiekcie, a nie tylko na krajobrazie. Ten tryb zapewnia intuicyjny sposób wypełniania świata naturalnymi elementami, jednocześnie dając użytkownikowi kontrolę nad tym, jak będą one wyglądały w krajobrazie lub na dowolnej powierzchni w poziomie.
Tryb roślinności można aktywować, klikając menu rozwijane Tryby w oknie wizualizacji i wybierając opcję Roślinność.
Więcej informacji na ten temat można znaleźć w sekcji dokumentacji: Foliage mode (Tryb roślinności). Dodatkowo dokumentacja Open World Tools (Narzędzia otwartego świata) zawiera więcej informacji na temat proceduralnego wypełniania dużych przestrzeni zasobami siatki statycznej w celu tworzenia naturalnie wyglądających i żywych przestrzeni zewnętrznych.
Procedural Content Generation (PCG)
Framework Procedural Content Generation (PCG) to zestaw narzędzi do tworzenia treści proceduralnych w Unreal Engine. PCG może być wykorzystywane przez artystów i projektantów do tworzenia szybkich, iteracyjnych narzędzi i treści o dowolnym stopniu złożoności, od narzędzi do obsługi zasobów, takich jak generowanie budynków lub biomów, aż po całe światy.
PCG został zaprojektowany z myślą o rozszerzalności i interaktywności, zapewniając integrację z istniejącymi potokami tworzenia światów, skutecznie zacierając granice między proceduralnymi i tradycyjnymi procesami pracy.
Więcej informacji na temat tworzenia treści proceduralnych w Unreal Engine można znaleźć w sekcji dokumentacji: Procedural Content Generation Framework.
System wody
System wodny można wykorzystać do tworzenia rzek, jezior i oceanów, które współdziałają z terenem krajobrazu przy użyciu procesu pracy opartego na krzywych sklejanych.
Deweloperzy Unity mogą znać system wody dostępny dla projektów korzystających z HDRP. System wody w Unreal Engine można skalować, aby dopasować go do projektów każdej wielkości, a ponadto obsługuje on wszystkie platformy.
Więcej informacji na temat włączania wody w poziomach można znaleźć w sekcji dokumentacji: Water System (System wody).
Efekty wizualne i renderowanie
Unity korzysta z systemu Scriptable Render Pipeline (SRP) i udostępnia szablony, takie jak High Definition Render Pipeline (HDRP). Unreal Engine posiada ujednolicony, solidny i wysoce konfigurowalny proces renderowania. To znaczy, że obsługa urządzeń, funkcjonalność i zestaw funkcji nie są rozdzielone między szablonami.
W Unreal Engine można użyć ustawień skalowalności, aby zmienić wierność wizualną swojej gry. Więcej informacji na ten temat można znaleźć w sekcji dokumentacji: Scalability Reference (Dokumentacja dotycząca skalowalności).
Źródła światła
Proces tworzenia oświetlenia w Unreal Engine jest podobny do tego w silniku Unity. Użytkownik może dodawać lub usuwać światła z poziomów i ma do dyspozycji różne rodzaje źródeł światła, takie jak światła kierunkowe, punktowe i reflektorowe.
Przechodząc do menu Utwórz > Światło, użytkownik może wybrać kształt źródła światła, które chce dodać do poziomu. Spowoduje to utworzenie nowego obiektu. Więcej informacji na temat typów oświetlenia i sposobów ich użycia można znaleźć w sekcji dokumentacji: Light Types and Their Mobility (Rodzaje świateł i ich mobilność).
światło nieba.
Światło nieba wychwytuje odległe części poziomu i stosuje je do sceny jako światło. Oznacza to, że wygląd nieba i jego oświetlenie / odbicia będą do siebie pasować, nawet jeśli niebo pochodzi z atmosfery, warstw chmur na szczycie skyboxa lub z odległych gór.
Nowy poziom w Unreal Engine domyślnie zawiera folder Oświetlenie w panelu Outliner. Ten folder zawiera domyślny zestaw obiektów oświetlenia, takich jak DirectionalLight, ExperimentalHeightFog i SkyLight. Więcej informacji na ten temat można znaleźć w sekcji dokumentacji: Sky Lights (Światła nieba).
Oświetlenie globalne i odbicia Lumen
Lumen to w pełni dynamiczny system globalnego oświetlenia i odbić w Unreal Engine, zaprojektowany z myślą o urządzeniach nowej generacji. Jest to domyślny system globalnego oświetlenia i odbić. Oznacza to, że światło odbija się i oddziałuje z powierzchniami, tworząc natychmiastowe, naturalnie wyglądające oświetlenie bez konieczności wypalania oświetlenia przy użyciu wstępnie obliczonych procesów.
Więcej informacji na temat korzystania z dynamicznego oświetlenia globalnego i odbić w projekcie można znaleźć w sekcji dokumentacji: Lumen Global Illumination and Reflections (Oświetlenie globalne i odbicia Lumen).
Przetwarzanie końcowe
W Unity przetwarzanie końcowe odbywa się za pomocą Volumes. Po utworzeniu GameObject za pomocą komponentu Volume można przypisać profil przetwarzania końcowego i określić, czy ma on być globalny, czy lokalny.
W Unreal Engine przetwarzanie końcowe odbywa się głównie za pomocą umieszczonych wolumenów. Można je jednak stosować również w innych przypadkach. Ogólnie rzecz biorąc, przetwarzanie końcowe działa w podobny sposób, umożliwiając zastąpienie wartości domyślnych.
| Sposoby stosowania przetwarzania końcowego | Opis |
|---|---|
Ustawienia projektu | Domyślnie Unreal Engine stosuje do gry zestaw efektów przetwarzania końcowego w oparciu o ustawienia skalowalności. Te ustawienia są stosowane w całym projekcie, chyba że zostaną zastąpione. Domyślne efekty przetwarzania końcowego, które mają zastosowanie globalnie do projektu, można zmienić, przechodząc do menu Ustawienia projektu > Silnik > Renderowanie. |
Komponent kamery | Każdy komponent kamery ma własny zestaw ustawień przetwarzania końcowego, które można zastąpić. Działają one dla poszczególnych kamer, co oznacza, że kamery, które nie zastępują żadnych ustawień, będą stosować domyślne efekty zdefiniowane w ustawieniach projektu lub wartości zastosowane do umieszczonego wolumenu. |
Wolumin przetwarzania końcowego | Wolumen przetwarzania końcowego można dodać do poziomu, przechodząc do menu Dodaj > Wolumen. Tworzy to nowego aktora poziomu, który zastępuje domyślne ustawienia przetwarzania końcowego, podobnie jak komponent Volume w Unity. Wolumeny te mogą stosować przetwarzanie końcowe, gdy kamera gracza znajduje się w wolumenie, lub mogą stosować dowolne zastąpienia globalnie dla całego poziomu, gdy włączone jest ustawienie Nieskończony zasięg (bez ograniczeń). Działa to podobnie jak opcja Global Mode w frameworku Volume w Unity. |
Materiały
Unity używa Shader Graph do definiowania nowych shaderów. Odpowiednikiem Unreal Engine jest system materiałów. Shadery i materiały w Unreal Engine różnią się od siebie w następujący sposób:
Shader to konstrukcja niskiego poziomu w języku C++, która definiuje podstawowy model cieniowania, taki jak Oświetlone, Nieoświetlone, Przezroczysta powłoka lub Włosy. Określa to dane wejściowe dla shadera, takie jak Metaliczne lub Przezroczyste, oraz sposób, w jaki reagują one na światło.
Materiał to logiczny graf wejść tekstur, formuł i instrukcji wprowadzanych do shadera, reprezentujący właściwości powierzchni pojedynczego obiektu i konkretne wyrażenie tego shadera.
Aby utworzyć materiał, kliknij prawym przyciskiem myszy w dowolnym miejscu w przeglądarce zawartości i wybierz opcję Create Basic Asset > Materials (Utwórz podstawowy zasób > Materiały). Edytor materiałów wyświetla pusty graf z węzłem Materiał główny.
Kliknij węzeł Materiał główny, aby wyświetlić jego właściwości w panelu szczegółów. Za pomocą ustawienia Model cieniowania można wybrać różne shadery.
W sytuacjach, gdy użytkownik chce zastosować unikalny materiał do więcej niż jednej siatki, zalecamy użycie opcji Instancje materiału. Są to sparametryzowane wersje materiałów, które można wykorzystać do stworzenia różnorodności i niepowtarzalności bez ponoszenia dodatkowych kosztów.
Każda instancja materiału używa materiału lub innej instancji materiału jako materiału nadrzędnego (lub materiału „głównego”) do wprowadzania zmian. Wszelkie węzły, które zostały sparametryzowane w materiale głównym, są dostępne w Edytorze materiałów instancjonowanych. Te uwidocznione parametry można wykorzystać do tworzenia nieskończonej liczby wariantów na podstawie jednego materiału źródłowego, aby uzyskać różne kolory, zastosować różne tekstury, zwiększyć lub zmniejszyć poziom szczegółowości i nie tylko.
Korzystanie z instancji materiałów jest bardziej wydajne, gdy używa się materiału nadrzędnego i materiałów podrzędnych do uzyskania różnorodności.
Aby utworzyć instancję materiału, należy kliknąć prawym przyciskiem myszy materiał w Content Browser (przeglądarce zawartości), a następnie kliknąć opcję Create Material Instance (Utwórz instancję materiału).
Więcej informacji na temat materiałów i instancji materiału można znaleźć w sekcjach dokumentacji: Materials (Materiały) oraz Creating and Using Material Instances (Tworzenie i używanie instancji materiałów). Ponadto więcej informacji na temat edytora materiałów można znaleźć w sekcji dokumentacji: Material Editor Guide (Przewodnik po edytorze materiałów).
Nanite
Nanite to zwirtualizowany system geometrii Unreal Engine, który wykorzystuje wewnętrzny format siatki i technologię renderowania do renderowania szczegółów w skali pikseli i dużej liczby obiektów. Skupia się wyłącznie na szczegółach, które można dostrzec, i niczym więcej.
Nanite zapewnia wiele korzyści dla projektów, np. wielokrotny wzrost złożoności geometrii, większą liczbę trójkątów i obiektów niż było to dotychczas możliwe w czasie rzeczywistym. Budżety klatek nie są już ograniczane przez liczbę wieloboków, polecenia rysowania lub wykorzystanie pamięci siatki.
Więcej informacji na temat Nanite i sposobu jego wykorzystania w projekcie można znaleźć w sekcji dokumentacji: Nanite Virtualized Geometry (Wirtualizowana geometria Nanite).
Audio
Unity korzysta z frameworku źródeł dźwięku, w którym każde źródło dźwięku w świecie gry ma przypisany jeden głos. Unity używa mikserów do stosowania ustawień kanałów audio do tych źródeł.
Wtyczka MetaSounds w Unreal Engine to system generowania dźwięku, który można wykorzystać do pełnej kontroli nad grafem przetwarzania sygnałów cyfrowych (DSP) w środowisku wizualnego skryptowania podobnym do Blueprintu.
Więcej informacji na ten temat można znaleźć w sekcji dokumentacji: MetaSounds.
Do miksowania dźwięku zalecamy użycie wtyczki Modulacja audio, która zapewnia dynamiczną kontrolę nad parametrami audio, takimi jak głośność i wysokość dźwięku, z poziomu Blueprintu lub systemów komponentów Unreal Engine.
Więcej informacji na ten temat można znaleźć w sekcji dokumentacji: Audio Modulation Overview (Przegląd modulacji audio).
Sygnały dźwiękowe to obiekty audio, które łączą złożone zadania projektowania dźwięków w grafie węzła. Służą do dynamicznej zmiany części projektu efektu dźwiękowego poprzez rozmieszczanie i modyfikowanie węzłów dźwięku, tworząc złożone wyjście audio.
Więcej informacji na temat sygnałów dźwiękowych można znaleźć w sekcji dokumentacji: Sound Cue Reference (Dokumentacja dotycząca sygnałów dźwiękowych).
Szczegółowy przegląd systemów audio Unreal Engine znajduje się na stronie Working with Audio (Praca z dźwiękiem).
Efekty wizualne
Systemy cząsteczkowe Niagara w Unreal Engine to odpowiednik Particle Systems i VFX Graph w Unity. Można tworzyć emitery Niagara, aby budować emitery pojedynczych cząstek, lub systemy Niagara, aby łączyć wiele emiterów w bardziej złożony efekt wizualny. Podczas tworzenia nowego systemu lub zasobu emiterów można użyć istniejącego emitera Niagara jako szablonu.
Graf przeglądu systemu edytora Niagara zapewnia interfejs do edycji cząstek podobny do edytora systemu cząsteczkowego Unity. Emitery i systemy Niagara składają się z modułowych komponentów, które mogą obsługiwać szeroki zakres zachowań lub zdarzeń. Każdy dodany moduł zwiększa złożoność systemu cząsteczkowego i dodaje nowe parametry do konfiguracji.
Więcej informacji na ten temat można znaleźć w sekcji dokumentacji: Creating Visual Effects (Tworzenie efektów wizualnych).
Za pomocą wtyczki Płyny Niagara można dodać do swoich projektów dym, ogień, wybuchy, wodę, rozpryski i inne fizycznie realistyczne efekty.
Więcej informacji na ten temat można znaleźć w sekcji dokumentacji: Niagara Fluids (Płyny Niagara).
Interfejs użytkownika
Edytor Unreal Motion Graphics (UMG) w Unreal Engine jest odpowiednikiem zestawu UI Toolkit i biblioteki komponentów UI w Unity. UMG udostępnia edytor WYSIWYG do tworzenia UI z różnych widżetów, w tym przycisków, elementów tekstowych oraz licznych kontenerów i siatek.
Aby utworzyć nowy UI, należy utworzyć nowy Blueprint widżetów w Content Browser (przeglądarce zawartości). Po otwarciu Blueprintu widżetów otwiera się edytor UMG i wyświetla pusta siatka z panelem widżetów Paleta po lewej stronie oraz panelem szczegółów po prawej stronie. Przycisk w prawym górnym rogu przełącza między widokiem Kreator a Graf.
Widok Kreator służy do rozmieszczania widżetów w Blueprincie widżetów. Należy kliknąć i przeciągnąć widżety z panelu Paleta do grafu, a następnie użyć opcji Hierarchia, aby zmienić kolejność rysowania. Widżety znajdujące się niżej na liście wyświetlane są na górze. Należy zaznaczyć pole wyboru Jest zmienną w panelu szczegółów widżetu, aby udostępnić go skryptowi UI.
Jak sama nazwa wskazuje, każdy utworzony Blueprint widżetów może zostać użyty jako widżet w innych Blueprintach widżetów. Pojawiają się one w palecie w kategorii Utworzone przez użytkownika. Następnie Blueprintów widżetów można używać zarówno dla całych menu i interfejsów, jak i dla komponentów wielokrotnego użytku, takich jak przyciski lub paski postępu.
Więcej informacji na ten temat można znaleźć w sekcji dokumentacji: UMG UI Designer Quick Start Guide (Szybki start – UMG UI Designer). Ponadto informacje na temat tworzenia i wyświetlania UI można znaleźć w sekcji dokumentacji: Creating User Interfaces (Tworzenie interfejsów użytkownika).
Zapisywanie i ładowanie
Możliwość zakończenia gry i wznowienia jej od miejsca, w którym gracz ją przerwał, jest częścią większości nowoczesnych gier. W zależności od rodzaju tworzonej gry do jej zapisania potrzebnych może być tylko kilka podstawowych informacji, takich jak ostatni punkt kontrolny, do którego dotarł gracz, lub bardziej szczegółowych danych.
Deweloperzy Unity mogą znać PlayerPref, który służy do przechowywania preferencji graczy między sesjami gry, lub różne pakiety Asset Store, które zapewniają funkcje zapisywania i wczytywania. Te funkcje są wbudowane w Unreal Engine.
Więcej informacji na temat dodawania funkcji zapisywania i wczytywania sesji gry w Unreal Engine można znaleźć w sekcji dokumentacji: Saving and Loading Your Game (Zapisywanie i wczytywanie gry).
Porównanie najważniejszych funkcji silników
W tej sekcji przedstawiono ogólny przegląd nazw i zastosowań niektórych funkcji i narzędzi w silnikach Unity i Unreal Engine.
| Cel | Unreal Engine | Unity |
|---|---|---|
| Interfejs użytkownika (UI) | ||
Tworzenie UI | Unreal Motion Graphics (UMG) | UI Toolkit |
| Budowanie świata | ||
Tworzenie krajobrazów o różnych kształtach | Tryb krajobrazu | System Terrain |
Dodawanie roślinności do krajobrazu | Tryb roślinności | Roślinność systemu Terrain |
Budowanie konstrukcji szkieletowych poziomu | Tryb modelowania | ProBuilder |
Tworzenie efektów powierzchni wody i efektów podwodnych | System wody | System wody |
Proceduralne generowanie światów i narzędzi | Procedural Content Generation (PCG) | Narzędzia innych firm |
| Optymalizacja | ||
Pakiet narzędzi do profilowania służący do identyfikacji problemów związanych z wydajnością | Śledzenie | Profiler |
| Rozgrywka | ||
Obsługa danych wprowadzanych przez gracza | System Enhanced Input | System Input |
Skryptowanie wizualne | Edytor Blueprint Editor | Visual Scripting (dawniej: Bolt) |
Obsługiwane języki skryptowe i programowania | C++ (programowanie) | C# (skryptowanie) |
Silnik fizyki | Fizyka systemu Chaos | NVIDIA PhysX |
Zapisywanie i ładowanie danych gry | Obiekty SaveGame | PlayerPrefs / rozwiązania niestandardowe |
| Sztuczna inteligencja | ||
Maszyna stanów do tworzenia stanów SI | StateTree | Narzędzia innych firm |
Tworzenie obszarów, w których SI może się poruszać | System nawigacji | Siatka nawigacji |
| Animacja | ||
Obsługa danych animacji | Blueprinty animacji | Animator Controller |
Tworzenie sekwencji animacji | Edytor Sequencer | Oś czasu |
Rigging postaci 3D | Kontrola szkieletu | Narzędzia innych firm |