Marek Winiarski

Unity3d FPS Tutorial #1 – Tworzymy nowy projekt i przygotowujemy teren

Tutorial Unity3d, czyli tworzymy własną grę FPS od podstaw z wykorzystaniem silnika Unity.

Temat: Jak przygotować teren do gry. Oraz jak korzystać z narzędzi i edytora terenu.

Spis treści

Jeżeli nie używałeś do tej pory Unity3d:

#0 – Podstawy Podstaw

FPS Tutorial:

– Tworzenie nowego projektu i narzędzie terenu

#2 – Sterowanie postacią

#3 – Życie, pancerz i wytrzymałość postaci

#4 – Regeneracja życia i energii. Efekty trafienia.

#5 – Kamera z bronią i strzelanie

#6 – Przeładowanie broni i amunicja

#7 – Zbieranie przedmiotów

#8 – Druga broń

#9 – Rzut granatem i seria z karabinu

#10 – Celowanie i dziury po kulach

#11 – Przeciwnik z prostym AI, sztuczna inteligencja

#12 – Animacja postaci przeciwnika. Animator

#13 – Menu główne gry. GUI

#14 – Ostatnie szlify i budujemy projekt

Tworzymy nowy projekt

Stworzenie projektu to sprawa najprostsza. Uruchamiamy zainstalowanie Unity3d. Wybieramy z menu górnego File->New Project, a naszym oczom ukazuje się poniższe okienko:

Okno tworzenia nowego projektu w Unity3d
Okno tworzenia nowego projektu w Unity3d v.4.3
Tworzenie nowego projektu w Unity3d 5.0

Project location, to oczywiście miejsce gdzie zapiszemy dane na dysku.

Setup Defaults for. Mamy do wyboru 3D albo 2D. Jest to dostępne od wersji 4 Unity, gdzie pojawiły się narzędzia do pracy z grami 2D. Dostosowuje nam to ustawienia silnika pod daną perspektywę. My robimy grę 3D, więc zostawiamy ustawienie jak jest. Zainteresowanych różnicami, odsyłam do krótkiego opisu różnic.

Import following packages, daje nam możliwość importu pewnych paczek. Część z nich dostępnych jest domyślnie w Unity, ale bazę możemy łatwo rozbudować paczkami z Unity Asset Store. My dodamy sobie do projektu następujące paczki:

Unity3d w wersji < 5.0

Unity3d w wersji 5.0

Tworzymy teren

Czas na mięsko! :)

Zaczynamy od dodania obiektu terenu. [Game Object -> Create Other -> Terrain]. Teraz, zanim zrobimy cokolwiek innego, powinniśmy zdefiniować ustawienia. W panelu Inspektor, powinieneś zobaczyć takie oto menu:

Opcje narzędzia terenu

Zaczynamy od ostatniego. Resztę omówię w kolejnych krokach. Na samym początku, ważne dla nas są ustawienia Resolution. Powinniśmy je dobrze przemyśleć, bo zmienianie ich w trakcie tworzenia gry, może sprawić, że część wymodelowanego obszaru, zwyczajnie się posypie.

Opcje Resoultion

Kluczowe do zmiany dla nas jest Terrain Width, Length i Height. Pierwsze dwa to oczywiście długość i szerokość naszego terenu. Jednostką w jakiej to wyrażamy są metry. Wysokość o tyle różni się od pozostałych, że faktycznie jest to maksymalna dostępna wysokość terenu.

Kolejne opcje odpowiadają za rozdzielczości:

Ciekawą opcją jest też zaimportowanie mapy terenu w formie pliku RAW. Jest to płaska tekstura, w jasnych i ciemnych barwach, które reprezentują topografię terenu.

Resztą opcji dostępną w tym menu nie będziemy się zajmować.

Wraz z Unity 5.0 w tej zakładce pojawiło się kilka dodatkowych, interesujących opcji, które sobie omówimy:

Opcje terenu w Unity 5.0

Base Terrain

Tree & Detail Objects

Wind Settings

Uwaga!

Zanim zaczniemy modelowanie, mała uwaga. Przed uruchomieniem gry, musisz zawsze zapisać scenę. W przeciwnym wypadku, może się zdarzyć tak, że będziesz chodził po dziurach, albo przechodził przez góry.

Modelujemy teren

W tym podrozdziale zajmiemy się 3 pierwszymi podmenu.

Zacznijmy od narzędzia Paint Height

Paint Height

Jego opcje prezentują się nieco inaczej od pozostałych. Dokładniej jednym polem:

Opcje menu Paint Height

