Tworzenie prostej gry: Labirynt 11

W gry można pograć i dobrze się przy tym bawić. Czasami jednak jeszcze lepszą zabawą jest stworzenie gry!

W tym tekstowym poradniku spróbujemy zrobić prostą grę typu Labirynt, w którym po ruchomej planszy będzie toczyła się kulka.

Oryginalnym źródłem, które zawiera ten poradnik jest materiał z projektu Blender 3D 101 – międzynarodowego projektu, w którym uczestniczy także Polski Kurs Blendera (i ja osobiście), a który nastawiony jest na przygotowanie materiałów do szkolenia młodzieży szkolnej, oraz współpracujących z nią nauczycieli. Ten materiał to poradnik tekstowo-obrazkowo-filmowy, który tłumaczy jak można zrobić grę, nie mając zbyt wielu podstaw ani umiejętności. Skupiamy się na prostych jednostkowych operacjach. W celu lepszego wykonania poniższych ćwiczeń warto obejrzeć przynajmniej podstawy posługiwania się Blenderem, wyjaśnione w poradniku na temat Interfejsu. Poniżej znajduje się moje tłumaczenie materiałów z B3B101, które będzie dostępne także na tamtejszej stronie.


Gra Labirynt

[cc-by] At Mind, J.Bakker & M.Dewanchand
Tekstury: http://tutorialsforblender3d.com
Wersja programu co najmniej: Blender 2.73
Zakres wiedzy: Wprowadzenie do 3d
Tłumaczenie i poprawki: Piotr Arłukowicz, Polski Kurs Blendera

Gra labirynt składa się z drewnianej planszy stanowiącej labirynt, kulki która się nim porusza oraz punktu końcowego. Celem gry jest przesunięcie kulki do punktu końcowego poprzez obracanie planszą. Aby stworzyć taką grę, będziemy potrzebowali:

  • modelu planszy oraz kulki
  • materiałów określających wygląd elementów
  • zdefiniowanej fizyki w grze
  • odpowiedniego oświetlenia
  • odpowiedniej logiki pozwalającej grze działać, a nam grać
  • punktu końcowego, w którym gra się kończy

Wprowadzenie

Cały ten dokument podzielony jest na dziesięć etapów. Etapy od 1 do 6 pokażą Ci jak stworzyć prostą grę z labiryntem i kulką. Etapy od 7 do 10 sugerują, w jaki sposób można grę rozbudować. Te etapy są opcjonalne i nie musisz ich dokładnie powtarzać.

Po etapie 10 znajdziesz kilka pomysłów jak można jeszcze rozbudować grę. Pomysły te możesz wypróbować po etapie 6 lub podczas testowania kilku sugerowanych potem rozszerzeń gry.

Etapy i ten mini-kurs zawierają wideo w postaci krótkich filmów. Są one przeznaczone do obejrzenia w trakcie pracy, i mają za zadanie w krótki sposób pokazać Ci, co trzeba zrobić na każdym etapie. Możesz oglądać te filmy wielokrotnie, aby dobrze zrozumieć co jest do wykonania.

Porada: jeżeli pracujesz na komputerze z klawiaturą Mac, zamiast klawisza CTRL będziesz miał klawisz CMD.

Wyjaśnienie

Gra Labirynt jest tworzona dla oraz we współpracy ze studentami i nauczycielami z projektu „ICT in de wolken”. Ten projekt jest inicjatywą pochodzącą ze szkoły wyższej „Montessori Scholengemeenschap Amsterdam (MSA)”, we współpracy z „Regionaal Opleidingencentrum (ROC)”, „Hogeschool van Amsterdam”, Uniwersytetem Amsterdamu oraz Wolnym Uniwersytetem Amsterdamu (ang. Free University Amsterdam, VU). Celem jest umożliwienie młodym ludziom rozwoju ich talentów w dziedzinie informatyki, poprzez udostępnienie im wyzwań i wysoce specjalistycznej wiedzy. Studenci z MSA tworzyli gry, włączając w to dwa dodatkowe poziomy podczas ośmiu tygodni zajęć, pracując przez cztery godziny tygodniowo.

Obecnie ten materiał został przetłumaczony i dostosowany do potrzeb Polskiego Kursu Blendera, który bierze udział w pracach projektu B3D101 jako aktywne wparcie ze strony polskiej.

Rozdział 1: Modelowanie labiryntu.

  • Obejrzyj film aby zobaczyć, jak zrobiono model labiryntu.
  • Następnie wykonaj po kolei opisane poniżej kroki.

Krok po kroku

Krok 1: Uruchom Blendera

Krok 2: Usuń kostkę

Będziemy korzystali z modelu kwadratu, z którego utworzymy labirynt. Dlatego kostka, która jest domyślnie na scenie, nie będzie potrzebna. Możemy ją bezpiecznie usunąć.

  • Kliknij prawym przyciskiem myszy na kostce. Powinna się zaznaczyć (lub będzie już zaznaczona)
  • Naciśnij klawisz X, aby usunąć kostkę.

Image

Krok 3: Usuń lampę

Dodamy potem lepsze światło do sceny. Zaznacz lampę i usuń ją tak samo jak to opisano dla kostki w Kroku 2.

Krok 4: Dodaj kwadrat (Plane)

Upewnij się, że mysz jest Widoku 3D. Jeżeli dodasz obiekt do sceny, będzie on ustawiony w tym miejscu, gdzie jest Kursor 3D (to biało-czerwone kółko).

Image

  • Umieść Kursor 3D w środku, w okolicach środka siatki. Możesz nacisnąć klawisze Shift+C, aby Kursor znalazł się dokładnie w centrum sceny.

Kwadrat można dodać na różne sposoby. Poniżej opisane są dwa z nich.

  • Używając panelu Toolbox znajdującego się po lewej stronie ekranu (włącz/wyłącz go za pomocą T), znajdź zakładkę Create. W tej zakładce znajdują się przyciski dodające różne obiekty. Kliknij na przycisk w panelu Add Primitive o nazwie Plane. Plane to po prostu płaska figura geometryczna, tutaj zwykły kwadrat.
    Image
  • Inny sposób: użycie skrótu. Naciśnij Shift+A aby dodać obiekt. Z menu, które się pojawi, wybierz polecenia Mesh -> Plane.
    Image

Kwadrat zostanie dodany do miejsca, w którym stoi Kursor 3D.

Image

 

Krok 5: zmień rozmiar kwadratu

Zróbmy ten kwadrat większym. Zmienimy mu „promień” na przykład na wartość 20. Inne rozmiary, np. 30 lub 40 też są w porządku, ale może być niewygodnie z nimi pracować, bo plansza będzie zbyt duża. Możesz zostać przy wielkości 20.

  • Od razu po dodaniu kwadratu, poszukaj na lewym panelu informacji na temat wstawionego obiektu (lewy panel, na dole). Jest to panel ostatnio wykonanej operacji, i można na nim zmienić parametry tej operacji. W naszym przypadku możemy zmienić tam wielkość kwadratu. Jeżeli nie widzisz panelu takiego jak poniżej, cofnij ostatnią operację przez Ctrl+Z, a następnie ponownie dodaj kwadrat (obiekt Plane), i zobacz, czy masz możliwość zmiany parametru Radius.
    Image
  • Jeżeli nie możesz znaleźć tego parametru, możemy nadal zmienić wielkość obiektu, ale inaczej. Aby to zrobić:
    • wejdź do Trybu Edycji (klawiszem TAB)
    • naciśnij S, aby włączyć tryb skalowania obiektu
    • wpisz 20 i wciśnij ENTER
    • wciśnij TAB, aby powrócić do Trybu Obiektowego

 

