Podsumowanie

Tworzenie i modyfikowanie materiałów

W programie Unreal Engine 5 możemy zaprojektować własny materiał. Prace nad nim rozpoczynamy od stworzenia nowego folderu w sekcji Content Browse. Nadajemy mu nazwę i wchodzimy do środka, klikamy prawym przyciskiem myszy i wybieramy New material.

Jeśli dwukrotnie klikniemy nowo utworzony element, otworzy się okno materiału. Widzimy w nim podgląd oraz wiele parametrów – nazwy części z nich są białe, co oznacza, że są dostępne, w przeciwieństwie do wyszarzonych.

Unreal Engine mamy do czynienia z graficznym interfejsem, niewymagającym od użytkowników pisania kodu. Korzystamy tu z Blueprint Visual Scripting, czyli system programowania typu przeciągnij i upuśćprzeciągnij i upuśćprzeciągnij i upuść. System ten w graficzny sposób przedstawienia funkcje, cechy i zależności między obiektami w grze. Wykorzystuje  węzły (ang. node) połączone na wykresach za pomocą kabli. Każdy stworzony komponent ma element przypominający znane z obwodów elektrycznych gniazdogniazdogniazdo, które można za pomocą kabla połączyć z gniazdem innego węzła. Aby usunąć istniejące połączenie, przytrzymujemy klawisz alt i klikamy kabel. Więcej na temat tego systemu przeczytasz w e‑materiale Blueprint – Unreal Engine, etap VIPddbNWsvGBlueprint – Unreal Engine, etap VI.

RSFi9SmDUpiwr
Tworzenie połączeń między komponentami.
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

Parametry materiałów

Program Unreal Engine 5 umożliwia zastosowanie wielu parametrów materiału, omówimy kilka najważniejszych.

Base Color

Kolor wybieramy, używając wektorawektorwektora (Constant3Vector) – czyli zmiennej, którą określamy za pomocą trzech wartości liczbowych. Zmieniając te wartości, ustalamy kolor materiału.

Constant3Vector przechowuje 3 wartości – R (ang. red – czerwony), G (ang. green – zielony) i B (ang. blue – niebieski), które są składową każdego koloru wyświetlanego na ekranie (więcej o tym możesz przeczytać między innymi w e‑materiale Grafika rastrowa – barwy i przygotowanie do drukuPtsGagXRAGrafika rastrowa – barwy i przygotowanie do druku).

Metallic

Metaliczności przyjmuje wartość skalarną z zakresu od 0 do 1 (skalarskalarskalar, w przeciwieństwie do wektora, przyjmuje tylko jedną wartość liczbową). Aby zastosować metaliczność, potrzebujemy komponentu ScalarParameter, który odpowiada właśnie za wartości skalarne. Podpięcie go do parametru Metallic pozwoli edytować metaliczność materiału.

Roughness

Jest to parametr odpowiadający za szorstkość, chropowatość materiału. Ustawiając wartość 0, otrzymamy perfekcyjnie gładki, lustrzany metal. Natomiast przy wartości 1 zobaczymy, że faktura elementu jest szorstka i nie odbijają się od jego powierzchni refleksy światła. Do edycji tego parametru również używamy komponentu ScalarParameter.

Dodawanie tekstury

Aby dodać teksturę, w sekcji Content Browser wyszukujemy folderu StarterContent, a w nim Textures i z wielu dostępnych opcji wybieramy odpowiednią, np. rdzę. Przeciągając do okna edytora, umieszczamy komponent tekstury. Podpinamy parametr Base Color do wartości RGB tekstury.

Aby dodać teksturze głębię i fakturę, zastosujemy mapę normalnychmapa normalnychmapę normalnych, którą łączymy z parametrem Normal.

Chcąc zmodyfikować wygląd materiału w taki sposób, że tylko częściowo pokryty będzie on rdzą, wyszukujemy w obszarze z teksturami elementu o nazwie Perlin Noise.

Dodajemy węzeł LinearInterpolate, klikając prawym przyciskiem myszy i wybierając właściwą pozycję z menu.

R1R4XStcsMQQr
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

Łączymy ten komponent z wektorem koloru oraz teksturą rdzy. Do wejścia Alpha podpinamy komponent Perlin Noise. Wiążący te komponenty węzeł LinearInterpolate podpinamy do parametru Base Color.

R1aD0vS063Xel
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

W efekcie otrzymamy zardzewiały metal.

RXcn870Auu3lt
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

By zmienić poziom rdzewienia, możemy przeskalować wartość Perlin noise. Zastosujemy tu opcję Parameters, dzięki czemu będziemy w trakcie modyfikacji obserwować zmiany tekstury materiału na bieżąco. Korzystamy także z funkcji Multiply, która pomnoży wartość szumu przez parametr. Analogicznie postępujemy z mapą normalnych (ang. normal map). Gdy ustawimy już wszystkie parametry materiału, klikamy przycisk Apply i zapisujemy materiał.

Wykorzystywanie stworzonego materiału

Utworzony materiał możemy przeciągnąć na dowolny obiekt. Jeśli potrzebuje on kolejnych ulepszeń, możemy to zrobić. Aby edytować kolor, tworzymy nową instancję materiału, klikając prawym przyciskiem. W oknie instancji możemy zmieniać parametr rdzy. Ustawiamy dowolną wartość i klikamy Apply.

Nauczysz się

W kolejnych częściach serii dowiesz się, jak zaprojektować poziom gry. Dodasz do niego mapę, tereny i oświetlenie. W trakcie tworzenia gry dowiesz się, czym jest system Blueprint i jak za jego pomocą tworzyć obiekty i projektować ich interakcje z innymi elementami gry. Następnie dodasz do gry zróżnicowane przeszkody oraz reakcję postaci na zderzenie z nimi. Kolejno zaimplementujesz sekwencję zdarzeń, które muszą zajść po tym, jak bohater straci życie. Zaplanujesz także warunki zwycięstwa w grze. W ostatnim kroku poprawisz kilka funkcjonalności, a następnie wyeksportujesz grę tak, aby można ją było przekazać graczom.

Słownik

gniazdo
gniazdo

w programowaniu wykorzystanie gniazda (z j. ang. socket) to sposób połączenia siecią dwóch węzłów, by umożliwić między nimi wymianę informacji

mapa normalnych
mapa normalnych

z j. ang. normal map; specjalna tekstura stosowana do symulowania niewielkich wypukłości materiału

przeciągnij i upuść
przeciągnij i upuść

(ang. drag and drop) udogodnienie dostępne w graficznych interfejsach użytkownika polegające na wykonywaniu przez użytkownika określonych operacji na obiektach za pomocą pojedynczego ruchu myszą

RGB
RGB

model przestrzeni barw używany w grafikach wyświetlanych na monitorach; jego nazwa pochodzi od angielskich nazw kolorów: red (czerwony), green (zielony), blue (niebieski); zmieszanie wiązek światła w tych kolorach powoduje powstawanie kolorów pochodnych, np. połączenie zielonego i czerwonego daje barwę żółtą

skalar
skalar

zmienna wyrażana za pomocą jednej wartości liczbowej

wektor
wektor

zmienna wyrażana za pomocą trzech wartości liczbowych, wykorzystywany jest np. przy określaniu koloru w modelu barw RGB

Quixel Bridge
Quixel Bridge

platforma, na której znaleźć można gotowe do zaimportowania modele 3D