unityheader

TWORZENIE TERENU

W poprzedniej części poradnika omówiliśmy pokrótce wygląd interfejsu oraz poruszanie się po oknach programu. Teraz nadszedł czas, aby zakosztować wreszcie trochę praktyki.

Długo zastanawiałem się nad tym, czy zacząć od omawiania Unity pod względem tworzenia gier 3D, czy 2D. W końcu doszedłem do wniosku, że ciekawiej będzie uczyć się w przestrzeni trójwymiarowej.
Nie będę omawiał różnic między 2D oraz 3D, bo chyba każdy wie, czym się różnią. Muszę jednak napomnieć o różnym zachowaniu kamery w Unity w wypadku obydwu wymiarów. W przypadku 3D (2.1) kamera ustawiona będzie w trybie perspektywy. Oznacza to, że gameobjecty zamieszczone na scenie rysowane będą z zachowaniem perspektywy, czyli widoczna będzie głębia obrazu, dostrzec będzie można, że obiekty umieszczone są w różnej odległości od „naszego oka”, czyli kamery. Jeśli ustawilibyśmy kamerę w tryb 2D (2.2), będzie ona „patrzeć” bez uwzględniania odległości. To znaczy, że obiekty rysowane będą w takiej samej odległości od kamery. Kamera pracować będzie wtedy w trybie  izometrycznym.

kamera-perpective2.1 Obraz z kamery perspektywicznej

kamera-ortographic2.2 Obraz z kamery izometrycznej

My zajmiemy się teraz tworzeniem gry trójwymiarowej. W takiej produkcji bardzo ważną rolę, o ile nie najważniejszą, odgrywać będzie teren. I nie ważne, czy będzie to duży, otwarty świat w grze RPG, tor wyścigowy w jakiejś wyścigówce czy mapa, na której toczy się bitwa, teren jest głównym miejscem, gdzie rozgrywać się będzie akcja naszej gry.

Rozdział drugi – Niech stanie się ziemia

Tworzenie terenu w Unity jest możliwe dzięki wbudowanemu edytorowi terenu. Jest on bardzo prosty i intuicyjny. Aby stworzyć teren, wystarczy z menu „GameObject” znajdującego się na górnym pasku wybrać opcję „3D Object”, a następnie „Terrain” (2.3). Można również kliknąć PPM w oknie „Hierarchy” lub „Project” i wykonać te same kroki.

tworzenie-terenu012.3 Tworzenie terenu

Po wykonaniu powyższych czynności w oknie „Scene” pojawi się nasz teren (2.4). Jest to ten duży biały prostokąt. Nie wygląda zachęcająco, ale jest to na razie tylko surowe podłoże. To jak przekształcimy je później, zależy tylko od nas samych.

czysty-teren2.4 Czysty teren

Jeżeli wybierzemy teren, klikając na niego LPM, w oknie ,,Inspector” pojawią się opcje dotyczące tego terenu (2.5). „Transform” informuje nas o położeniu obiektu na scenie. „Terrain Collider” jest komponentem odpowiedzialnym między innymi za to, że możemy po terenie chodzić. Jest to możliwe dzięki Colliderowi (więcej o Colliderach dowiecie się później). No i został nam komponent „Terrain”, który jest głównym rdzeniem naszego terenu. To dzięki niemu będziemy mogli modelować naszą mapę, nakładać tekstury – ogólnie wszystko.

inspector-terenu2.5 Panel „Inspector” naszego terenu

W komponencie „Terrain” widnieje siedem okienek, narzędzi. Każde narzędzie odpowiedzialne jest za inną czynność, którą będziemy mogli wykonać na naszym terenie. Omówimy teraz każde z nich:
• „Raise / Lower Terrain” – jest to narzędzie umożliwiające bezpośrednie modelowanie terenu. Poprzez przytrzymanie LPM możemy podnieść teren i stworzyć dzięki temu góry i wzniesienia. Jeżeli chcielibyśmy obniżyć teren, wystarczy przytrzymać klawisz Shift i kliknąć LPM.
To narzędzie pozwala nam wybrać jeden z wielu dostępnych pędzli, którymi będziemy „malować” nasze góry. Poniżej mamy dwa suwaki. „Brush Size” odpowiada za zmianę wielkości pędzla. „Opacity” natomiast ustala siłę nacisku. Im wyższe „Opacity”, tym krócej będziemy musieli przytrzymać LPM, aby podnieść bądź obniżyć teren (2.6).