Krok 6: Podziel kwadrat na mniejsze części

Aby zrobić labirynt potrzebujemy podzielić kwadrat na jeszcze mniejsze części.

  • upewnij się, że mysz znajduje się w Widoku 3D
  • przejdź do Trybu Edycji (TAB), możesz też wybrać ten tryb w menu umieszczonego w pasku stanu Widoku 3D.
    Image
  • Przełącz tryb zaznaczania z wierzchołków na ściany: Image
  • Upewnij się, że mysz jest w Widoku 3D. Wciśnij klawisz W, aby wyświetlić menu operacji specjalnych (Specials), i wybierz polecenie Subdivide. Kwadrat powinien zostać podzielony na 4 części.
    Image

Nasz labirynt potrzebuje wiele ścian, dlatego wprowadzimy jeszcze dodatkowe podziały, poprzez zmianę liczby rozcięć w kwadracie. Odpowiednia opcja znajduje się w panelu Ostatniej Operacji po lewej stronie (teraz powinien on nazywać się Subdivide).

  • Znajdź panel Subdivide i wprowadź 11 w parametrze Number of Cuts.
    Image
  • Wciśnij ENTER aby zaakceptować wartość 11 w polu edycji. Zamiast czterech kwadratów powinno być ich teraz więcej – jeżeli wprowadzona liczba rozcięć to było 11, powinno być 12×12 małych kwadratów.

Krok 7: Zbudowanie ścian

Teraz możemy zrobić prawdziwy labirynt. Dokonamy tego poprzez tzw. ekstrudowanie ścian, czyli ich „wytłoczenie”. Zaczniemy od ścian zewnętrznych, dzięki czemu kulka nie spadnie z planszy.

  • Zaznacz narożny kwadracik w planszy przez kliknięcie go prawym klawiszem myszy. Całe zaznaczenie zniknie poza jednym małym kwadratem. Następnie wciśnij SHIFT i zaznaczaj następne kwadraty prawym przyciskiem myszy. Powinno to wyglądać tak jak obrazku poniżej:
    Image
    Jeżeli zaznaczysz niewłaściwą ściankę, po prostu kliknij na nią ponownie, a się odznaczy. Cały czas trzymaj przy tym wciśnięty SHIFT.
  • Zaznacz teraz kilka wewnętrznych ścian, w taki sam sposób, jak zaznaczane były ścianki brzegowe. Moje zaznaczenie wygląda jak obrazek poniżej, ale spróbuj stworzyć swój własny labirynt.
    Image
  • Gdy wszystko jest zaznaczone, wciśnij jeden raz klawisz E i przesuń mysz. Zobaczysz, że w osi Z przesuwają się dodatkowe, nowe ściany! Przesuń mysz nieco do góry, nie za dużo, aby ściany nie były zbyt wysokie, bo nie będzie widać kulki. Gdy ustawisz odpowiednią wysokość, naciśnij ENTER.
    Image

 

Krok 8: Zapisz plik

Mamy teraz prosty labirynt. Zapiszmy naszą pracę. Znajdź menu File w górnej części Widoku 3D, i wybierz polecenie File – Save a następnie zapisz swój plik. Ponieważ na pracowni komputerowej mogą to zrobić jednocześnie inne osoby, postaraj się nazwać swój plik w jakiś odpowiednie sposób, na przykład swoim imieniem i nazwiskiem. Dzięki temu będzie Ci potem łatwiej ten plik odnaleźć.

Image

 

Krok 9: Dodaj materiał do planszy

Teraz spróbujmy ustawić kolor. Możemy dodać kolor do obiektu, poprzez dodanie materiału do tego obiektu. Materiał zawiera informacje między innymi o kolorze.

  • Aby dodać materiał do labiryntu, musimy przejść do Trybu Obiektowego (jeżeli był Edit Mode, to trzeba wcisnąć TAB, lub zmienić tryb za pomocą menu):
    Image
  • Wybierz zakładkę z prawej strony na której jest złota kulka. To panel z materiałami (Materials).
  • Kliknij na przycisk New aby dodać nowy materiał.
    Image
  • Ustaw nazwę dla materiału, na przykład „Labirynt”
    Image
  • Kliknij w biały prostokąt z kolorem Diffuse i wybierz inny kolor, na przykład jasny żółty:
    Image

Teraz masz kolorowy labirynt!

Krok 10: Zapisz swój plik BLEND!

Wystarczy teraz wcisnąć klawisze Ctrl+S.

Rozdział 2: Modelowanie kulki

  • Obejrzyj film wideo aby zobaczyć, jak to zostało zrobione
  • Kontynuuj wykonywanie kroków opisanych poniżej.

Krok po kroku

Krok 1: Dodaj kulkę

Upewnij się, że Kursor 3D jest ponad labiryntem. Aby dodać kulkę wykonaj jedną z poniższych akcji:

  • Użyj Toolbox, czyli narzędzi w panelach po lewej stronie. Wybierz stamtąd Mesh – UV Sphere. Polecenie to po kliknięciu powinno wstawić kulkę w miejsce, w którym znajduje się Kursor 3D.
    Image
  • Alternatywnie: możesz użyć Shift+A, aby wstawić kulkę za pomocą menu – Mesh – UV Sphere. Każdy sposób jest dobry.

Po dodaniu kulki może to wyglądać trochę jak na obrazku poniżej. Jeżeli kulka znajduje się nieco dalej od labiryntu, nie ma problemu, w następnych krokach ustawimy ją w odpowiedniej pozycji.

Image

Krok 2: Przesuwanie kulki na pozycję startową

Ustawmy kulkę w prawym rogu. Będziemy przesuwać ją za pomocą osi X (czerwona strzałka) oraz Y (zielona strzałka).

Podpowiedź: na dole po lewej stronie w Widoku 3d znajdziesz narysowany malutki układ współrzędnych z osiami x, y oraz z. Mają one odpowiednio kolory czerwony, zielony i niebieski.

Image

  • Przesuń kulkę w osi Y łapiąc myszą za zieloną strzałkę i ciągnąc. Możesz także użyć skrótu G (funkcja Grab), potem Y, aby przesuwać obiekt tylko wzdłuż osi Y.
    Image
  • Przesuń następnie kulkę wzdłuż osi X używając czerwonej strzałki. Alternatywnie, możesz także wcisnąć klawisz G a potem X, aby wymusić przesuwanie tylko po osi X. Jeżeli przesuwasz kulkę za pomocą kombinacji z klawiszami G, na końcu należy wcisnąć ENTER.
    Image

Krok 3: Pozycjonowanie kulki w labiryncie.

Teraz ustawimy kulkę prawidłowo w wybranym wcześniej miejscu labiryntu. Ta część może być nieco trudniejsza, bo będzie trzeba przybliżać się i oddalać w Widoku 3d, oraz upewnić się, że kulka jest poprawnie umieszczona nad podłogą oraz między ścianami w Labiryncie.

  • Użyj rolki w myszy do przybliżania i oddalania widoku. Jeżeli przytrzymasz kółko myszy i przesuniesz mysz, scena w widoku się obróci, i będzie można zobaczyć kulkę z innych kątów. Użyj czerwonej, zielonej lub niebieskiej strzałki lub skrótu G z klawiszami X, Y lub Z, aby ustawić prawidłowo kulkę.

Zauważysz, że jest dość trudno ustawić kulkę w widoku ogólnym, ale Blender ma na to dobre rozwiązanie.

  • Zmień widok na View selected (w Widoku 3d, na dole okna znajdziesz menu View, które wybierz, rozwiń i z niego wybierz polecenie View selected).
    Image