Oczywiście ta opcja to Height z dołączonym przyciskiem Flatten. Dlaczego zaczynamy tutaj? Domyślnie Teren jest ustawiony na wysokości 0. Co sprowadza się do tego, że niemożliwym jest zrobienie depresji. Podciąganie każdego kawałka terenu w górę może być niewygodne. Dlatego zaczniemy od ustawienia parametru Height na 100 i kliknięciu Flatten. Sprawi to że zmieni się domyślna wysokość terenu.

Teraz możemy przejść do menu Rise / Lower Terrain

Rise / Lower Terrain

Mamy tutaj tak naprawdę niewiele opcji:

Opcje menu Paint Height

Możemy sobie wybrać format pędzla, jego rozmiar, oraz poziom nakładania. Znamy to z każdego programu graficznego. Wybierz sobie dowolne parametry i zwyczajnie pobaw się narzędziem żeby zrozumieć zasady jego działania. Jedyne co Ci się przyda to:

W tym miejscu warto też przetestować tworzenie terenu z ogranicznikiem wysokości. Jeżeli ustawisz go powyżej 100, teren będzie rósł do tego wymiaru i tworzył płaskowyż. Jeśli ustawisz wysokość na wymiar poniżej 100, teren będzie automatycznie się zmniejszał. Pamiętaj że 100 to magiczna liczba, która definiuje nasz “poziom morza”. Jeżeli ustawiłeś inną wartość parametru, powinieneś się odnosić do niego.

Jeżeli wiesz już jak działają narzędzia, czas wyrównać nasz teren i zrobić coś porządnego. Tern wyrównasz wchodząc znów w narzędzie Paint Height. W menu Height wprowadź 100 i kliknij Flatten. Stworzymy sobie coś na kształt wyspy.

U mnie proces wyglądał następująco:

Pobaw się narzędziami, i stwórz sobie wyspę dopasowaną do swoich wymagań. Nie musi ona w ogóle przypominać tego co ja zrobiłem.

Teksturujemy teren

Mamy już model, jednak nie jest on zbyt imponujący. Spróbujmy dodać tekstury.

Narzędzie teksturowania

Narzędzie teksturowania dysponuje dokładnie tymi samymi parametrami co poprzednie narzędzia i tymi samymi co Paint. Więc raczej nie ma co tutaj tłumaczyć. Jednak by móc z niego skorzystać, musimy dodać sobie tekstury.
[stextbox id=”info” defcaption=”true”]Uwaga! Pierwsza tekstura jaką dodasz, zostanie naniesiona na cały obszar terenu![/stextbox]
Co zrobić aby dodać teksturę?

Parametr Size wybieramy mały, chyba że tekstura będzie użyta na rozciągniętym obszarze. Offset używamy jeśli tekstura musi być przesunięta, aby dobrze nią wyłożyć obszar.

Dodajemy sobie 4 tekstury, które zaimportowaliśmy razem z paczką na początku. Są to: Good Dirt, Grass (Hill), Grass & Rock, Cliff (Layered Rock).

Zostaje pytanie czym jest Target Strenght. Jest to parametr, który określa jak bardzo dominująca ma być nowa tekstura. Jeśli mamy parametr na 1 i zaczynamy malować, to tekstury zostaną podmienione. Ale jeśli, po teksturze kamienia, będziemy malować, teksturą trawy z parametrem ustawionym na np. 0.4, to otrzymamy efekt, gdzie przez skałę, lekko przebija się trawa.

Tutaj również najlepszą nauką, będzie zabawa z otrzymanymi narzędziami. U mnie efekt kolorowania wyszedł następujący:

Oteksturowana wyspa

Generujemy roślinność

Wyspa już jest. Ale czas dodać tam trochę krzaczków i drzew.

Do wytworzenia drzew, posłuży nam kolejna opcja w menu:

Malarz drzew

Oczywiście jak poprzednio, trzeba zdefiniować jakieś drzewa. W momencie, w którym dodaliśmy paczkę Tree Creator, powinniśmy mieć do dyspozycji, drzewo o dumnej nazwie “Big Tree”. Dodawanie przebiega podobnie jak dodawanie tekstur:

Edit Trees -> Add Tree. Klikamy w kółeczko obok pola Tree w nowym oknie, po czym znajdujemy Big Tree i je dodajemy. Omówmy sobie szybko parametry

Przycisk Mass Place Trees, jak nazwa wskazuje hurtowo wstawia nam masę drzew. Podajemy jedynie liczbę, co sprawia że rozmieszczenie często jest mało ciekawe. Dobrą techniką jest wstawienie najpierw zgrupowań drzew.  A później ubarwienie całości pojedynczymi drzewami.