pierwsze-narzedzie2.6 Teren zmodyfikowany narzędziem „Raise / Lower Terrain

• „Paint Height” – działa podobnie jak poprzednie narzędzie z tą różnicą, że tutaj określamy maksymalną wysokość, na jaką możemy podnieść nasz teren. W okienku przy opcji „Height” wpisujemy wartość wyrażaną metrach. W tym momencie nie będziemy w stanie podnieść terenu wyżej, niż podaliśmy. Wciskając przycisk „Flatten”, wyrównujemy cały teren do podanej wysokości.

drugie-narzedzie2.7 Teren zmodyfikowany narzędziem  „Paint Height

• „Smooth Height” – narzędzie służące do wygładzania krawędzi. Jeżeli w jakimś miejscu wyszły nam za ostre krawędzie bądź chcemy uzyskać płynne wzniesienie, to narzędzie nada się doskonale.

ostre-krawedzie2.8 Teren przed wygładzeniem krawędzi

wygladzone-krawedzie2.9 Teren po wygładzeniu krawędzi

Zanim zaczniemy omawiać trzy kolejne opcje, czyli teksturowanie, umieszczanie drzew oraz detali, czyli narzędzie, które wykorzystują assety, musimy powiedzieć sobie skąd takie assety wziąć. W tym wypadku potrzebne nam będą tekstury terenu, czyli na przykład trawa, jakieś obiekty 3D, czyli drzewa oraz specjalne tekstury trawy. Jeżeli jesteś profesjonalnym grafikiem, to pewnie bez problemu będziesz w stanie sam zaopatrzyć się w potrzebne tekstury i modele. Ja niestety nie jestem i potrzebowałem małej pomocy w uzyskaniu odpowiednich materiałów.

Najprostszym sposobem na zaopatrzenie się w assety, potrzebne do stworzenia terenu jest sklep z takimi assetami, czyli Asset Store. Asset Store jest oficjalnym sklepem Unity oferującym przeróżne modele, tekstury, skrypty i inne pożyteczne rzeczy, które możemy użyć w naszych projektach. Nie martwcie się jednak, określenie sklep nie oznacza w tym przypadku, że za wszystko będziemy musieli płacić. Użytkownicy Unity umieszczają w Asset Store także darmowe materiały, które możemy legalnie pobrać i w pełni wykorzystywać.

Istnieją dwa sposoby, aby dostać się do Asset Store. Z poziomu przeglądarki internetowej wpisując adres https://www.assetstore.unity3d.com bądź bezpośrednio z Unity otwierając okno Asset Store. Aby to zrobić, wystarczy wybrać menu „Window” z górnego paska, a następnie kliknąć opcję „Asset Store”. Można także skorzystać ze skrótu klawiszowego „Ctrl + 9”.

Na chwilę obecną będziemy potrzebowali jakiejś paczki assetów, umożliwiającą ozdobę środowiska. W tym celu wpiszcie w wyszukiwarkę „Nature Starter Kit 2”. Pobierzcie ją, klikając przycisk „Download” (bądź „Open in Unity”, jeśli korzystacie z przeglądarki internetowej).
Po pobraniu paczki wyskoczy nam takie okienko (2.10). Możemy tutaj wybrać, jakie elementy chcemy zaimportować do naszego projektu. Ty po prostu kliknij „Import”, chcemy zaimportować wszystko.

import-assetow2.10 Okienko importu paczki assetów