Po wyborze tego widoku, kulka powinna być widoczna w całej okazałości.

  • Używając niebieskiej, zielonej i czerwonej strzałki precyzyjnie ustaw kulkę, dbając o to, aby nie przecinała się i nie przenikała z żadną inną ścianką. Obracaj widok, aby sprawdzić z każdej strony, czy wszystko jest dobrze.
  • Wykonaj polecenie z menu View – View all.
    Image

Krok 4: Dodawanie materiału do kulki

Dodajmy kulce kolor. Zbliżmy widok do kulki – podobnie jak poprzednio.

  • Dodaj materiał do kulki tak samo jak zrobiliśmy to poprzednio dla labiryntu.
    • Wejdź do zakładki Materials i naciśnij New.
      Afbeelding
    • Daj materiałowi nazwę, na przykład biały
      Image
    • Wybierz kolor z białego prostokąta pod Diffuse lub zostaw taki kolor, jaki jest (w tym przypadku zostawiamy jak jest).

 

Krok 5: Zapis plik BLEND.

Teraz gdy dodaliśmy kulkę i jej materiał, należy zapisać plik.

 

Rozdział 3: Dodajemy fizykę

  • Obejrzyj poradnik wideo
  • Kontynuuj wykonywanie poszczególnych kroków opisanych poniżej.

Krok po kroku

Musimy zapewnić, aby piłka poprawnie się poruszała po labiryncie. Potrzebujemy systemu, który zdoła poprawnie wyliczyć kolizje kulki i ścian labiryntu, aby zachowanie gry było zgodne z naszym planem. Taki system nazywa się „fizyką gry” i musimy go zdefiniować.

Podpowiedź: Możesz przeskoczyć tę część i wejść od razu do rozdziału piątego, aby sprawdzić, jak piłka zachowa się bez „fizyki”, a potem wrócić tutaj i kontynuować dodawanie fizyki.

Krok 1: Wybierz silnik gry

Do obecnej chwili pracowaliśmy w silniku Blender Render. Teraz potrzebujemy przełączyć się do Blender Engine, w którym będzie możliwe działanie „fizyki”.

  • upewnij się, że piłka jest zaznaczona i w Trybie Obiektowym
  • przejdź do panelu z opcjami fizyki
    Image
  • Wybierz typ „fizyki” z listy Physics Type i ustaw Rigid Body.

 

Krok 3: Dodaj fizykę do labiryntu.

  • zaznacz labirynt prawym przyciskiem myszy

Widzimy nadal panel z ustawieniami fizyki, ale po zaznaczeniu labiryntu pokazują się nam opcje tylko dla labiryntu.

  • Ustaw rodzaj fizyki na Static (możliwe, że jest to ustawione domyślnie). Dlaczego static? Ponieważ nie chcemy, aby labirynt reagował na zdarzenia fizyczne, na przykład aby się odbijał od piłki. Chcemy natomiast, aby to piłka reagowała na kolizje z labiryntem i się od niego odbijała. Takie zachowanie zapewnia ustawienie Static dla labiryntu.
  • Sprawdź jak wygląda Collision Bounds (nieco niżej w panelu fizyki) i ustaw ją na Triangle Mesh. Dlaczego? Ponieważ chcemy, aby Blender liczył kolizje bardzo precyzyjnie.
    Image

 

Krok 4: Zapis plik BLEND.

 

Rozdział 4: Dodawanie lampy

  • Obejrzyj poradnik wideo
  • Wykonaj polecenia poniżej.

Krok po kroku

Jeżeli dodamy logikę gry i rozpoczniemy grę, będzie ona wydawała się cała czarna. Dzieje się tak z powodu braku światła na scenie.

Podpowiedź: przeskocz do Rozdziału 5 i zobacz jak to wygląda. Potem wróć tutaj i dodaj lampę.

Krok 1: Dodawanie lampy Sun

Możemy wykorzystać menu skrótów aby dodać lampę do sceny, która będzie świeciła jak słońce, równoległymi promieniami światła. Upewnij się, że Kursor 3D jest umieszczony ponad labiryntem.

  • Używając menu: Wybierz Add z dolnego menu w Widoku 3D, a potem wybierz polecenie Lamp – Sun.
    Image
  • Alternatywnie – możesz użyć skrótu: gdy mysz jest w Widoku 3D, wciśnij Shift+A, wybierz menu Lamp i polecenie Sun, a potem wciśnij ENTER.
    Image

Krok 2: Ustaw lampę

Potrzebujemy teraz ustawić lampę odpowiednio ponad labiryntem. Zatem przesuń ją do góry, używając do tego celu osi Z.

  • Upewnij się, że lampa jest zaznaczona.
  • Przesuń lampę wzdłuż niebieskiej strzałki. Lub wciśnij G, a potem Z, aby włączyć przesuwanie obiektu po osi Z, przesuń obiekt i na końcu przesunięcia wciśnij ENTER lub kliknij lewym przyciskiem myszy.
    Image

Jeżeli lampa nie jest na środku, możesz zawsze przesunąć ją w kierunku środka przez użycie czerwonej, zielonej i niebieskiej strzałki lub poprzez użycie klawisza G (który włącza ogólnie przesuwanie) a potem klawiszy X, Y lub Z określających kierunki przesuwania. Po zakończeniu przesuwania wciśnij ENTER.

 

Krok 3. Zapisz plik BLEND.

Rozdział 5: Dodawanie logiki gry.

  • Obejrzyj poradnik wideo
  • Wykonaj polecenia poniżej.

Krok po kroku

  • Krok 1: Przełącz się do widoku Game Logic.
    Image

Jeżeli przełączymy się widoku Game Logic może się zdarzyć, że labirynt będzie ustawiony w widoku Ortho  W lewym górnym rogu zobaczysz wtedy napis Ortho view. Ten widok nie jest zbyt pomocny w tej chwili.

Image

Jeżeli jesteś w widoku Ortho view, przełącz się do widoku Perspecitive View, korzystając z menu pokazanego poniżej:

Image

Może się także zdarzyć, że labirynt jest przekręcony. Użyj środkowego klawisza myszy lub rolki myszy do ustawienia labiryntu w taki sposób, aby kulka była w zaplanowanym przez Ciebie narożniku (w tym przypadku mamy ją w prawym dalszym rogu). Masz podgląd sytuacji na obrazku poniżej:

Image

 

Krok 2: Dodajemy sensory, kontrolery i aktuatory

Chcemy mieć możliwość przesuwania labiryntu w taki sposób, aby kulka zaczęła się kręcić. Możemy poruszać labiryntem za pomocą klawiszy lub ruchów myszą lub jeszcze w jakiś inny sposób.

Dla tego przypadku użyjemy klawiszy strzałek, opisanych jako GÓRA, DÓŁ, PRAWO, LEWO.

Aby ustawić tego typu klawiaturę będziemy dodawać elementy logiki gry w postaci klocków „logicznych”, które po połączeniu zaczną działać i wywoływać odpowiednie dla nas efekty i zachowania.

Sensory

Sensory w Blender Game Engine są czujnikami, dzięki którym cokolwiek się w ogóle może wydarzyć. W grze może nastąpić jakieś wydarzenie, np. kolizja dwóch obiektów, lub naciśnięcie przycisku myszy. Gdy takie zdarzenie zostanie wykryte przez sensor, mówimy o jego „odpaleniu” lub „wzbudzeniu” (ang. sensor triggered). Otrzymujemy wtedy wiadomość w postaci pozytywnego „pulsu”, który może być wysłany do kontrolerów które są z danym sensorem powiązane.

Kontrolery

