Troman - tworzenie gier
Logo serwisu Troman.pl
Panel Logowania

Podstawowe sterowanie w widoku z pierwszej osoby

napisał : Karricjusz
21
września
2012
Czyli jak co poustawiać, aby móc się poobracać i pokicać jak króliczek.
tagi :

Witam!

W tym tutorialu postaram się pokazać, jak zrobić podstawowe sterowanie w grze pierwszoosobowej. W tej części (bo mam nadzieję, że jeszcze jakąś napiszę) wykorzystam skrypt, który znalazłem tutaj: http://www.youtube.com/watch?v=f-DozglQZzQ&feature=plcp .


Zaczynamy z podstawową kostką:



Zostawiamy ją, ale musimy ją trochę zeskalować, aby była odrobinę wyższa. W tym celu wchodzimy w Edit Mode (Tab), skalujemy w osi Z (S, potem Z i wpisujemy 1.6). Wychodzimy z powrotem do Object Mode (Tab). Teraz naciskamy klawisz N, a w nowo otwartej zakładce po prawej w dziale Item zmieniamy nazwę Cube na np. Heros.



Potem w pasku na górze zmieniamy Blender Render na Blender Game, a na dole zakładkę z linią czasu zmniejszamy do minimum, oraz dodajemy jeszcze jedną, którą zmieniamy na Logic Editor.



Dodajemy Cube (Shift+A -> Mesh -> Cube), nazywamy go np. Ziemia, skalujemy go w osi z, aby był bardzo płaski, żeby go było widać przy widoku z boku w Wireframe, jako że z Planem byłoby trochę więcej kłopotu. Potem skalujemy w osiach X i Y, abyśmy mogli się przemieszczać po większym obszarze (S, potem Shift + Z i wpisujemy 10). Uwaga: jeżeli skalowaliśmy będąc w Object Mode, a nie w Edit Mode, to musimy zaznaczyć Ziemię w Object Mode i nacisnąć Ctrl + A i wybrać Scale. Herosa z kolei przesuwamy, aby był na Ziemią.



Zaznaczamy Herosa, a w zakładce po prawej Properties wybieramy zakładkę Logic, zmieniamy Static na Dynamic, zaznaczamy też Collision Bounds i wybieramy Box. Teraz, gdy kursor myszy mamy w oknie widoku i naciśniemy klawisz P, to nasz Heros powinien spaść na Ziemię.
Ciekawostka: gdy w części Damping ustawimy Translation na maksa, to ograniczy ono odrzucanie nas przez inne obiekty, gdy na nie "wpadniemy", ale z kolei praktycznie uniemożliwi spadanie, a więc też i skakanie, dlatego też tego nie użyjemy.




Teraz zaznaczamy kamerę, nazywamy ją Kamera, po czym wyzerowujemy jej pozycję (Alt + G) i obrót (Alt + R). Teraz, aby było nam wygodniej, możemy włączyć tryb Wireframe (Z), i obracamy Kamerę w osi Y o 90 stopni (R i Y i 90) oraz w osi X też o 90 stopni (R i X i 90). Przesuwamy ją w górę i trochę w prawo - to będą nasze oczy, przez które będziemy sobie paczeć.



Nadal siedzimy w Kamerze, w Logic Editor dodajemy trzy zmienne - naciskamy trzy razy Add Game Property. Będą to:
1 - o nazwie Adjust i typie Float oraz wartości 2.000;
2 - o nazwie Invert i typie Boolean i wyłączona;
3 - o nazwie Cap i typie Integer oraz wartości 128.
W skrypcie, który zaraz zamieścimy, Adjust oznacza tak jakby szybkość obrotu kamery, czułość, itd. Invert, gdy jest włączone, zamienia kierunki, tak jak np. w samolocie. Cap to zakres obrotu góra - dół, żebyśmy nie mogli machać łbem o 360 stopni. Możecie później poeksperymentować z własnymi wartościami, szczególnie z Cap.



Teraz zmieniamy nasze główne okno na Text Editor, klikamy przycisk New, nazywamy go MouseLook.py, a jako treść wklejamy skrypt, który jest w linku na początku.



Z powrotem do 3D View. Z zaznaczoną Kamerą, obok Properties, mamy kilka rzeczy, czyli Sensors, Controllers i Actuators. Dodajemy Sensor, Controller i Actuator. Sensor zmieniamy na Mouse, a w nim na Movement, a jego nazwę zmieniamy na MouseLook. Controller na Python, a w nim na Script i na MouseLook.py, a jego nazwę na Python. Actuator dajemy na Motion, a jego nazwę zmieniamy na UpDown. Teraz zaznaczamy Kamerę, a później z Shiftem Herosa. Naciskamy Ctrl + P i wybieramy Object, przez co Kamera rusza się teraz razem z Herosem. Dodajemy teraz w Herosie Actuator Motion, który nazywamy LeftRight. Teraz podczas gry możemy się rozglądać!



