Marek Winiarski

Unity3d FPS Tutorial #2 – Sterowanie postacią

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

Temat: Jak stworzyć i dostosować system sterowania postacią

Spis treści

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

#0 – Podstawy Podstaw

FPS Tutorial:

#1 – 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

Teoria

Dzięki wbudowanym package’om w Unity3d, stworzenie samej postaci jest bardzo proste. Ogólnie wychodzę z założenia, że w informatyce nie ma co wymyślać koła na nowo. Więc jeśli mamy gotową część systemu, która jest sprawdzona i w pełni funkcjonalna, nie ma sensu pisać wszystkiego od zera tracąc swój czas. Dlatego w tym tutorialu, stworzenie postaci, odbędzie się z wykorzystaniem gotowego modelu, a my skupimy się na jego konfiguracji. Więc ta część tutoriala będzie prosta i przyjemna.

Oczywiście, można powiedzieć, że pisząc wszystko od zera więcej się nauczymy. Możliwe, jednak funkcje, których byśmy do tego użyli i tak prędzej czy później do nas trafią. A napisanie, dobrego skryptu sterowania postacią to trudne zajęcie. Więc uważam, że lepiej nauczyć się używać tego co dali nam twórcy silnika.

Do dzieła!

Uwaga!

Jeśli używasz Unity3d 5.0 możesz zjechać na dół strony, gdzie omawiam Controller dla tej wersji Unity.

Stworzenie nowej postaci gracza

Opisałem to bardzo szybko w poprzedniej części, aby wykorzystać postać do testów. Jednak, z racji że jest to część kursu dla tego zagadnienia, powtórzę ten krok jeszcze raz. Jeśli masz już na scenie postać, którą możesz się poruszać, możesz pominąć ten krok.

Do sterowania w grze, twórcy Unity dostarczyli nam dwa kontrolery Third Person Controller i First Person Controller. Jak łatwo się domyślić, różnią się orientacją kamery, która przypada odpowiednio z 3 lub 1 osoby. Od wprowadzenia wsparcia dla gier 2D, dostępna jest również paczka z Controllerami na urządzenia mobilne.

Aby móc skorzystać z tych kontrolerów, musimy mieć zaimportowaną standardową paczkę Unity: Character Controller. Jeśli podążałeś dokładnie za tutorialem, to powinieneś mieć ją zaimportowaną przy tworzeniu projektu. W panelu Project odnajdź folder Standard Assets, a w nim folder Character Controller. Jeśli nie posiadasz tych folderów, to znaczy że paczka nie została zaimportowana.

Jeżeli nie masz jej zaimportowanej zrób to teraz wybierając z górnego menu: [Assets -> Import Package… -> Character Controller]. 

Zostało tylko dodać obiekt gracza. Z folderu Standard Assets -> Character Controllers w panelu Project, wybierz obiekt First Person Controller i przenieść go na panel scene, dodając go tym samym do gry.

First Person Controller, posiada swoją kamerę, która jest główną kamerą gry. W danej scenie, może być tylko jedna taka kamera. Dlatego sprawdź teraz panel Hierarchy, aby sprawdzić, czy po za kamerą Controllera nie ma innych kamer. Jeśli jakieś znajdziesz, po prostu je usuń.

Dostosowanie ustawień

Na obiekt gracza składają się dwa elementy: Kamera oraz obiekt kapsuły. Jeżeli postać gracza nie jest nigdy przez niego widziana, stosuje się taki zabieg, aby zredukować obliczenia wykonywane przez komputer przy renderingu, oraz zmniejszyć ilość pracy wykonywanej przez grafików. Kapsuła dobrze odzwierciedla wymiary gracza i nie potrzebujemy tutaj jego dokładnego modelu.

Tyle jeśli chodzi o obiekty. Jednak obiekt gracza, jako całości, posiada jeszcze 4 istotne komponenty:

Ostatni pomijamy, ponieważ nie ma on parametrów do dostosowania. A każdy z pozostałych omówimy.

Komponent Character Controller

Character Controller:

Standardowy kontroler postaci, opisujący ją paroma parametrami i umożliwiający poruszanie się, jeśli obiekt postaci nie korzysta z fizyki

Tutorial_02_02
Komponent Mouse Look (Script)

Mouse Look

Komponent Character Motor (Script)

Character Motor

Movement

Jumping

Moving Platform

Ogólnie ten parametr jest dość nietypowy i jego faktyczne zastosowanie, wymaga przetestowania, która opcja jest dla nas najlepsza. Jego jedynego nie testowałem w praktyce, dlatego opis jest tak bardzo ogólnikowy i niedokładny.

Sliding

Unity3d 5.0

Jeżeli chodzi o Unity 5.0, również dysponujemy fajnym kontrolerem postaci z pierwszej osoby. Można też śmiało powiedzieć, że jest on lepszy i bardziej dopracowany od tego poprzedniego. Dlatego dodajemy obiekt o nazwie FPSController z folderu: Standard Assets / Characters / First Person Character / Prefabs. Drugi dostępny kontroler opiera się na Rigidbody, czyli steruje w nim zasadzie fizyka. My wykorzystamy sobie ten niefizyczny. Z czego się składa nasz kontroler?

Komponent Character Controller

Character Controller:

Standardowy kontroler postaci, opisujący ją paroma parametrami i umożliwiający poruszanie się, jeśli obiekt postaci nie korzysta z fizyki.

FPS Controller z obiektu First Person Controller w Unity3d 5

First Person Controller 

Czyli skrypt, odpowiedzialny za możliwość poruszania naszej postaci.

Jak mówiłem, ten skrypt jest bardzo rozbudowany, ale zapewnia nam prawie wszystko, czego moglibyśmy oczekiwać. Do tego nasza postać ma komponent AudioSource, który pozwala słyszeć dźwięki, oraz Rigidbody, czyli fizykę. Jednak przy istnieniu komponentu Character Controller, nie jestem pewny, czemu ten komponent dodano, bo wydaje się zbędny.

No rusz się!

Póki co, nie musimy zmieniać tych parametrów dla naszej postaci i możemy zostawić je na ustawieniach domyślnych. Są wystarczające dla naszych potrzeb. Teraz, aby przetestować działanie kontrolera, uruchom grę za pomocą przycisku play i pochodź sobie po świecie. Jak się pewnie domyślasz posłuży Ci do tego kombinacja WSAD lub strzałki i spacja do skoku.

Jest to dobry moment, żeby przetestować różne ustawienia wyżej omawianych parametrów i zobaczenia jak wpływają na grę w praktyce.

Poprzednia część <- #1 – Tworzymy teren

Następna część -> #3  – Życie, pancerz i wytrzymałość postaci

Exit mobile version