Są to elementy gry, które zbierają dane pochodzące z sensorów, i przetwarzają je na różne sposoby, używając wybranej funkcji, np. AND, OR, XOR itp. Możliwe jest także uruchomienie własnego kodu napisanego w Pythonie, który zajmie się realizacją różnych zadań.

Akturatory

Aktuator (wyzwalacz, czasami także sprawca, lub wykonawca) wykonuje akcję taką jak ruch, zagranie dźwięku, zmiana jakiegoś parametru, itp. Akcja zaplanowana w Aktuatorze zostanie wykonana tylko wtedy, gdy otrzyma on pozytywny sygnał (puls) od kontrolera.

W naszym przypadku gdy naciśniemy klawisz LEWO, chcemy aby labirynt przekręcił się trochę w osi np. X lub Y o niewielką wartość, np. 0.1 stopnia.

Z klawiszem PRAWO nasz labirynt powinien przekręcać się w drugą stronę o ułamek stopnia (np. -0.1 stopnia).

W klawiszem GÓRA labirynt powinien przekręcić się w innej osi o niewielki kąt, a z klawiszem DÓŁ nastąpić ma taki sam obrót w przeciwną stronę. Posiadanie takich klawiszy pozwoli nam na ruszanie planszą i w efekcie spowoduje przesuwanie się i toczenie kulki.

Klawisze strzałek będą zatem sensorami, i kiedy odpowiedni klawisz zostanie naciśnięty, spowoduje to odpowiedni obrót wykonany przez aktuator. Połączone one zostaną przez kontrolery z funkcją AND.

  • zaznacz labirynt, upewnij się, że jesteś w Trybie Obiektowym
  • dodaj sensor klawiatury poprzez wybranie go z Add Sensor – Keyboard w panelu w którym znajduje się edytor Logic Bricks (to ta dolna część ekranu).
    Image
    Powinien pojawić się panel o nazwie Keyboard.
  • Kliknij na puste pole obok napisu Key. Pojawi się na nim napis Press a key, co oznacza, że należy nacisnąć jakiś klawisz.
  • Naciśnij klawisz LEWO na klawiaturze. Na polu zamiast napisu Press a key pojawi się napis Left arrow.
    Image
  • Dodaj kontroler. Potrzebować będziemy kontrolera typu AND.
    Afbeelding

Po dodaniu kontrolera, ekran powinien zawierać dwa panele, pokazane poniżej:

Afbeelding

  • Należy teraz połączyć sensor z kontrolerem. Możemy to zrobić poprzez połączenie kropki obok panelu sensora z kółkiem obok panelu kontrolera. Kliknij lewym klawiszem myszy na kropce i przeciągnij ją w kierunku kółka. Gdy umieścisz kropkę w kółku, zestawione zostanie połączenie dwóch elementów:
    Afbeelding

Dodaliśmy do tej pory sensor i kontroler. Potrzebujemy jeszcze dodać aktuator i zdefiniować w nim ruch.

  • Wybierz z menu aktuatorów aktuator Motion.
    Afbeelding

Pojawi się panel aktuatora. Ponieważ chcemy aby labirynt kręcił się w lewo, musimy zdefiniować obrót na osi Y.

Uwaga: możliwe, że Twoje osie będą zamienione lub odwrócone. W tym przypadku odpowiednio dostosuj swoje ustawienia, zmieniając np. inną oś.

  • Kliknij na wartości Y obok pola Rot i wpisz wartość 0.1. Oznaczać to będzie, że labirynt będzie się obracał wokół osi Y o 0.1 stopnia podczas wciskania klawisza LEFT.
  • Połącz kontroler z aktuatorem tak samo jak poprzednio łączyliśmy sensor z kontrolerem.

Afbeelding

 

Jak do tej pory konfigurowaliśmy klawisz LEWO w taki sposób, aby jego naciśnięcie obracało planszę o 0.1 stopnia w osi Y. Teraz możemy to wypróbować.

  • Wypróbujemy to: przesuń mysz nad Widok 3D i wciśnij klawisz P. Wciśnij następnie klawisz LEWO i obserwuj w którą stronę przekręca się plansza. Naciśnij ESC aby zakończyć grę i wrócić do Blendera.

Jeżeli plansza nie obracała się we właściwą stronę, możesz potrzebować zmienić lub poprawić wartość lub oś obrotu zdefiniowaną w aktuatorze.

Potrzebujemy jeszcze dodać rotacje dla pozotałych klawiszy i osi, gdzie:

  • PRAWO będzie obracać planszę o -0.1 w osi Y
  • GÓRA będzie obracać planszę o 0.1 w osi X
  • DÓŁ będzie obracać planszę o -0.1 w osi X

Pamiętaj! Jeżeli obroty wychodzą w „dziwną” stronę, zmień osie lub wartości. Obracanie planszą powinno być coś intuicyjne.

Po dodaniu pozostałych elementów (i zwinięciu niektórych) ekran powinien wyglądać tak:

Afbeelding

Spróbuj teraz zagrać w grę, która powinna działać po wciśnięciu P. Aby wyjść z gry lub ją przerwać naciśnij ESC. Sprawdź, czy kulka porusza się prawidłowo.

Jeżeli chcesz, aby labirynt poruszał się szybciej, zwiększ odpowiednie wartości obrotów w aktuatorze.

 

Krok 3: Zapisz swój plik Blend.

Rozdział 6: Tworzenie punktu końcowego

  • Obejrzyj poradnik wideo
  • Wykonaj polecenia poniżej.

Krok po kroku

W tym poradniku dodamy punkt zakończenia gry. Dokonamy tego poprzez dodanie do labiryntu sześcianu, który przeskalujemy tak, aby przypominał kafelek leżący na podłodze. Jeżeli kulka dotknie takiego obiektu, gra się zakończy. Będziemy nadal pracować w Blender Game Engine w widoku Game Logic View.

 

Krok 1: Dodajemy sześcian

Zdecyduj, w którym miejscu chcesz umieścić punkt docelowy dla kulki. W tym poradniku użyjemy lewego narożnika położonego z przodu.

  • Umieść Kursor 3D w pobliżu lewego narożnika labiryntu. Wystarczy, gdy klikniesz tam lewym klawiszem myszy.
  • Dodaj Sześcian:
    • Sposób 1: użyj skrótu klawiszowego Shift+A, i wybierz polecenie Mesh – Cube z menu.
      Image

Sześcian powinien pojawić się w okolicy lewego narożnika. Możesz obrócić widok aby lepiej widzieć.

Image

Krok 2: Uczyń labirynt rodzicem sześcianu.

  • wciśnij P i obróć nieco labirynt w trybie gry, ESC aby wyłączyć grę

Zauważysz zapewne, że sześcian w ogóle się nie porusza i że labirynt z łatwością go przenika. Aby sześcian „przykleił się” do labiryntu, i poruszał się razem z nim, potrzebujemy wykonać operację „parentowania”, czyli ustawiania rodzica. Labirynt musi stać się „rodzicem” sześcianu, i wtedy sześcian będzie podążał za nim podczas każdego ruchu.

  • Jesteśmy nadal w Game Logic.
  • Upewnij się, że sześcian jest zaznaczony.
  • Znajdź zakładkę Object w panelach po prawej stronie:
    Afbeelding
  • Znajdź panel Relations a tam z listy Parent wybierz obiekt Plane.
  • Sprawdź Outliner. Sześcian powinien stać się teraz częścią obiektu Plane. Widok Outlinera jest widokiem na Twoje obiekty umieszczone na scenie. W BGE widok Outlinera jest w górnej lewej części okna Blendera. W standardowym Blender Render obszar Outliner znajduje się w górnej prawej części okna.
    Image
  • Naciśnij P i sprawdź, czy sześcian Cube przesuwa się jednocześnie z labiryntem.

 