Jeżeli ustawiliście porządnie Cap, to teraz możecie popatrzeć w dół i widzicie fajną kostkę, ale dalej się nie okręcicie. Jeżeli przy ciągłym ruchu myszką w dół zobaczycie tą kostkę więcej niż jeden raz, to oznacza, że coś zwaliliście, bo nasz bohater potrafi najprawdopodobniej przerazić wrogów samymi ruchami głowy. No i tak naprawdę nic więcej nie może zrobić, bo podlega jedynie sile grawitacji ciągnącej go w kierunku Ziemi i w tym wypadku ku dole, tzn. spada.


Tak więc zaznaczamy Herosa i dodajemy na razie cztery Sensory Keyboard:
pierwszy - key W;
drugi - key Left Shift oraz wciskamy Invert;
trzeci - key W;
czwarty - key Left Shift.
Bo nie ma lenienia się i od razu zrobimy sobie ostre rżnięcie naprzód, tzn. bieg.
Teraz dwa Controllery And, oraz dwa Actuatory Motion:
pierwszy z Loc X 0.1;
drugi z Loc X 0.2.

Dwa pierwsze łączymy z pierwszym Andem i z pierwszym Motionem, a dwa kolejne z drugim Andem i drugim Motionem. No i teraz możemy sobie pobiegać.



Teraz podobnie dodamy Keyboardy z S, A i D, z tym że już bez Shiftów, umiemy sprintować tylko przodem. Możemy też pozostałe ponazywać, ponieważ jak można było już zauważyć, ja nie umiem zbytnio skryptować i zawsze staram się zrobić wszystko rzeczami domyślnymi, więc będzie trochę sporo tych cegiełek.



Teraz skok. Tutaj jest jednak pewien problem - możemy ustawić, że jak naciśniemy Spację, to podlecimy w górę i spadniemy, jednak jeżeli będziemy cały czas naciskać Spację, to polecimy koko koko hen wysoko. Możemy ustawić, że podlecimy tylko wtedy, gdy będziemy dotykać jakiegoś obiektu, który ma ustawioną zmienną np. Grunt. Jednak wtedy możemy doświadczyć efektu Batmana:



Więc ostatnio wpadłem na taki pomysł - dodajemy Cube i nazywamy go Odbijacz. Skalujemy go, aby był troszkę mniejszy od podstawy Herosa oraz cienki i przesuwamy go pod. Zmieniamy mu Static na Sensor po prawej. Parentujemy Odbijacza z Herosem. Dodajemy mu Sensor Collision z Property o nazwie Grunt oraz Keyboard ze Spacją i naciśniętym Tap, oraz And. Teraz z Shiftem zaznaczamy Herosa i dodajemy tam Actuator Motion z ustawionym Linear Z na 9. Łączymy And z Odbijacza z Motionem Herosa. Teraz zaznaczamy Ziemię i dodajemy jej Property Grunt. Możemy cieszyć się skakaniem.



Myślę, że to na razie wszystko. Teraz już możecie w zakładce po prawej ustawić Invisible dla Odbijacza i Herosa i cieszyć się paroma metrami kwadratowymi powierzchni do chodzenia, biegania i skakania! Mam nadzieję, że napisałem wszystko w miarę przejrzyście, i jeżeli zrobiłem coś nie tak, to z góry przepraszam, w końcu to mój pierwszy tutorial. Dzięki za uwagę.

8 komentarzy
LubuPL napisał :
godz. 21:00, 21 września 2012
Na starszej wersji to nie działa, pewnie źle napisałem skrypt :P
Karricjusz napisał :
godz. 21:43, 21 września 2012
Na wersji starszej i nowszej ten sam skrypt niestety nie zadziała :( Ale jeżeli nie boisz się angielskiego, to na Youtube wystarczy wpisać "Blender 2.49 mouse look tutorial" i na pewno coś znajdziesz :)
mardraq napisał :
godz. 11:52, 22 września 2012
Bardzo fajne :)

A ja poproszę o kamerę z widoku trzeciej osoby :) :)
LubuPL napisał :
godz. 18:02, 22 września 2012
Podejrzewam, że wystarczy dać kamerę za naszą postać i postąpić tak samo, jak w tym Tutorialu :lol:
maniek napisał :
godz. 18:42, 22 września 2012
mówisz i masz : http://troman.pl/news/sterowanie-amp-kamera-rodem-z-rpg_ID24
Tomtom20 napisał :
godz. 12:02, 9 listopada 2012
Gdzie znajdę treść skryptu do wklejenia?
Karricjusz napisał :
godz. 22:32, 10 listopada 2012
http://www.blendermaster.newspawn.org/blends/firstperson/scripts/MouseLook.py

Jest to w linku na samej górze :)
piter10p napisał :
godz. 12:14, 6 października 2013
Mam malusi problem.
Linczek: http://hostuje.net/file.php?id=b1fd667bf82e7395686cd2c04899a158
Dodaj komentarz
Aby dodać komentarz do newsa, musisz być zalogowany w Serwisie.. Zaloguj