Zalesiona wyspa

Dodanie dodatków, odbywa się z poziomu ostatniego menu.

Menu Paint Details

Wszystkie opcje już znamy, więc nie widzę sensu ich omawiać. Dodanie dodatków odbywa się podobnie jak w przypadku drzew i tekstur. Edit Details -> Add Grass Texture. Jednak mamy do czynienia z bardziej rozbudowanym menu po drodze.

Menu dodania detalu

Oczywiście wybieramy teksturę. Ale co z resztą?

Z assetami terenu, zaimportowaliśmy sobie też elementy trawy. Więc dodajmy je teraz. Są to pliki: Grass i Grass2.

Pamiętaj żeby nie przesadzić z ilością takich elementów, bo mogą bardzo spowolnić działanie gry.

Dodaj teraz elementy detali. Pamiętaj żeby przybliżyć sobie widok. Ponieważ są to na tyle małe obiekty, że z daleka ich nie widać. Dlatego też nie dodaje screena, jak to wygląda u mnie, bo nie byłoby nic widać.

Plaża! Czyli słońce, woda i wiatr

Zostały dwa szczegóły. Nie mamy jeszcze wody wokół wyspy, ani słońca.

Zacznijmy od wody. Mamy w zaimportowanych assetach pakiet wody.W panelu Projekt odnajdź folder Standard Assets i wybierz folder Water. Teraz przeciągnij obiekt Daylight Simple Water na scenę gry.Umieść go mniej więcej na środku wyspy i ustaw wysokość, równą terenowi minus parę metrów. U mnie teren ma wysokość 100, więc wodę ustawiłem na wysokości y = 90. (Zmieniamy to w komponencie transform, obiektu wody). Teraz zwiększamy skalę. Ja ustawiam 1600. Dlatego tak kosmiczna liczba, ponieważ da nam to złudzenie bezkresnego morza w czasie spoglądania na horyzont w grze.

Co ze światłem?

Załatwiamy je również obiektem. Wybierz w menu GameObject -> Create Other -> Directional Light. (Jest kilka typów światła. Jednak przyjdzie czas na ich omówienie. Na razie mi zaufaj i wybierz ten typ).

Nasze słońce ustaw po prostu gdzieś wysoko i obrócone w stronę wyspy. U mnie była to położenie: 400, 800, -100 i rotacja: 40, -45, 0.

Directional Light, jest czymś w rodzaju ściany z której pada światło. Więc istotne jest tylko by było dobrze obrócone i po dobrej stronie obiektu. Jest to typ światła, zawsze wykorzystywane do tworzenia efektu słońca.

Jednak ten typ światła nie ma punktu widocznego. Tzn. gracz go nie zobaczy. A jednak chcielibyśmy widzieć słońce. Dlatego dodamy sobie flarę. Nie zaimportowaliśmy tego pakietu początkowo. Więc zrobimy to teraz. Skorzystaj z menu:

Asset->Import Package -> Light Flares.

Wybierz teraz obiekt Directional Light. Dla komponentu Light odnajdź parametr Flare i klikając w małe kółko, otwórz nowe okienko dialogowe. Tam wybierz jedną z dostępnych flar. Polecam flarę Sun, ponieważ ma to być słońce. ;)

W wersji Unity 3.0, “gibanie” się drzew na boki spowodowane wiatrem, było ustawiane wewnątrz obiektu drzewa. Teraz mamy do dyspozycji coś takiego jak Wind Zone. Dodajmy sobie taki obiekt: GameObejct -> Create Other -> Wind Zone.

Wind Zone

Ponownie pobaw się parametrami i ustaw wiatr jaki Ci będzie odpowiadał.

Zastanawiasz się pewnie jak sprawdzić te ostatnie zmiany? Trzeba wejść do gry. Jednak statyczna kamera nie nadaje się do testowania! Przejdź ponownie do panelu Projekt i w folderze Standard assets, znajdź kolejny o nazwie: Character Controllers. Wybierz z niego First Person Controller i umieść go w oknie Scene. Zwróć uwagę na to, żeby postać była ponad terem. Gdy tego nie dopilnujesz, po uruchomieniu gry, postać może spadać w niekończącą się pustkę.

Kiedy to zrobisz, możesz kliknąć przycisk Play na samej górze okna i przejść się po swoim świcie!

Mój efekt końcowy:

Efekt końcowy

Kolejna część -> #2 – Sterowanie Postacią

Exit mobile version