Krok 3: Nadaj kolor sześcianowi

W tym poradniku nadamy sześcianowi kolor niebieski, ale możesz wybrać również jakiś inny.

  • Upewnij się, że sześcian Cube jest zaznaczony.
  • Przejdź do panelu z Materials i stwórz nowy materiał, naciskając przycisk New.
  • Nadaj materiałowi nazwę. Na przykład blue-cube.
    Image
  • Wybierz kolor materiału, klikając w biały prostokąt w podpanelu Diffuse. W tym poradniku wybieramy niebieski.
    Image

 

Krok 4: Fizyka

Labirynt jest utworzony jako statyczny obiekt, więc musimy zdefiniować sześcian także jako statyczny, ponieważ nie chcemy, aby przemieszczał się po kolizji z kulką.

  • Przejdź do zakładki z Physics, znajdującej się w ostatniej pozycji na prawo. W liście rozwijanej Physics type wybierz opcję Static. Możliwe, że będzie to wartość domyślna!
    Afbeelding

Krok 5: Przeskaluj sześcian Cube do wielkości kafelka

  • Użyj opcji z menu View – View Selected z Widoku 3D, aby powiększyć podgląd na sześcianie
  • Przejdź do Trybu Edycji (TAB)
  • Zmień rozmiar sześcianu wzdłuż osi Z używając klawisza S, potem Z i przesuwając mysz. Przeskaluj sześcian tak, aby zrobił się płaski, ale trochę wystawał ponad podłogę.
    Image
  • Używając niebieskiej, zielonej i czerwonej strzałki manipulatora, ustaw starannie obiekt aby miał prawidłową pozycję na podłodze.
    Image

Krok 6: Dodaj logikę gry do kafelka

W tym poradniku chcemy aby gra zakończyła się, w chwili gdy kulka dotknie kafelka. Możemy osiągnąć ten cel przez dodanie pewnej własności do kulki i ustawienie sensora na kafelku, który zaktywuje się w momencie gdy kulka w niego trafi. Wtedy zostanie wysłany pozytywny puls do aktuatora który zakończy grę.

  • ustaw powiększenie widoku za pomocą View – View All
  • zaznacz kulkę
  • wejdź do panelu Properties w obszarze Logic Editor i dodaj własność poprzez naciśnięcie Add game property. Nazwij własność is_ball.
    Afbeelding
  • Dodaj sensor, kontroler i aktuator w edytorze logiki dla zaznaczonego kafelka. W tym celu, wykonaj po kolei:
    • zaznacz kafelek
    • dodaj sensor Collision
      Afbeelding
    • ustaw Property w sensorze na wartość is_ball
      Afbeelding
    • dodaj kontroler przez wybranie kontrolera AND z Add controller
    • Dodaj aktuator o nazwie Game. Ustaw go w tryb Quit Game w polu Game:
      Image
  • Połącz ze sobą sensor, kontroler oraz aktuator przeciągając odpowiednie kropki na odpowiednie kółka.

Zagraj w grę po naciśnięciu P i sprawdź, czy rzeczywiście gra się kończy w chwili, gdy kulka dotknie punktu końcowego, którym stał się kafelek.

 

Krok 7: zapisz plik BLEND

 

W chwili obecnej stworzyłeś prostą grę. Ta gra może być zrobiona znacznie ładniej i można ją rozszerzyć. W następnych częściach zajmiemy się ulepszeniami.

 

Rozdział 7: dwukolorowa kulka

  • Obejrzyj poradnik wideo
  • Wykonaj polecenia poniżej.

 

Krok po kroku

W tej części poradnika nadamy kulce dwa kolory. Aby to zrobić musimy przejść do widoku Default, ponieważ w nim praca z kulką będzie wygodniejsza.

 

Krok 1: Zmiana widoku

  • Przejdź do widoku Default
    Image

Krok 2: Dodaj kolejny materiał do kulki

  • Zaznacz kulkę i przybliż się do niej przez wybranie View – View Selected z dolnego menu View po lewej.
  • Sprawdź czy kulka jest poprawnie ustawiona. Jeżeli nie, użyj kolorowych strzałek do jej przesunięcia.
  • Przejdź do panelu Materials i dodaj kolejny slot materiału przez naciśnięcie znaku + obok listy z materiałami.
    Image
  • Kliknij na przycisku New aby dodać nowy materiał.
    Image
  • Nadaj materiałowi nazwę. Możesz wpisać nazwę nowego koloru.
    Image
  • Zmień kolor Diffuse przez wybranie swojego koloru. Dla potrzeb tego poradnika wybierzemy czerwony.
    Afbeelding

Krok 3: zaznacz ściany

W tym kroku będziemy zaznaczali tylko te ściany kulki, które chcemy mieć na czerwono.

  • Włącz Tryb Edycji (TAB).
  • Wybierz tryb pracy ze ścianami z przycisków na pasku stanu Image
  • Zaznacz pierwszą ścianę na kulce, następnie wciśnij SHIFT i zaznczaj kolejne ściany, które chcesz zmienić na inny kolor.

Podpowiedź: Podczas zaznaczania możesz potrzebować obrócić kulkę. W tym przypadku puść klawisz SHIFT i użyj środkowego przycisku myszy (wciśniętej rolki) aby przekręcić widok i zobaczyć kulkę z innej strony. Gdy wykonasz już obrót sceny w celu lepszego widzenia, wciśnij ponownie SHIFT i zaznaczaj ściany dalej.
Image

  • Nadaj zaznaczonym ścianom kolor przez:
    • Kliknięcie na wybrany materiał w panelu z materiałami
    • Kliknięcie na przycisk Assign
      Afbeelding

Wszystkie zaznaczone ściany powinny być teraz kolorowe.

Image

  • Użyj środkowego klawisza myszy lub rolki aby obejrzeć kulkę ze wszystkich stron. Może być tak, że nie będzie można zaznaczyć niektórych ścian ponieważ labirynt będzie blokował dostęp. Można wtedy przełączyć widoczność labiryntu i uczynić go niewidocznym w Outlinerze:
    Afbeelding
  • Kliknij na oko w wierszu w którym jest obiekt Plane. Labirynt powinien stać się niewidoczny (u Ciebie nazwy obiektów mogą być inne – wypróbuj wtedy inne obiekty, któryś z nich to labirynt).
  • Zaznacz pozostałe ściany kulki które chcesz mieć pokolorowane i nadaj im ten kolor (pamiętaj o naciśnięciu Assign)
    Image
  • Nie zapomnij o dolnej części kulki:
    Image

Możesz na końcu uczynić labirynt na powrót widocznym przez ponowne kliknięcie na ikonę okna w Outlinerze.

 

Krok 4: Zapis plik BLEND

Wyzwanie: spróbuj dodać do kulki więcej niż 2 kolory!

 

Rozdział 8: Cienie

  • Obejrzyj film a potem wykonaj zalecane poniżej kroki.

 

Krok po kroku

W tej części poprawimy położenie lampy oraz wygląd cieni, które światło powinno rzucać na labirynt. Będziemy kontynuować pracę w Blender Game Engine i w widoku Game Logic View.

  • przejdź do Trybu Obiektowego
  • wybierz opcję View – View All
  • Outlinerze kliknij na oko obok obiektu Plane aby labirynt znowu stał się niewidoczny.

Przejdź do BGE i do widoku Game Logic. Zobacz rozdział 3 lub 5 jeżeli chcesz przypomnieć sobie jak poruszać się po BGE lub Game Logic.

 