Jeśli wszystko przebiegło zgodnie z planem to w oknie „Project” powinien się pojawić folder „NatureStarterKit2” zawierający wszystkie potrzebne modele i tekstury. Możemy wrócić do omówienia reszty narzędzi modelowania terenu:
• „Paint Texture” – narzędzie odpowiedzialne za nakładanie tektury na teren. Aby to zrobić, należy wybrać opcję „Edit Textures”, a następnie kliknąć „Add Texture” (2.11).

dodaj-teksture2.11 „Add Texture…”

Wtedy pojawi nam się nowe okno. Klikając „Select” przy pierwszym kwadraciku pojawi nam się okno wyboru (2.12). Szukamy w nim tekstury trawy (w tej paczce podpisana jako „Ground01”). Możemy także poszukać odpowiedniej tekstury w oknie „Project” i przeciągnąć ją w odpowiednie miejsce (czyli pierwszy kwadracik).
Po wybraniu tektury klikamy „Add”. W tym momencie tekstura nakłada nam się na cały teren. Stało się tak dlatego, że jest to pierwsza wybrana tekstura i jest ona traktowana jako domyślna. Aby dodać inną teksturę, wykonujemy tak samo poprzednie kroki.

dodawanie-tekstur2.12 Wybieramy teksturę terenu

Aby zacząć malować inną teksturą, wystarczy wybrać ją z okna „Textures” w „Inspectorze”. Tekstury nakłada się tak samo, jak modeluje się teren. Wybieramy pędzel, określamy rozmiar oraz siłę nacisku pędzla i malujemy. Pojawia się tutaj jeszcze jedna opcja pędzla, mianowicie „Target Strength”. Odpowiada ona za przezroczystość, z jaką będziemy malować daną teksturą. Przydaje się ona do malowania płynnego przejścia między teksturami.

• „Place Trees” – działa podobnie jak poprzednie narzędzie z tą różnicą, że zamiast tekstur umieszcza na terenie obiekty. Nazwa narzędzie może sugerować, że służy ono do umieszczania drzew, ale tyczy się to tak naprawdę wszystkiego, skał, domków czy krzaków.
Aby dodać jakiś obiekt, którym będziemy malować, postępujemy tak samo, jak w przypadku tekstur. Klikamy „Edit Trees”, następnie „Add Tree”. Pokazuje nam się okno, klikamy to małe kółeczko przy napisie „Tree Prefab” i wybieramy nasz model. Możemy również przeciągnąć model w to prostokątne pole. Po wszystkim klikamy „Add” (2.13).

dodawanie-drzew2.13 Dodawanie drzew

Możemy teraz malować po naszym terenie i umieszczać na nim drzewa. Narzędzie to posiada nieco więcej opcji niż poprzednie. Oprócz znanego nam „Brush Size” mamy także „Tree Destiny”, które ustawia zagęszczenie drzew przy pojedynczym pociągnięciu pędzlem. „Tree Height” określa przedział, między którym będzie losowana wysokość umieszczanych drzew. Pozwala to na zachowanie pewnej różnorodności, przez co drzewa nie będą wyglądać zbyt sztucznie. Zaznaczona opcja „Lock Width to Height” zachowuje proporcje między wysokością a szerokością drzew. „Tree Widthto to samo co w przypadku wysokości, tylko że dla szerokości. „Color Variation” określa wariację kolorów, czyli jak zróżnicowane pod względem zabarwienia mają być drzewa.

piate-narzedzie2.14 Opcje narzędzia „Place Trees

• „Paint Details” – tak jak w przypadku poprzednich dwóch narzędzi, tyle że tutaj mamy do czynienia z trawą. Ale nie trawą w sensie teksturą terenu, a trawą trawą (takie wystające z ziemi zielone włoski 😀 ). Przedstawiona jest ona jako specjalna tekstura, możemy ją znaleźć w paczce assetów, którą pobraliśmy. Wybieramy ją w taki sam sposób, jak robiliśmy to z drzewami i teksturami terenu.

opcje-trawy2.15 Opcje trawy