Krok 1: Zaznacz cieniowanie

  • Przełącz tryb wyświetlania materiałów na Texture. Widok 3D jest najczęściej domyślnie w trybie Solid (biała ikonka kulki w menu w pasku stanu). W tym menu wybierz Texture. W tym trybie lepiej widać cienie.
    Afbeelding
  • Zaznacz lampę typu Sun. Po prawej stronie znajdź panel Properties (dostępny po wciśnięciu N – może być domyślnie niewidoczny, wtedy przełącz go przez N).
    Image
  • Chcemy, aby BGE policzył światła i cienie nieco dokładniej. W tym celu musimy ustawić opcje cieniowania w panelu Properties. Znajdź podpanel Shading i wybierz z menu opcję GLSL (zamiast Multitexture).
    Afbeelding

Dzięki cieniowaniu możemy wpłynąć na to, jak gracz postrzega głębię obrazu w grze i jak wyraźnie widzi świat. Cieniowanie może używać wielu poziomów cienia aby uzyskać dobry efekt. Użyjemy tej własności do poprawienia cieni. Włączyliśmy GLSL, które korzysta z języka shaderów OpenGL, specyficznego języka programowania, pozwalającego opisać wygląd obiektów. Oczywiście nie musimy niczego programować.

 

Krok 2: Obróć lampę

Aby poprawić wygląd cieni, lampa Sun nie powinna być skierowana pionowo w dół, ale powinna raczej świecić pod pewnym kątem. Aby uzyskać przechylenie promieni światła, musimy obrócić lampę w osi X lub Y. W tym poradniku przekręcimy lampę o -30 stopni w osi X oraz o -15 stopni w osi Y. Możemy użyć:

  • Okna właściwości (Properties) i panelu Transform – wystarczy wpisać tam -30 dla rotacji X i -15 dla rotacji Y.
    Afbeelding
  • Możemy też użyć skrótów i po zaznaczeniu lampy po prostu wcisnąć klawisze: R, potem X, potem -30, potem ENTER. Dla rotacji na osi Y postępujemy podobnie: R, Y, -15, ENTER.

 

Krok 3: Aktywujemy cienie

  • Przechodzimy do ustawień światła w panelu Light po prawej stronie ekranu (mała ikonka słońca). W tym panelu znajdujemy i włączamy podpanel Shadow i włączamy opcję Shadow Box.
    Afbeelding

Poprzez aktywację opcji Shadow Box możemy zobaczyć gdzie i jak obliczany będzie cień. Zobaczymy też, że cień dla labiryntu jest liczony tylko częściowo. Możemy to poprawić poprzez takie ustawienie lampy, w którym cień jest liczony dla całego labiryntu.

Krok 4: poprawianie stożka cienia

  • Przesuń lampę tak, aby światło padało na środek labiryntu. Użyj strzałek do przesuwania lampy. Możesz też nacisnąć G i użyć przesuwania za pomocą myszy.
    Afbeelding
  • Użyjemy teraz parametru Frustrum, który określa co jest widoczne. Parametr ten należy zwiększyć tak, aby światło i cienie były obliczane na terenie całego labiryntu.
    Afbeelding

Krok 5: Poprawiamy jakość

Efektem ubocznym zmieniania wartości Frustrum jest fakt, że jakość światła i cienia spada. Można łatwo zauważyć obszary oświetlone nieprawidłowo. Aby to poprawić możemy zwiększyć jakość w panelu Quality na wartość 1024.

  • Zmień parametr Quality – Size na wartość 1024.
    Afbeelding

Naciśnij klawisz P i zaobserwuj, czy cienie w grze wyglądają teraz lepiej.

 

Krok 6: Zapisz plik BLEND.

 

Rozdział 9: Teksturowanie labiryntu

  • Obejrzyj materiał wideo, aby zrozumieć, co trzeba zrobić. Następnie wykonaj opisane poniżej kroki.

 

Krok po kroku

W tym poradniku nadamy labiryntowi wygląd taki, jakby był zrobiony z drewna. Teksturowanie, oraz mapowanie UV to metoda na poprawienie wyglądu obiektów. Posiadając teksturę możemy w szczegółach wpływać na to, jak wygląda materiał. Możemy zmieniać kolor, połysk, lub wygląd nierówności na powierzchni. Używając teksturowania lub mapowania UV nakładamy na obiekt 3d odpowiednio pofałdowany obraz 2d. W tym poradniku wykorzystamy dwa obrazki. Jeden z nich będzie zmieniał kolor labiryntu, a drugi będzie zmieniał wygląd nierówności na powierzchni. Pierwszy obrazek nazywamy colormap a drugi nosi określenie normalmap.

Obrazki są już gotowe do pobrania:

Icon DryCrackedBoards-ColorMap.png (117.7 KB)

Icon DryCrackedBoards-NormalMap.png (7.6 KB)

Pobierz i zapisz te pliki, najlepiej w katalogu w którym trzymasz swój projekt gry.

 

Krok 1: Dodawanie tekstury opisującej kolor

Zaczniemy od colormap.

  • Upewnij się, że jesteś w Trybie Obiektowym
  • Zaznacz labirynt
  • Wejdź do panelu z cieniowaniem tekstur (Rozdział 8)
  • Najpierw wejdź do panelu z materiałami (Materials)
  • Następnie kliknij w panel zakładki z teksturami (Texture).

Przed dodaniem tekstury do obiektu, Blender musi wiedzieć na jakim materiale ma być ta tekstura. Materiał jest w pewien sposób zasobnikiem, w którym znajdują się tekstury. Przez wejście najpierw do zakładki z materiałami a potem z teksturami mówimy Blenderowi, że chcemy teksturować materiały. Domyślnie Blender będzie wtedy stosował teksturę zmieniając pierwszoplanowy kolor obiektu.

Image

 

  • Kliknij New aby dodać nową teksturę.
  • Daj teksturze nazwę Color
  • Sprawdź, czy tekstura jest typu Image or Movie. Chcemy aby miała taki właśnie typ. W nowszych wersjach Blendera jest to ustawienie domyślne.
  • Kliknij na Image – Open aby otworzyć plik DryCrackedBoards-ColorMap.png.
    ImageAfbeelding

W Widoku 3D nowa tekstura powinna zostać załadowana a labirynt może uzyskać dzięki temu ciemniejszy kolor, ale nie będzie jeszcze miał wyglądu drewna. Dzieje się tak dlatego, że Blender nie wie jeszcze jak układać teksturę na ścianach modelu labiryntu. Labirynt ma wymiary 3D i współrzędne X, Y i Z. Tekstura ma tylko wymiary 2D wyrażone przez współrzędne X oraz Y. Blender musi zatem dowiedzieć się, jak współrzędne obrazka 2D mają się mapować i układać na współrzędnych obiektu 3D. Robi się za pomocą mapy UV.

 

Krok 2: Mapowanie UV

  • Wejdź do zakładki Data.
  • Dodaj mapę UV przez wciśnięcie PLUS w panelu UV Maps.
    Afbeelding
    Afbeelding

Po dodaniu mapy UV, tekstura w labiryncie powinna stać się widoczna. Standardowo, na każdej ścianie będzie umieszczony cały obrazek. Aby się upewnić – zaznaczmy UV Map w zakładce Texture:

  • przejdź do panelu z materiałami (dla pewności)
  • przejdź do zakładki z teksturami
  • w podpanelu Mapping
    • Zaznacz UVMap dla pola Map

Możesz zmieniać sposób, w jaki tekstura jest rozmieszczona na ścianach labiryntu. Robi się w zakładce Texture, w panelu Mapping.

  • Zmień wartość x lub y w polach Scale. W ten sposób możesz skalować teksturę.
  • Zapamiętaj wartości x oraz y, bo będziemy ich potem potrzebować.

Labirynt ma drewniany wygląd ale nadal wydaje się nieco uproszczony i płaski. Możemy dodać do niego nierówności powierzchni i uczynić go nieco bardziej realistycznym. Osiągniemy to poprzez dodanie normalmap. Z teksturą w rodzaju normalmap zmieniamy wektor normalny każdej ściany, imitując drobne zakrzywienia i nierówności. Wektor normalny to wektor prostopadły do danego elementu powierzchni.

 

Krok 3: Dodajemy mapę normalną

  • zaznacz drugie, puste miejsce na liście tekstur
  • kliknij New aby dodać nową teksturę.
    Afbeelding
  • Nazwij teksturę, np. normal
  • Przejdź do Image – Open i otwórz plik DryCrackedBoards-NormalMap.png. Jest to specjalnie przygotowana tekstura, zwana mapą normalną.
    Afbeelding

Labirynt może się teraz zrobić niebieski lub różowy, ponieważ Blender nie wie jeszcze jak ma używać wstawionego obrazka i zakłada, że jest to mapa zmieniająca kolor. Ta tekstura powinna być jednak użyta jako normalmap.

  • Przejdź do podpanelu Influence w panelu Texture
  • Odznacz Diffuse – Color (Blender domyślnie mapował teksturę na kolor)
  • Zaznacz Geometry – Normal, w prowadź w miejscu gdzie jest suwak wartość 3.
    Afbeelding

Teraz potrzebujemy ustawić takie same parametry, jak zrobiliśmy to dla poprzedniej tekstury, colormap.

  • Mapping – Map wybierz UVMap
  • Jeżeli zmieniona została skala tekstury colormap, to wpisz takie same wartości dla skali X i Y w ustawieniach tekstury normalmap. Dzięki temu zapewnisz, że nierówności będą tak samo dopasowane jak dopasowany jest kolor.
    Afbeelding

Krok 4: Zapisz plik BLEND

 

Rozdział 10: Dodajmy zegar i scenę końcową

  • Obejrzyj poradnik wideo a potem wykonaj polecenia.

 

Krok po kroku

W tej części dodamy zegar. Jeżeli gracz zdąży przesunąć kulkę do punktu końcowego zanim upłynie czas, wtedy graczy wygrywa. Jeżeli nie zdąży, to przegrywa. Zaczniemy od sytuacji, w której graczy wygrywa. Chcemy, aby pojawił się na ekranie napis „You have won”, który oznacza „Wygrałeś”.

 

Krok 1: Dodawanie sceny wygrywającego

Dodamy scenę która wyświetli napis You have won. Sceny są metodą na organizację pracy i łatwiejsze zarządzanie całym projektem. Dodamy nową scenę ponieważ chcemy pokazać jedynie tekst z ogłoszeniem wyniku, zamiast labiryntu i kulki.

  • Dodaj scenę przez naciśnięcie na PLUS w górnej części ekranu z menu wyboru scen. W menu New Scene wybierz opcję New.
    Afbeelding
  • Standarodowo nowo dodana scena używa silnika Blender Render. Zmień to na Blender Game (zobacz rozdział 3).
  • Outlinerze ustaw nazwę sceny na Win (w tym przykładzie jest Gewonnen). To dlatego, że ten poradnik jest tłumaczeniem z angielskiego, który był tłumaczeniem z holenderskiego.
    Image
  • W Widoku 3D, dodaj tekst przez wybranie Text z panelu Toolbox lub poprzez skrót Shift+A i wybranie z menu polecenia Text.
    Afbeelding

Tekst będzie umieszczony na płasko w scenie 3d. Może znajdować się nawet do góry nogami, zależnie od tego, jak masz obrócony widok. Użyj środkowego przycisku myszy i rolki, aby poprawić ustawienie widoku.
Image

Teraz dodamy kamerę:

  • Toolbox kliknij Camera lub za pomocą skrótu Shift+A wybierz Camera.
    Afbeelding

Teraz poprawimy tekst.

  • Zaznacz tekst
  • Przejdź do Trybu Edycji
    Image
  • Napisz zamiast słowa „text” zdanie „You have won” (lub „Gewonnen”) lub „WYGRANA”. Na koniec wciśnij ENTER.
    Image

Ustawmy teraz kamerę w taki sposób, abyśmy widzieli tekst.

  • Przejdź do Trybu Obiektowego
    Image
  • Zaznacz kamerę prawym klawiszem myszy.
  • Przejdź do panelu Properties (jeżeli go nie widać, wciśnij N).
  • Ustaw LocationRotation (położenie i orientację) kamery na wartość zero w polach X, Y, i Z.
    Image
  • Wejdź do widoku kamery (Camera View). Z menu na dole wybierz polecenie View – Camera.
    Afbeelding

Patrzymy teraz przez kamerę. Prawdopodobnie widzisz tylko szary kolor, bez tekstu. To dlatego, że kamera jest zbyt blisko. Musimy ją trochę odsunąć, poprzez przesuwania w osi Z.

  • przejdź do panelu Properties tam gdzie jest podpanel Transform.
  • Popraw wartość położenia Z przez zmianę na przykład na 15.
    Image
  • Sprawdź, czy widzisz tekst. Jeżeli nie, musisz jeszcze poprawić ustawienie wartości Z, aż tekst będzie widoczny.

Jest bardzo prawdopodobne, że tekst nie jest umieszczony centralnie w widoku kamery. Jeżeli chcesz to poprawić, trzeba nieco przesunąć kamerę.

  • Aby tekst był pośrodku, zaznacz kamerę i ustaw jej położenie zmieniając nieco wartości X lub Y w podpanelu Transform. Możesz także skorygować rotację kamery, jak na poniższym rysunku:
    Image

Krok 2: dodawanie sceny dla przegranej

Dodamy teraz scenę w której będzie napisane „You have lost” co oznacza „przegrałeś”. Robi się to tak samo, jak w przypadku sceny dla wygranego, tylko tekst jest inny.

  • Dodaj scenę dla przegranego z napisem „You have lost„. Nazwij scenę Lost.

Krok 3: dodaj nową logikę gry do kulki

Musimy teraz wrócić do sceny z podstawową grą.

  • Z menu scen na górze ekranu, wybierz Scene.
  • Przejdź z widoku kamery do widoku Top view przez wybranie View – Top z menu View.
  • Przybliż widok jeżeli to koniecznie, używając rolki myszy.

Jesteśmy w scenie gry. W części 3 dodaliśmy logikę gry, która decydowała, że jeżeli kulka dotknie punktu końcowego, gra się kończy. Ta logika obecnie już nie będzie obowiązywać i musimy ją zmienić.

  • Zaznacz punkt końcowy (ten kafelek Cube)
  • Jeżeli nie jesteś w widoku Game Logic przejdź do niego teraz.
  • Usuń klocki logiczne, które dodaliśmy w części trzeciej:
    • usuń sensor, przez kliknięcie na przycisku X
    • usuń kontroler przez kliknięcie na X
    • usuń aktuator przez kliknięcie na X

Dodamy teraz inną logikę: jeżeli kulka dotknie punktu końcowego, wtedy gracz wygrywa. Zaczniemy od dodania własności gry do punktu końcowego o nazwie is_finish.

  • Upewnij się, że obiekt końcowy jest zaznaczony
  • Dodaj własność gry o nazwie is_finish
    Image