Widzimy tutaj jednak kilka dodatkowych opcji, których nie było poprzednio. „Detail Texture” odnosi się do tekstury naszej trawy. „Min Width” oraz „Max Width” to minimalna oraz maksymalna szerokość trawy, która będzie malowana na naszym terenie. Podobnie jest z „Min Height” i „Max Height” – w tym wypadku chodzi o wysokość. „Noise Spread” jest to współczynnik głośności trawy, czyli jak głośny szum wydaje.
Healthy Color” i „Dry Color” to odpowiednio kolor trawy świeżej i kolor trawy wysuszonej. Dzięki temu trawa nie jest jednolita, co nadaje nieco realizmu. Ostatnia opcja, „Billboard”, odpowiada za sposób wyświetlania trawy w grze. Gdy mamy ją zaznaczoną („okejka”), trawa zawsze będzie odwrócona w naszym kierunku, niezależnie od tego, pod jakim kątem na nią spojrzymy. Gdy odhaczymy tę opcję, trawa ustawi się w losowej rotacji i tak już pozostanie.

z-billboardem2.16 Trawa z ustawioną opcją „Billboard”

bez-billboardu2.17 Trawa bez opcji „Billboard”

• Ostatnią zakładką jest „Terrain Settings”, czyli wszystkie opcje techniczne dotyczące naszego terenu. Przedstawię tylko kilka najważniejszych, bo jest ich tam naprawdę sporo:

  • W podmenu „Base Terrain
    • Draw” – czy teren ma być rysowany (włącza i wyłącza widoczność terenu)
    • Cast Shadows” – czy teren ma rzucać cienie (chodzi o sam teren, czyli góry, a nie elementy na tym terenie)
  • W podmenu „Tree & Details Objects
    • Draw” – to samo co poprzednio
    • Details Distance” – odległość rysowania detali i trawy
  • W podmenu „Wind Settings for Grass” – ogólne ustawienia wiatru działające na traw
  • W podmenu „Resolution
    • Width”, „Length” i „Height” – szerokość, długość i wysokość terenu w metrach.

opcje-terenu2.18 Opcje „Terrain Settings”

To już wszystko z ważniejszych zagadnień, które chciałem omówić odnośnie do tworzenia terenu w Unity. Jak widać to bardzo proste i intuicyjne narzędzie. Istnieją jeszcze sposoby modelowania terenu za pomocą Heightmap, co może bardzo dokładnie odwzorować jakiś znany nam teren, na przykład pobliską okolicę.  To jednak temat na osobny artykuł, więc wrócę do niego w przyszłości.

Póki co, to wszystko. Pierwsze koty za płoty, jak to mówią. W kolejnej części wybierzemy się na spacer po stworzonym przez nas świecie i zahaczymy o początki skryptowania. Poniżej przedstawiam jeszcze zrzut ekranu stworzonego przeze mnie kawałka terenu, zajęło mi to dosłownie dwie minuty. Wydaje mi się, że efekt jest naprawdę niezły.

kawalek-terenu2.19  „Kiedy wjechali na wyniosłość drogi, oczom ich ukazał się las…”

Szybkie ciekawostki

1. Detale terenu, takie jak trawa czy drzewa, mają znaczny wpływ na obciążenie komputera. Staraj się nie przesadzać z ich ilością, bo możesz się nieźle zdziwić.
2. Rozmiar terenu najlepiej zaplanować przed jego modelowaniem. Jeżeli będziesz chciał powiększyć teren po stworzeniu gór, będziesz świadkiem niemiłej niespodzianki. Zwiększenie rozmiaru terenu oznacza tak naprawdę jego rozciągnięcie, a co za tym idzie, całe jego ukształtowanie zostanie rozciągnięte razem z nim.
3. Stworzenie widoczku z ostatniego obrazka to tak na prawdę 3 pociągnięcia pędzlem. 95% czasu tworzenia zajęło pobieranie assetów i ustawianie kamery.

Written by: Gość

Nasz fanpage