Gdy piłka zetknie się z punktem końcowym, który ma ustawioną własność is_finish, wtedy wyświetlić się ma scena z wygraną.

  • Zaznacz kulkę prawym klawiszem myszy
    Image
  • Dodaj sensor o nazwie Collision
    Image
  • Ustaw Property w sensorze na is_finish
    Image
  • Dodaj kontroler typu And.
  • Połącz sensor z kontrolerem.
    Image
  • Dodaj aktuator Scene.
    • Wybierz Scene z rozwijanej listy dostępnych aktuatorów
    • Ustaw Mode na wartość Set Scene i parametr Scene na Win (lub na taką nazwę, jaką nadałeś scenie dla wygranego)
      Image
  • Połącz kontroler z aktuatorem.

Wyzwanie: możesz także stworzyć logikę odwrotną. Zatrzymaj własność na kulce is_ball i ustaw sensor w punkcie końcowym który wyświetli scenę końcową wtedy, gdy nastąpi kolizja z is_ball. Wypróbuj to.

 

Krok 4: dodaj do gry stoper

Dodamy do gry stoper. Aby to osiągnąć musimy dodać do własności gry element o nazwie Timer. Jeżeli czas się skończy, gracz przegra.

  • Upewnij się, że kulka jest zaznaczona.
  • Wyświetl własności (Properties). Jeżeli ich nie widać, w lewym dolnym rogu znajdziesz menu View. W tym menu jest polecenie Properties, które kliknij. Prościej jest wcisnąć N :)
    Image

Powinien pojawić się panel Properties (może także pojawić się po lewej stronie).
Image

  • Kliknij na Add Game Property. Nowa linia pojawić się powinna. Nadaj jej nazwę timer i wybierz rodzaj Timer z rozwijanego menu.
    Image
  • Kliknij ikonkę z literką „i”. Dzięki temu będzie można zobaczyć wartość stopera w trakcie gry.
  • Aktywuj opcję Show Debug Information dostępną na samej górze okna w menu Game.
    Image

Teraz ustawimy zegar tak, że jeżeli się czas kończy, to pojawi się scena „You have lost” i nastąpi koniec gry.

  • Dodaj sensor o nazwie Property.
    Afbeelding
  • Jako własność Property w sensorze Property wybierz własność o nazwie timer.
    Afbeelding
  • Jako Evaluation Type wybierz opcję Greater Than, i ustaw wartość 60. Oznacza to, że gracz będzie miał 60 sekund (1 minutę) na przesunięcie kulki do punktu końcowego. Możesz dodać inną wartość, na przykład 120 oznacza 2 minuty.
    Image
  • Dodaj kontroler AND:
    Image
  • Podłącz sensor z kontrolerem.
  • Dodaj aktuator Scene.
    Image
  • Zmień wartość Mode i ustaw ją na Set Scene.
    Image
  • Wybierz scenę dla przegranej:
    Image
  • Podłącz kontroler do aktuatora.

Upewnij się, że masz ustawione Texture shading. Przesuń mysz nad labirynt. Wciśnij P aby zagrać. Sprawdź, czy inne czasy są lepsze dla rozgrywki.

 

Krok 5: Zapisz plik BLEND.

 

Więcej wyzwań!

Jesteś gotowy na poważniejsze wyzwania? Wypróbuj poniższe metody na rozszerzenie gry:

  • Dodaj trzy dodatkowe poziomy do gry.
    • Dodaj nową scenę w Blenderze (cześć 10 tłumaczy jak można to zrobić)
    • Wymodeluj swój własny kształt labiryntu i kulki
    • Dodaj materiały, fizykę, światło, i logikę gry.
    • Gdy kulka dotknie punktu końcowego gra przenosi się do następnego poziomu dzięki działaniu odpowiedniego aktuatora.
  • Dodaj kilka atrakcji.
    • Dodaj parę flag lub innych obiektów. Gdy kulka ich dotknie prędkość kulki powinna być zwiększona.
  • Dodaj punktację.
  • Dodaj dodatkowe źródła światła, aby gra wyglądała ładniej.
  • Dodaj drugą kulkę. Przeprowadzenie przez labirynt dwóch kulek na raz jest sporym wyzwaniem. Trzeba też główkować przy samym projektowaniu labiryntu.

 

To wszystko. Cały poradnik jest dostępny w oryginalnej wersji na stronie:
http://b3d101.org/en/labyrinth-game/

Opracowanie wersji polskiej: Piotr Arłukowicz, Polski Kurs Blendera.

 

 

11 thoughts on “Tworzenie prostej gry: Labirynt

  1. Odpowiedz Loukien Gru 17,2016 19:31

    Witam :) Chciałbym zaproponować, jedną przydatną rzecz do tego kursu. Miałem czasami problem z tym że kulka potrafiła „wylecieć” poza ekran w wyniku odbicia (kwestia fizyki) lub zbytniego przechylenia labiryntu. Jeśli ktoś nie chce takich wypadków to polecam zrobić nowego plane nieco nad maksymalną wysokością kulki, zaparentować do labiryntu, dodać fizykę static, dodać materiał i w zakładce shadow wyłączyć Cast oraz włączyć Cast Only. Taka mała sugestia ;)

    • Odpowiedz piotao Gru 18,2016 12:57

      To dobra sugestia. Podczas ustawiania fizyki static dla Plane blokującego można także włączyć mu opcję „Invisible” – będzie niewidoczny w grze. Inny sposób, to dodać actuator constraint i ograniczyć możliwość ruchu kulki w osi Z (pionowej), co zablokuje możliwość ‚wyskoku’. Trzeba jednak z tym uważać, bo obroty planszy muszą wtedy również mieścić się wyłącznie w tej przestrzeni, która jest dla kulki dozwolona.

  2. Odpowiedz Dominik Gru 7,2016 17:32

    jasny szlak mnie zaraz trafi chce zlaozyc kotno na forum ale sie nie da!

  3. Odpowiedz Jaszczur Gru 4,2016 19:46

    Jest jakaś opcja przeniesienia materiału zrobionego w nodach do GE ?

    • Odpowiedz piotao Gru 7,2016 13:51

      Materiały do GE można tworzyć w nodach, są to takie same nody jak dla Blender Internal. Nody Materiałowe. Nie wszystko działa – np. nie ma tekstur proceduralnych. A jeżeli masz materiał w Cycles, jedyne wyjście to bake do tekstur bitmapowych i potem ich odpowiednie użycie/kompozycja w BGE.

  4. Odpowiedz kuzmin Gru 4,2016 11:28

    Witam! Przepraszam, że się „wcinam”, ale znalazłem dwie literówki. W rozdziale 2, krok 2, strzałka 2 jest:”Przesuń następnie kulkę wzdłuż osi Y używając czerwonej strzałki.”. Wydaje mi się, że powinno być: „Przesuń następnie kulkę wzdłuż osi X używając czerwonej strzałki.”. I nie wiem, czy nie lepiej brzmiałoby: „Następnie przesuń kulkę wzdłuż osi X używając czerwonej strzałki.”. Druga „sprawa” – w rozdziale 10, krok 3, strzałka 12, jest: „Dodaj kontroler typu ADD.”, wydaje mi się, że powinno być: „Dodaj kontroler typu AND.”
    Pozdrawiam serdecznie.
    Ps. Super, że ma Pan jeszcze siłę i ochotę działać. W sumie to już parę ładnych lat się uzbierało.

  5. Odpowiedz Kamil1064 Gru 3,2016 18:12

    Będzie co czytać w chłodne dni :)

    • Odpowiedz piotao Gru 4,2016 01:49

      Super! I gdybyś znalazł błędy, a wiem na pewno, że jest ich co najmniej kilka, to daj proszę znać… :) Z błędami trzeba walczyć!

  6. Odpowiedz macikpra Gru 3,2016 15:18

    Świetna zabawa! Trochę czasochłonna, ale za to na koniec można się cieszyć, na pewno świetnym, efektem.

A Ty co o tym myślisz?