Jocuri create pe motorul blenderului. Crearea unor niveluri de joc și interacțiuni mai complexe

Acest tutorial vă va arăta cum să creați un joc 3D simplu de la zero în Blender. După finalizarea lecției, abilitățile pe care le veți dobândi vă vor permite să vă creați propriul joc 3D. Lecția presupune cunoștințe de bază despre Blender, dar nu și motorul de joc (GE) încorporat în ea. Vor fi abordate doar acele aspecte ale Blender care se referă la crearea de jocuri simple.

Va dura aproximativ 2 ore pentru a crea un joc 3D de la zero.

Nivel: începător - intermediar

Învățarea elementelor de bază ale motorului de joc Blender Puteți intra și ieși din modul Motor de joc folosind tastele [P] și.

Ne vom concentra pe caracteristicile specifice ale GE ale Blender. Să începem cu cele mai importante tastă rapidăîn Blender, cel care conduce GE. Mutați cursorul mouse-ului în zona ferestrei 3D și apăsați [P] pentru a începe jocul. Felicitări, tocmai ai jucat primul tău joc Blender!!! Cât de ușor a fost?

Până nu îi spunem lui GE ce să facă, nu se va întâmpla nimic pe scenă.

Setarea implicită a scenei

Înainte de a începe, să resetăm scena din Blender la starea inițială. Acest lucru se poate face în oricare dintre următoarele moduri:.

  • Selectați Fișier > Nou din meniu și faceți clic pe Ștergeți tot.
  • Apăsați și selectați Erase All.
  • Faceți clic pentru a ieși din Blender (în versiunile 2.42 și mai mici utilizați [Q]) și lansați-l din nou.

Acum este timpul să vezi cât de bun ești cu Blender. Configurați vizualizarea scenei așa cum se arată în imaginea din dreapta. Pentru a face acest lucru, trebuie să urmați acești pași.

  • Rotiți scena folosind butonul din mijloc al mouse-ului (MMB).
  • Setați vizualizarea în modul perspectivă folosind Vizualizare > Perspectivă (sau făcând clic pe ).
  • Adăugați cubul și lampa (presupunând că le-ați îndepărtat mai devreme și nu sunt în scena de deschidere).



Comenzi rapide de la tastatură utile atunci când lucrați cu GE

Una dintre tastele rapide utile atunci când lucrați cu Blender GE este tasta care maximizează fereastra 3D curentă.

Plasați indicatorul mouse-ului în zona ferestrei 3D și faceți clic pe (sau ). Aceasta va extinde fereastra 3D curentă la ecran complet. Dacă dați clic din nou, fereastra va fi restabilită la starea anterioară.

Reveniți puțin și exersați cu asta:

  • Maximizați fereastra 3D folosind
  • Apăsați [P] pentru a începe scena curentă în GE (nu se va întâmpla nimic)
  • Faceți clic pentru a reveni la modul de simulare
  • Restabiliți fereastra 3D la normal folosind

Imaginea din dreapta arată procesul de utilizare a tastelor de maximizare/restaurare ale ferestrei cu scena Blender inițială.


Selectarea modului corect de redare a scenei pentru GE

Intrați din nou în modul GE, plasând cursorul mouse-ului în fereastra 3D și apăsând [P]. Veți observa că scena în modul GE pare plată. Faceți clic pentru a reveni la modul de simulare. Blender are mai multe tipuri de redare a scenei în fereastra 3D, care sunt utilizate pentru diverse sarcini. Panoul în care este indicat modul curent de desenare este afișat mai jos.

Imaginile de mai jos arată cum arată scena principală în GE în diferite moduri de randare.

  • Modul solid nu ține cont de iluminarea din scenă.
  • Modul de umbrire ia în considerare iluminarea din scenă.
  • Modul texturat ia în considerare iluminarea și afișează texturi. Acest mod este cel mai apropiat de cum ar trebui să arate jocul și ar trebui selectat ori de câte ori începeți un nou proiect în GE.


Cel mai bun mod de randare pentru GE este modul Textured. Selectați acest mod din listă și apăsați din nou [P]. Veți observa că acum iluminarea afectează totul mediu inconjurator la GE, făcând forma generala mai realistic. Nu uitați să selectați modul Textured când rulați scena în GE și scena nu va arăta netedă.


Panoul logic principal al jocului


Sub fereastra 3D se află un panou care conține multe butoane diferite de controlat diverse instrumente Blender.

Puteți vedea panoul specific GE făcând clic pe pictograma violetă asemănătoare Pacman sau făcând clic pe .

Acesta este panoul cu care vei controla ce se va întâmpla în jocul tău.

Blender folosește un sistem vizual click-and-drag pentru a crea interacțiuni de bază în joc. Acest lucru permite GE să fie folosit chiar și de artiștii 3D care nu au abilități de programare. Blender înțelege și limbajul de programare Python, care poate fi folosit pentru a crea interacțiuni mai complexe în joc.

În acest tutorial ne vom concentra în mod special pe sistemul vizual pentru crearea de jocuri. Odată ce ați stăpânit elementele de bază ale utilizării GE, puteți urma împreună cu lecții mai avansate care vă arată cum să utilizați Python pentru a crea jocuri mai complexe.

GE Visual Control – Blocuri logice senzor, actuator și controler


Sistemul GE folosește blocuri logice ca cale pentru setări vizuale interacțiuni în joc. Aceste blocuri logice pot fi conectate vizual între ele pentru a crea întregul set de acțiuni din joc.

Există trei tipuri diferite de blocuri logice - Senzori, Controlere și Actuatori - fiecare cu propriul set de blocuri diferite.

Senzori

Senzorul reacționează la tipuri diferite date de intrare. Acestea pot fi apăsări de taste, butoane joystick sau evenimente de cronometru care au loc de fiecare dată când ecranul de joc (sau cadrul) este actualizat.

Actuatoare

Actuatorul realizează de fapt acțiunea din joc. Aceasta ar putea fi mutarea unui obiect în cadrul scenei, redarea unei animații sau redarea unui sunet.

Controlorii

Controlerele sunt folosite pentru a comunica senzorii cu actuatoarele. Ele oferă un control mai mare asupra modului în care senzorii și actuatorii interacționează între ei.

Configurarea unui lanț de blocuri logice de bază

Acum vom configura sistemul de bază prin adăugarea și interconectarea unui senzor, controler și actuator.

panoul GE. Asigurați-vă că panoul Logic este deschis (faceți clic pe Pacman violet din fereastra Butoane sau faceți clic pe ) și selectați cubul în fereastra 3D.

În fiecare dintre cele trei secțiuni principale ale panoului logic, puteți vedea numele obiectului selectat și butonul Adaugă de lângă acesta. Faceți clic pe acest buton o dată în fiecare dintre secțiuni: Senzor, Controler și Actuator.

Acum vom combina blocurile într-un singur sistem. Faceți clic pe soclu (cerc mic) din partea de jos a senzorului și trageți mouse-ul peste soclul de la începutul controlerului. În același mod, conectați priza de la capătul controlerului și priza de la începutul actuatorului.

Imaginile ilustrează pașii implicați în configurarea unui lanț simplu de blocuri logice și combinarea lor într-un singur sistem.

Apăsați [P] pentru a începe jocul. Veți observa că, deși am adăugat câteva setări la GE, încă nu se întâmplă nimic. Acest lucru va fi explicat în secțiunea următoare. Faceți clic pentru a reveni la Blender.

Distribuirea evenimentelor în sistemul GE

Să vedem ce se întâmplă cu sistemul nostru nou creat la GE. Tipul de senzor este setat la Întotdeauna. Acesta trimite constant (fiecare cadru) un semnal controlerului asociat cu acesta și este activat pe tot parcursul jocului.

Controlerul este setat la AND. Când semnalele de la toți senzorii asociați cu acesta apar la intrarea acestuia (in în acest caz,, unu), apelează automat actuatorul asociat acestuia.

Actuatorul controlează parametrii de mișcare ai obiectului. Datorită faptului că senzorul asociat controlerului este setat la Always, acest actuator se declanșează în fiecare cadru.

Dacă apăsăm [P] acum, actuatorul de mișcare se va declanșa continuu, dar deoarece toți parametrii actuatorului sunt setați la zero, actuatorul nu va mișca obiectul.

Efectuarea mișcării unui cub fără a folosi fizica

Să încercăm mai întâi să folosim controlul direct pentru a muta cubul în interiorul scenei. Mai târziu, vom face o scenă asemănătoare, dar vom folosi fizica. Prin utilizarea motorului de fizică încorporat (numit Bullet), interacțiunile mai complexe ale scenei, cum ar fi coliziunile și gravitația, vor fi gestionate automat.

Aruncă o privire la actuatorul de mișcare, în special cei trei parametri numerici de lângă eticheta dLoc. Fiecare dintre acești trei parametri poate fi utilizat pentru a ajusta locația unui obiect de-a lungul axelor X, Y și, respectiv, Z.

Setați valoarea parametrului mediu dLoc (axa Y, mișcare înainte) la 0,10.

Acum apăsați [P]. Veți vedea că cubul se mișcă continuu de-a lungul axei Y. Faceți clic pentru a reveni la Blender. Apăsați din nou [P]. Veți vedea că aceeași succesiune de evenimente se întâmplă din nou. Faceți clic pentru a reveni din nou la Blender.

Să rezumăm ce se întâmplă la GE. Senzorul trimite un semnal controlerului la fiecare cadru. Trimite un semnal către actuator, care la rândul său aplică Mișcare obiectului, care mișcă cubul cu 0,1 unități de-a lungul axei Y. Pe măsură ce se întâmplă acest lucru în fiecare cadru, vedem că cubul se mișcă continuu. Dacă lăsați jocul în funcțiune, cubul va merge în cele din urmă la infinit. Este la fel de interesant ca și cum să vezi iarba crește, așa că haideți să continuăm lecția!

Controlarea cubului folosind tastele cursor

Acum senzorul Always este responsabil pentru mutarea cubului. Vom schimba acest lucru, astfel încât mișcarea să poată fi acum controlată prin apăsări de taste.

Faceți clic pe opțiunea Întotdeauna a senzorului (sau atingeți<>în dreapta lui). Aceasta va afișa o listă de tipuri de senzori disponibile (vezi imaginea din dreapta).

Selectați Tastatură din listă. Ecranul tactil se va schimba acum pentru a afișa opțiunile de personalizare a tastaturii.

Acest panou nou Senzorul ne va permite să selectăm o tastă, apăsând care va trimite un semnal către controler, care, la rândul său, va transmite un semnal către actuator. Faceți clic pe butonul etichetat Key și când apare „Apăsați o tastă” pe el, apăsați butonul [Sus] de pe tastatură.

Apăsați [P] pentru a începe jocul. Cubul nu se mai mișcă automat. Apăsați tasta [Sus] și va începe să se miște. Când încetați să apăsați tasta, cubul se va opri. Apăsați din nou tasta și cubul va începe din nou să se miște. Faceți clic pentru a reveni la Blender.

Adăugarea de comenzi suplimentare de la tastatură



Acum vom adăuga capacitatea de a muta cubul înapoi și de a-l roti, permițându-vă să mutați cubul în jurul întregii scene.

Pentru a adăuga capacitatea de a vă deplasa înapoi, vom adăuga un nou set (aproape același) de blocuri logice. Faceți clic din nou pe butoanele Adaugă din panoul Senzori, Controlere și Actuatori pentru a crea trei blocuri logice noi. Conectați-le așa cum ați făcut înainte.

Cometariu. Aici puteți folosi cheia pentru a extinde și a restabili panoul logic, deoarece va începe rapid să devină aglomerat cu blocuri.

În senzorul nou adăugat, schimbați-i tipul la Tastatură și atribuiți tasta [Jos]. În noul actuator de mișcare, setați valoarea Y (a doua coloană) a parametrului dLoc la -0,1.

Apăsați [P] pentru a începe jocul. Dacă blocurile logice au fost configurate corect, acum puteți muta cubul înainte și înapoi folosind tastele [Sus] și [Jos].

Pentru a finaliza această parte a tutorialului, vom adăuga posibilitatea de a roti un obiect, astfel încât să puteți muta modelul în întreaga scenă.

Adăugați trei blocuri logice noi, conectați-le și schimbați tipul senzorului la Tastatură. Atribuiți tasta [Stânga] senzorului.

Acum să facem ca actuatorul de mișcare să rotească cubul. Vom roti obiectul în jurul axei sale Z. În parametrul dRot, setați valoarea Z (a treia coloană) la -0,1.

Lasează jocul. Acum, când apăsați tasta [Stânga], cubul se va roti. Și când, după ce ați rotit cubul, apăsați tasta [Sus], cubul va începe să se miște în direcția în care l-ați rotit. Faceți clic pentru a reveni la Blender. Să adăugăm capacitatea de a roti un obiect în cealaltă direcție.

Ca și înainte, adăugați trei blocuri logice noi, conectați-le și schimbați tipul de senzor la Tastatură.

Atribuiți tasta [Dreapta] senzorului și setați valoarea Z (a treia coloană) a parametrului dRot din actuatorul de mișcare la 0,1.

Lansați jocul din nou. Acum puteți muta cubul în jurul scenei folosind tastele cursorului. Rețineți că puteți adăuga această logică de joc oricărui obiect din Blender (indiferent de forma sau dimensiunea acestuia) și se va mișca exact la fel ca cubul nostru. Faceți clic pentru a reveni la Blender.

Câteva despre stocarea setărilor GE


Acum ne vom numi blocurile logice și le vom minimiza. Trebuie să păstrați panoul logic cât mai clar și mai clar posibil.

Acest lucru nu va afecta funcționalitatea logicii, dar va ajuta la menținerea panoului logic mai ușor de gestionat.

Faceți clic în panoul logic pentru a-l extinde pe ecran complet. În primul panou cu senzori, lângă tipul de senzor, puteți vedea o casetă de text care spune senzor. Acest nume ar trebui înlocuit cu ceva mai informativ. Schimbați acest text în „tasta sus”. Apoi, faceți clic pe butonul săgeată din dreapta câmpului de text pentru a restrânge panoul tactil.

Repetați acest lucru pentru alți senzori. Procedați la fel pentru dispozitive de acţionare, dându-le nume (ex. „deplasați înainte”, „întoarceți la stânga”, etc.).

Faceți clic din nou pentru a restabili panoul logic la dimensiunea normală.

După cum puteți vedea, cartușele fac mult mai ușor de înțeles ce se întâmplă.

Eliminarea blocurilor logice și a legăturilor

Pentru a șterge un bloc logic, faceți clic pe butonul X din colțul din stânga sus al blocului. Pentru a elimina legăturile dintre blocurile logice, plasați indicatorul mouse-ului pe linia care leagă blocurile și apăsați tasta.

Efectuarea mișcării unui cub folosind fizica

Una dintre cele mai puternice caracteristici ale motorului de joc Blender este motorul de fizică Bullet încorporat.

Când folosiți forța pentru a muta un obiect în jurul scenei, sistemul fizic va calcula automat interacțiuni complexe între obiect, cum ar fi coliziunile cu alte obiecte din scenă. Pentru multe tipuri de jocuri, folosirea fizicii rezolvă o mulțime de probleme, iar configurarea unui sistem de fizică este destul de simplă.

Acum vom crea joc nou de la zero folosind un motor fizic.

Scena va consta dintr-o sferă folosind fizica.

Înainte de a începe, să resetam scena din Blender la starea inițială și să setăm aspectul ferestrei 3D, așa cum se arată în figura din dreapta. Pentru a face acest lucru, urmați acești pași:

  • Selectați Fișier > Nou și faceți clic pe Ștergeți tot.
  • Rotiți scena folosind butonul din mijloc al mouse-ului (MMB)
  • Schimbați vizualizarea în modul perspectivă folosind Vizualizare > Perspectivă (sau)
  • Schimbați modul de desen în fereastra 3D în modul texturat (puteți face clic pe )
  • Deschide panoul logic al jocului

Să punem scena. Înainte de a începe să creați scena pentru joc, scoateți cubul.

  • Adăugați o sferă, Adăugare > Mesh > UVSphere (meniul Adăugare poate fi accesat și apăsând tasta [Spațiu]).
  • În parametrii sferei, specificați Segmente: 32, Inele: 32.
  • Ieșiți din modul Editare apăsând tasta și reveniți la modul Obiect.
  • Faceți clic pentru a șterge opțiunile de rotație a sferei (sfera ar trebui să fie în continuare selectată).

Crearea unui model fizic în GE

În panoul logic puteți găsi butonul Actor.

Faceți clic pe acest buton și veți avea acces la o serie de setări pentru obiectul selectat.

Activați butonul Dynamic. Acest lucru îi va spune lui GE că modelul selectat este un obiect fizic. De asemenea, vor apărea o serie de setări suplimentare pentru obiect.

Specificați următoarele setări:

  • Corp rigid. Obiectul se va roti corect folosind motorul de fizică GE. Dacă această opțiune nu este activată, obiectul se va putea mișca doar, dar nu se va roti.
  • Somnul interzis. Obiectul nu va fi niciodată dezactivat („du-te la somn”).

Acum apăsați [P] pentru a introduce GE. Veți vedea că, deși nu am adăugat niciun bloc logic, sfera începe să se miște. Acest lucru se întâmplă deoarece gravitația acționează asupra sferei și aceasta începe să cadă. Aceasta ilustrează una dintre caracteristicile interacțiunii în interior lume fizică scene. Faceți clic pentru a reveni la Blender.

Trebuie să adăugăm ceva la scenă pentru ca sfera să cadă.

Adăugați o suprafață scenei (Adăugați > Mesh > Plan).

Faceți clic pentru a schimba modul Edit la Object.

Faceți clic pentru a șterge opțiunile de rotație a obiectelor.

Așezați suprafața sub sferă și apăsați [P]. Veți vedea că sfera acum cade la suprafață și se oprește.

Acum trebuie să mărim suprafața, astfel încât să avem mai mult spațiu pentru a muta sfera în jurul suprafeței.

Schimbați tipul cursorului 3D din modul mutare în modul zoom ().

Măriți suprafața astfel încât să fie de aproximativ zece ori mai mare în axele X și Y.

Imaginile din dreapta ilustrează procesul de adăugare, mutare și scalare a unei suprafețe.

Mutarea unui obiect fizic la GE

Acum vom aplica forțe fizice sferei, făcând-o să se miște în jurul scenei.

ATENŢIE. Asigurați-vă că sfera este selectată. Dacă tocmai ați creat o suprafață, aceasta va fi totuși selectată. Pentru a selecta din nou sfera, trebuie să faceți clic dreapta pe ea.

Adăugați un nou senzor, controler și actuator la sfera din panoul logic și conectați-le.

În actuatorul de mișcare trebuie să setăm parametrul Forță pentru a muta obiectul în jurul scenei.

Setați valoarea Y (a doua coloană) a parametrului Force la 1.


Acum apăsați [P]. Puteți vedea sfera căzând la suprafață și începe să se rostogolească.

După ce a parcurs o anumită distanță, va începe să se rostogolească reversul. Acest lucru se întâmplă deoarece am aplicat o forță sferei de-a lungul axei Y locale a sferei. Deoarece sfera se poate roti, se rotește și axa Y, așa cum se arată în imaginea de mai jos. Faceți clic pentru a reveni la Blender.


Pentru a remedia acest lucru, schimbăm direcția forței de la axa locală la cea globală. Pentru a face acest lucru, dezactivați butonul L din dreapta opțiunii Forțare. Apăsați din nou [P] și veți vedea sfera rulând continuu în direcția dorită.

Poate că nu ați observat cum funcționează motorul fizic. De îndată ce aplicăm forță sferei, aceasta va începe să se rostogolească. Această rotație este cauzată de interacțiunea dintre sferă și suprafață.

În plus, odată ce sfera ajunge la marginea suprafeței, va fi informată de motor despre acest fapt și va continua să cadă.

Acestea sunt doar câteva exemple despre cum este folosită fizica la GE.

Faceți clic pentru a reveni la Blender.

Controlul sferei folosind tastele cursorului


Acum să preluăm controlul asupra sferei folosind tastele cursorului.

Schimbați tipul de senzor la Tastatură și atribuiți-i tasta [Sus].

Acum adăugați noi senzori, controlere și actuatoare, conectați-le împreună și configurați-le după cum urmează:

  • Senzorul tastei [Jos] controlează actuatorul de mișcare cu o valoare de -1 în câmpul Y (al doilea) al parametrului Forță (cu tasta L dezactivată).
  • Senzorul tastei [Stânga] controlează actuatorul de mișcare cu o valoare de -1 în câmpul X (primul) al parametrului Forță (cu tasta L dezactivată).
  • Senzorul tastei [Dreapta] controlează actuatorul de mișcare cu o valoare de 1 în câmpul X (primul) al parametrului Forță (cu tasta L dezactivată).

Când apăsați din nou [P], veți putea să controlați sfera și să o mutați pe suprafață. Faceți clic pentru a reveni la Blender.

Pentru a face panoul logic mai clar, dați diverșilor senzori și actuatori nume adecvate.

Puteți experimenta cu valori ale actuatorului de la 1 la 2 și de la -1 la -2.



Adăugarea de obstacole la o scenă

Adăugați un cub la scenă (Adăugați > Mesh > Cub). Apăsați pentru a ieși din modul Editare. Faceți clic pentru a șterge opțiunile de rotație ale obiectului și plasați cubul undeva pe suprafață.

Repetați acest pas, adăugând încă câteva obiecte diferite la suprafață.

Acum, apăsați [P]. Veți vedea că sfera se ciocnește și va sări de obiectele pe care le-ați adăugat. Acesta este un alt exemplu de fizică folosită la GE.

Faceți clic pentru a reveni la Blender. Puteți încerca să adăugați mai multe suprafețe la scenă pentru a crea diapozitive și salturi.

Dacă aveți experiență de modelare în Blender, puteți încerca să creați o scenă mai complexă. Dacă nu aveți o astfel de experiență, sperăm că această lecție vă va crește interesul pentru Blender și pentru studiul ulterioar al acestuia, inclusiv modelarea.

Crearea mai multor obiecte fizice

Selectați cubul pe care l-ați adăugat la scenă. În panoul logic, setați aceiași parametri de fizică pe care i-ați setat pentru sferă (doar nu activați Fără adormire pentru a permite obiectului să „adoarme”; când obiectul este eliberat resurse pentru calcule în motorul fizic)

Acum, apăsați [P] pentru a începe jocul și rotiți sfera spre cub. Veți vedea că cubul a început să se miște când a fost lovit de sferă.

Totuși, cubul se mișcă într-un mod foarte ciudat - de fapt se rostogolește ca și cum ar fi rotund.

În prezent, sistemul de fizică al lui Blender presupune că un obiect nou adăugat va avea implicit un model de interacțiune sferică. Faceți clic pentru a reveni la Blender.

Găsiți butonul Limite de sub secțiunea Actor. Faceți clic pe acest buton și veți putea selecta diferite modele de interacțiune dintr-o listă suplimentară. În mod implicit, este Box.

În cazul unui cub, modelul va funcționa excelent. Cu toate acestea, dacă aveți o formă de obiect mai complexă, atunci modelul „Convex Hull Polytope” vă poate ajuta.

Selectați un alt obiect dintre cele pe care le-ați adăugat la scenă și repetați aceiași pași, selectând doar modelul de interacțiune „Convex Hull Polytope”.

Apăsați [P] și rotiți sfera către diferite obiecte, făcând-o să se miște. Faceți clic pentru a reveni la Blender.


Redenumirea obiectelor

Când adăugați un obiect nou, Blender atribuie un nume implicit acelui obiect (de exemplu, Cube sau Cube.001 dacă există deja un Cub).

O bună practică este redenumirea obiectelor în funcție de rolul lor în scenă. Acest lucru vă va face scena mai ușor de înțeles atât pentru dvs., cât și pentru alte persoane care vă studiază scena. Pentru a redenumi un obiect, puteți selecta panoul Obiect și puteți schimba numele în câmpul OB al filei Obiect și legături.

De asemenea, puteți redenumi un obiect în panoul Editare, în fila Link și Materiale.



Finalizarea lecției de bază GE

Felicitări! Ați finalizat tutorialul despre elementele de bază ale utilizării Motorului de joc Blender! Acum aveți abilități de bază în utilizarea GE. Dar mai trebuie să câștigi experiență în următoarele subiecte:

  • Conectarea senzorilor, controlerelor și actuatoarelor într-un panou logic.
  • Utilizarea actuatorului de mișcare pentru a muta obiecte direct.
  • Utilizarea actuatorului de mișcare pentru a muta obiecte folosind fizica.
  • Controlul obiectelor de joc folosind tastatura.
  • Crearea unui joc 3D simplu.
  • Crearea de noi obiecte cu fizica în GE.

Cu abilitățile pe care le-ați dobândit, veți putea adăuga mai multă complexitate acestei scene simple pe măsură ce învățați mai multe despre modelare în Blender.

În acest moment, este posibil să doriți să reconstruiți scena finală pentru a vedea cât de departe puteți ajunge fără să citiți tutorialul. Dacă vă puteți aminti totul din memorie, atunci sunteți pe cale să deveniți un utilizator avansat de Blender GE!

Următoarele capitole suplimentare vor acoperi unele probleme mai complexe, cum ar fi crearea unui salt de sferă și adăugarea de materiale la o scenă.

Crearea unor niveluri de joc și interacțiuni mai complexe

Crearea unui salt de sferă


Acum ne vom face sfera să sară când apăsăm tasta [Spațiu].

Adăugați un nou senzor, controler și actuator la sferă și conectați-le. Schimbați tipul de senzor la Tastatură și atribuiți-i tasta [Spațiu].

În secțiunea Forță a actuatorului de mișcare, setați valoarea Z (a doua coloană) la 250. Dezactivați butonul L, astfel încât forța să fie aplicată în raport cu sistemul de coordonate global și nu la sistemul de coordonate local al obiectului.

Acest lucru va da sferei o mică împingere, făcându-i să pară ca și cum sfera sări.

Apăsați [P], iar în joc, apăsați tasta [Spațiu]. Vei observa că sfera va sări direct în aer. Și dacă țineți apăsată tasta [Spațiu], sfera se va ridica constant.



Trebuie să creăm o constrângere suplimentară - sfera poate sări doar atunci când atinge suprafața. Pentru a face acest lucru, vom folosi un senzor de tip Touch. Adăugați un alt senzor în sferă și schimbați tipul acestuia în Atingere. Acum asociați acest senzor cu același controler cu care este asociat senzorul [Space Bar].

Controlerul va trimite un semnal către actuatorul asociat cu acesta numai atunci când primește semnale de la doi senzori simultan, adică. tasta [Spațiu] va fi apăsată și sfera va atinge un alt obiect, cum ar fi o suprafață.


Reporniți jocul după eveniment

Când sfera atinge un anumit obiect, îl vom forța pe GE să repornească jocul.

  • Adăugați un nou obiect în scenă (vom folosi un cilindru) și plasați-l undeva aproape de sferă (dar fără a o atinge). Asigurați-vă că noul obiect este selectat.
  • Deschideți panoul logic, adăugați un senzor, controler și actuator la obiect și conectați-le împreună.
  • Schimbați tipul actuatorului la Scenă. Acțiunea implicită a actuatorului Scenă este Restart.

Acum, apăsați [P] pentru a începe jocul. Va părea că nu se întâmplă nimic. Acest lucru se datorează faptului că senzorul Always apelează în mod constant actuatorul Scenă, care, la rândul său, repornește jocul.


  • Schimbați tipul de senzor la Tastatură și atribuiți-i tasta [R].
  • Apăsați [P] și veți putea muta din nou sfera.

Apăsarea tastei [R] va reporni jocul.

Faceți clic pentru a ieși din joc.

Acum schimbați tipul de senzor la atingere.

Lasează jocul. Jocul va reporni acum când atingeți cilindrul cu sfera.

Faceți clic pentru a ieși din joc.

Aceasta ilustrează unele dintre capacitățile de bază ale GE de gestionare a jocurilor. Ai putea realiza un joc format din mai multe scene (nu sunt tratate în acest tutorial), care ar putea conține, de exemplu, diferite niveluri ale jocului.

Colectarea obiectelor din joc

Vom adăuga în scenă obiecte pe care jucătorul le poate colecta atunci când se apropie de ele.

  • Adăugați o sferă scenei și plasați-o la o anumită distanță de sfera principală.
  • Adăugați un senzor, un controler și un actuator la această sferă și conectați-le.
  • Schimbați tipul de senzor la Aproape
  • Schimbați tipul actuatorului la Edit Object.
  • În setările actuatorului, modificați Adăugare obiect la obiect final.
  • Activați butoanele Actor și Ghost. Parametrul Ghost înseamnă că niciun alt obiect nu va putea interacționa cu acest obiect.

Lasează jocul. Acum, când te vei deplasa lângă această sferă, ea va dispărea.

Faceți clic pentru a reveni la Blender.

Numărarea obiectelor colectate

Când ridicăm un obiect, trebuie să ne amintim cumva de el pentru a arăta numărul total de obiecte colectate.

Pentru a face acest lucru, vom folosi actuatorul Message, care trimite un semnal unui alt obiect de scenă care are un senzor de mesaj. Acest senzor va răspunde la un mesaj de la actuator și va crește numărul de obiecte colectate.

  • Adăugați un alt actuator la sfera pe care o vom ridica și schimbați-i tipul în Mesaj.
  • Conectați acest actuator la controlerul dvs. existent.


  • Schimbați câmpul Subiect al actuatorului cu ceva semnificativ, cum ar fi „pickup”. Este important să rețineți acest nume, deoarece veți avea nevoie de el pentru a configura senzorul de mesaje.

Când senzorul Aproape este declanșat, ambele dispozitive de acționare vor fi apelate simultan, iar actuatorul de mesaje va trimite un mesaj tuturor obiectelor din scenă.

Vom folosi un alt obiect pentru a stoca informații despre numărul de obiecte colectate. Puteți utiliza obiectul Gol în acest scop. Va fi prezent în scenă, dar din moment ce nu are nicio geometrie, nu va fi vizibil în GE.

  • Adăugați un obiect Gol la scenă (Adăugați > Gol).
  • Când acest obiect este selectat, faceți clic pe butonul Adăugare proprietate din panoul logic.
  • Schimbați numele proprietății adăugate (Proprietate) obiectului în elemente și modificați tipul acesteia din Float în Int (întreger). Aici vom stoca numărul de obiecte colectate.
    • Adăugați un senzor, controler și actuator la obiectul Gol și conectați-le.
    • Schimbați tipul de senzor la Mesaj și introduceți „pickup” în câmpul Subiect (același nume pe care l-ați specificat în câmpul Subiect al dispozitivului de acționare Mesaj al obiectului colectat).
    • Schimbați tipul de actuator la Proprietate și modificați setările de atribuire la Adăugare.
    • Schimbați câmpul Prop la „articole” (numele proprietății pe care doriți să o incrementați) și setați Valoarea la 1.

    Acum, apăsați [P] pentru a începe jocul și a ridica un obiect - veți vedea că atunci când îl ridicați, valoarea articolelor va crește.

    Faceți clic pentru a reveni la Blender.

    Puteți folosi valoarea articolelor pentru a face unele modificări în joc, cum ar fi repornirea sau trecerea la noua scena, când au fost colectate un anumit număr de obiecte.

    Adăugarea culorii jocului folosind materiale

    Până acum, toate obiectele adăugate scenei au culoare gri. Pentru a schimba aspectul scenei, vom adăuga culoare modelelor din scenă, creând noi materiale pentru acestea.

    • Deschideți panoul Materiale făcând clic pe pictograma sferei gri sau apăsând tasta.
    • Selectați sfera noastră principală în fereastra 3D cu butonul din dreapta al mouse-ului (RMB).
    • Faceți clic pe butonul Adăugare nou. Acest lucru va adăuga material nou în sferă. Va apărea un număr mare de setări pentru material. Acum trebuie doar să schimbăm culoarea materialului.
    • Faceți clic pe câmpul marcat Col, care specifică culoarea principală a materialului.
    • Va apărea un dialog de selecție a culorii. Selectați culoarea roșie din ea și mutați cursorul mouse-ului departe de caseta de dialog. Sfera de pe scenă va deveni roșie.

    Repetați acești pași pentru alte obiecte din scenă, oferindu-le culori diferite.

    Crearea unei versiuni autonome a jocului

    Blender vă permite să creați versiuni independente ale jocului dvs. care nu necesită rularea Blender.

    Din meniul Blender, selectați File > Save Runtime.

    În caseta de dialog Salvare, introduceți numele fișierului executabil pentru joc (de exemplu, ball_game). Aceasta va crea fișierul ball_game.exe.

    O scurtă prezentare a tuturor tipurilor de senzori, controlere și dispozitive de acționare Blender

    Senzori

    • Joystick - răspunde la semnalele de la joystick (stânga/dreapta, sus/jos, butoane).
    • Mesaj - se declanșează când sosește un mesaj. Puteți trimite mesaje către alte obiecte folosind actuatorul de mesaje.
    • Ray - se declanșează atunci când obiectul se află în apropierea unei axe de coordonate date. În plus, puteți verifica materialul obiectului sau valoarea proprietății.
    • Aleatoriu - funcționează aleatoriu. Frecvența de declanșare este controlată de parametrul Seed (sau utilizați un generator de numere aleatorii în Python).
    • Proprietate - se declanșează atunci când valoarea proprietății este între minimul și maximul specificat sau egală cu valoarea specificată.
    • Radar - se declanșează atunci când un obiect apare într-o zonă specificată (setat de distanță și unghi).
    • Aproape - se declanșează atunci când un obiect apare la o distanță specificată de un obiect cu un senzor.
    • Coliziune - declanșată atunci când un obiect interacționează (se ciocnește) cu un alt obiect. Puteți specifica un material sau o proprietate pe care ar trebui să o aibă un obiect.
    • Atingere - se declanșează atunci când un obiect atinge un obiect cu un senzor.
    • Mouse - se declanșează atunci când are loc un eveniment specificat de mouse, cum ar fi un clic de mouse, mișcarea mouse-ului etc.
    • Tastatură - se declanșează când este apăsată tasta specificată.
    • Întotdeauna – funcționează continuu.

    Controlorii

    • ȘI - apelează actuatorul asociat dacă toți senzorii asociați cu acesta s-au declanșat.
    • SAU - apelează actuatorul asociat dacă cel puțin un senzor asociat acestuia este declanșat.
    • Expresie – Evaluează o expresie.
    • Python - apelează un script în Python.

    Actuatoare

    • Vizibilitate - Afișează sau ascunde obiectul.
    • Joc - Repornește sau oprește jocul. Poate încărca și o scenă nouă.
    • CD – Vă permite să gestionați melodiile de pe un CD.
    • Mesaj - Trimite un mesaj către toate obiectele din scenă sau către un obiect specificat. Acest mesaj este primit de senzorul de mesaje.
    • Aleatoriu – Setează o valoare aleatorie unei proprietăți a unui obiect.
    • Scenă - Vă permite să controlați scena - încărcare, redare, pauză etc. Acest actuator este foarte util pentru afișarea diferitelor scene, cum ar fi ecranul sau meniul. Când utilizatorul dorește să înceapă un joc, senzorul tastaturii (de exemplu, apăsând tasta [Spațiu] pentru a începe jocul) poate fi legat de actuatorul Scenă, care va încărca scena jocului. Acest actuator vă permite, de asemenea, să specificați modul în care camera va vizualiza scena.
    • Editare obiect - oferă control asupra adăugării, editării și ștergerii obiectelor din scenă în timpul jocului. Poate fi folosit, de exemplu, pentru a trage un glonț dintr-o armă. Poate urmări și obiecte.
    • Proprietate - Setarea valorilor proprietăților obiectului.
    • Sunet - Vă permite să controlați sunetul. Sunt disponibile doar acele piese audio care au fost încărcate în Blender.
    • Camera - Permite camerei să urmărească subiectul. Camera poate fi plasată în spatele obiectului (sau de-a lungul axelor X sau Y) și montată la o anumită distanță (minimă și maximă) față de obiect și la o înălțime dată.
    • IPO - Vă permite să controlați animația unui obiect din joc.
    • Constrângere - Limitează pozițiile posibile ale obiectului.
    • Mișcare - Vă permite să controlați mișcarea unui obiect. Controlul poate fi direct (dLoc și dRot) sau folosind fizica (Force și Torque)

    Lucrul în continuare cu Blender Game Engine

    Sperăm că ți-a plăcut să înveți noțiunile de bază ale GE și că vei continua să lucrezi cu motorul, folosind cunoștințele și abilitățile pe care le-ai dobândit, extinzându-le cu practică și învățând din experiențele membrilor comunității mai mari Blender GE.

    Link-uri utile

    Aceasta este una dintre cele mai bune resurse pentru utilizatorii GE. Dacă doriți să puneți întrebări despre lucrul cu GE, să publicați o parte din munca dvs. sau pur și simplu să vă îmbunătățiți cunoștințele despre GE, cu siguranță ar trebui să vizitați acest forum.

Articolul va fi util pentru dezvoltatorii de jocuri începători. În acesta ne vom uita la avantajele și metodele de creare și redare a obiectelor tridimensionale pentru jocuri izometrice 2D folosind Blender ca exemplu. Articolul nu va conține operațiuni complexe; cunoștințele de bază despre un editor 3D sunt suficiente. Pentru un exemplu de randare și animație, am luat un turn de la Dune2 și, ca să nu fie atât de plictisitor singur, l-am completat cu două clădiri din Desert Strike.

Avantajele acestei abordări în comparație cu randarea 2D: viteza și ușurința de a crea animații, ușurința de a actualiza modele (de exemplu, pentru a crea upgrade-uri de clădire), rezultate destul de bune cu investiții de timp reduse.

Defecte: reducerea „suflenței” imaginilor și, de fapt, a nevoii de cunoaștere a modelării 3D.

Început, pregătirea scenei

În mod implicit, un fișier Blender „alb” este creat cu trei obiecte: o cameră, o sursă de lumină și un cub în centru. Să începem configurarea camerei, în proprietățile sale comutați de la modul Perspectivă la modul Ortografic, apoi specificați următorii parametri pentru aceasta în panoul Proprietăți:

Transforma
X: 12,0
Y: -12,0
Z: 12,0

(după cum puteți vedea, coordonatele arată ca N, -N, N, în timp ce N poate fi orice, deoarece avem o cameră ortogonală)

Rotație
X: 54,8°
Y: 0°
Z: 45°

Dacă totul este făcut corect, atunci priviți scena prin cameră (pentru a face acest lucru, trebuie să apăsați Num0), ne vom vedea cubul în izometrie.

După ce am încercat să redați ( F12) primul test izometric, veți vedea că fețele cubului sunt iluminate foarte neuniform. Hai sa ne ocupam cu lumina! În primul rând, în proprietățile lumii (fila Lume), activați ocluzia ambientală și specificați valoarea factorului necesară pentru aceasta (în exemplu este setată la 0,5). În al doilea rând, să schimbăm tipul sursei de lumină de la Punct la Soare. Acest lucru este necesar pentru ca toate umbrele să fie îndreptate într-o singură direcție și să nu depindă de poziția obiectului față de sursa de lumină.


Exemplu de randare cu sursa de lumină Point


Exemplu de randare cu sursa de lumină solară

Apropo de umbre, nu face aceeași greșeală pe care am făcut-o! Dacă dintr-un motiv oarecare doriți ca toate obiectele de joc să fie pe aceeași scenă și redate în același timp (de exemplu, pentru a nu lipi o foaie de sprite din imagini separate), atunci asigurați-vă că nu se afectează în niciun fel unul pe celălalt și că umbrele și iluminatul lor (semnale cu neon, lumini etc.) nu se suprapuneau altor obiecte. În imaginea de la începutul articolului, se observă că umbra turnului cade pe turnul de veghe.

Cuburile noastre sunt redate pe un fundal gri urât, care, bineînțeles, trebuie să fie dezactivat pentru a nu fi nevoit să vă faceți griji cu privire la decuparea fundalului obiectelor mai târziu. Pentru a face acest lucru, în fila Render, găsiți secțiunea Shading și schimbați modul Alpha din Sky în Transparent (dacă utilizați Blender Render) sau bifați caseta Transparent din secțiunea Film (în Cycles Render).

Am terminat cu configurarea, să trecem la crearea obiectelor, de exemplu, chiar acel turn. Cred că nu este nevoie să luăm în considerare procesul de modelare în detaliu; să profităm imediat de avantajele pe care ni le oferă un obiect tridimensional.


Turnul se rotește puternic

Multe strategii folosesc o afișare vizuală a construcției clădirii: mai întâi este construită fundația, apoi pereții și așa mai departe. Să încercăm să facem ceva asemănător. Selectați toate obiectele din scenă ( A), apoi duplicați-le ( Shift-D) și mutați-l în al doilea strat ( Mși selectați stratul dorit). Operatia se poate repeta de cate ori avem nevoie de faze de constructie. Să mergem la al doilea strat și să „distrugem” turnul.


Să repetăm ​​numărul necesar de ori, și voila!

Post procesare

La începutul articolului, printre dezavantajele acestei abordări, am menționat lipsa sentimentului de „lampi-like”. Din fericire, poate fi parțial restaurat prin utilizarea post-procesării și a motorului Freestyle încorporat în Blender. Nu o voi privi în detaliu, voi arăta doar de ce este capabil.


Exemple de lucru Freestyle

Sper că am demonstrat că crearea de elemente pentru jocuri 2D în 3D este, în multe cazuri, un proces rapid și convenabil. Vă mulțumim pentru atenție!

Articolul va fi util pentru dezvoltatorii de jocuri începători. În acesta ne vom uita la avantajele și metodele de creare și redare a obiectelor tridimensionale pentru jocuri izometrice 2D folosind Blender ca exemplu. Articolul nu va conține operațiuni complexe; cunoștințele de bază despre un editor 3D sunt suficiente. Pentru un exemplu de randare și animație, am luat un turn de la Dune2 și, ca să nu fie atât de plictisitor singur, l-am completat cu două clădiri din Desert Strike.

Avantajele acestei abordări în comparație cu randarea 2D: viteza și ușurința de a crea animații, ușurința de a actualiza modele (de exemplu, pentru a crea upgrade-uri de clădire), rezultate destul de bune cu investiții de timp reduse.

Defecte: reducerea „suflenței” imaginilor și, de fapt, a nevoii de cunoaștere a modelării 3D.

Început, pregătirea scenei

În mod implicit, un fișier Blender „alb” este creat cu trei obiecte: o cameră, o sursă de lumină și un cub în centru. Să începem configurarea camerei, în proprietățile sale comutați de la modul Perspectivă la modul Ortografic, apoi specificați următorii parametri pentru aceasta în panoul Proprietăți:

Transforma
X: 12,0
Y: -12,0
Z: 12,0

(după cum puteți vedea, coordonatele arată ca N, -N, N, în timp ce N poate fi orice, deoarece avem o cameră ortogonală)

Rotație
X: 54,8°
Y: 0°
Z: 45°

Dacă totul este făcut corect, atunci priviți scena prin cameră (pentru a face acest lucru, trebuie să apăsați Num0), ne vom vedea cubul în izometrie.

După ce am încercat să redați ( F12) primul test izometric, veți vedea că fețele cubului sunt iluminate foarte neuniform. Hai sa ne ocupam cu lumina! În primul rând, în proprietățile lumii (fila Lume), activați ocluzia ambientală și specificați valoarea factorului necesară pentru aceasta (în exemplu este setată la 0,5). În al doilea rând, să schimbăm tipul sursei de lumină de la Punct la Soare. Acest lucru este necesar pentru ca toate umbrele să fie îndreptate într-o singură direcție și să nu depindă de poziția obiectului față de sursa de lumină.


Exemplu de randare cu sursa de lumină Point


Exemplu de randare cu sursa de lumină solară

Apropo de umbre, nu face aceeași greșeală pe care am făcut-o! Dacă dintr-un motiv oarecare doriți ca toate obiectele de joc să fie pe aceeași scenă și redate în același timp (de exemplu, pentru a nu lipi o foaie de sprite din imagini separate), atunci asigurați-vă că nu se afectează în niciun fel unul pe celălalt și că umbrele și iluminatul lor (semnale cu neon, lumini etc.) nu se suprapuneau altor obiecte. În imaginea de la începutul articolului, se observă că umbra turnului cade pe turnul de veghe.

Cuburile noastre sunt redate pe un fundal gri urât, care, bineînțeles, trebuie să fie dezactivat pentru a nu fi nevoit să vă faceți griji cu privire la decuparea fundalului obiectelor mai târziu. Pentru a face acest lucru, în fila Render, găsiți secțiunea Shading și schimbați modul Alpha din Sky în Transparent (dacă utilizați Blender Render) sau bifați caseta Transparent din secțiunea Film (în Cycles Render).

Am terminat cu configurarea, să trecem la crearea obiectelor, de exemplu, chiar acel turn. Cred că nu este nevoie să luăm în considerare procesul de modelare în detaliu; să profităm imediat de avantajele pe care ni le oferă un obiect tridimensional.


Turnul se rotește puternic

Multe strategii folosesc o afișare vizuală a construcției clădirii: mai întâi este construită fundația, apoi pereții și așa mai departe. Să încercăm să facem ceva asemănător. Selectați toate obiectele din scenă ( A), apoi duplicați-le ( Shift-D) și mutați-l în al doilea strat ( Mși selectați stratul dorit). Operatia se poate repeta de cate ori avem nevoie de faze de constructie. Să mergem la al doilea strat și să „distrugem” turnul.


Să repetăm ​​numărul necesar de ori, și voila!

Post procesare

La începutul articolului, printre dezavantajele acestei abordări, am menționat lipsa sentimentului de „lampi-like”. Din fericire, poate fi parțial restaurat prin utilizarea post-procesării și a motorului Freestyle încorporat în Blender. Nu o voi privi în detaliu, voi arăta doar de ce este capabil.


Exemple de lucru Freestyle

Sper că am demonstrat că crearea de elemente pentru jocuri 2D în 3D este, în multe cazuri, un proces rapid și convenabil. Vă mulțumim pentru atenție!

Blender este un program pentru crearea de grafică animată pe computer și producție video. Este în esență un editor 3D care este susținut de mulți utilizatori datorită codului său open source. Dar pe acest editor 3D, datorită sistemului încorporat motor de joc„Blender Game Engine”, poți crea jocuri de orice tip, focus și gen. După cum se dovedește, jocurile pot fi create pe el fără a recurge la un limbaj de scripting, care, apropo, este disponibil (Python) pentru anumite nevoi. Ei susțin că jocurile pot fi create pe el în cinci minute. Există referințe și ghiduri atât pentru utilizarea, cât și pentru crearea de jocuri. De asemenea, puteți conta pe o comunitate mare de utilizatori Blender la care puteți apela pentru ajutor. Grafica 3D are toate clopotele și fluierele OpenGL, diverse rezoluții înalte, suport pentru aproape toate formatele audio și video populare.

Sunt acceptate toate formatele de grafică 2D majore: TGA, JPG, PNG, OpenEXR, DPX, Cineon, Radiance HDR, Iris, SGI Movie, IFF, AVI și Quicktime GIF, TIFF, PSD, MOV etc.

Sunt acceptate toate formatele de grafică 3D majore: 3D Studio, AC3D, COLLADA, FBX Export, DXF, Wavefront OBJ, DEC Object File Format, DirectX, Lightwave, MD2, Motion Capture, Nendo, OpenFlight, PLY, Pro Engineer, Radiosity, Raw Triangle , Softimage, STL, TrueSpace, VideoScape, VRML, VRML97, X3D Extensible 3D etc.

Este posibil să utilizați motorul de fizică Bullet Physics Library. Grafica din jocuri poate fi de orice complexitate, în funcție de abilitățile tale. Programul este absolut gratuit.

Pentru sisteme de operare: Windows 2000, XP, Vista, Mac OS X (PPC și Intel), Linux (i386), Linux (PPC), FreeBSD 5.4 (i386), SGI Irix 6.5, Sun Solaris 2.8 (sparc).




Editor logic grafic pentru definirea comportamentului interactiv fără programare. Detectarea coliziunilor și simularea dinamicii acceptă acum Bullet Physics Library. Bullet este o bibliotecă open source de detectare a coliziunilor și dinamică a corpului rigid dezvoltată pentru Play Station 3. Tipuri de forme: poliedru convex, cutie, sferă, con, cilindru, capsulă, compus și plasă triunghiulară static cu mod de dezactivare automată. Detectare discretă a coliziunilor pentru simularea RigidBody. Suport pentru activarea în joc a constrângerilor dinamice. Suport deplin pentru dinamica vehiculului, inclusiv reacțiile arcului, rigiditatea, amortizarea, frecarea anvelopelor etc. API de scripting Python pentru control sofisticat și AI, logica de joc avansată complet definită. Acceptă toate modurile de iluminare OpenGLTM, inclusiv transparențe, texturi animate și cu hărți de reflexie. Suport pentru moduri de amestecare multimateriale, multitexturi și texturi, iluminare per pixel, iluminare dinamică, moduri de cartografiere, amestecare de texturi GLSL vertexPaint, umbrire toon, materiale animate, suport pentru cartografierea normală și cartografierea Parallax. Redare jocuri și conținut 3D interactiv fără compilare sau preprocesare. Audio, folosind setul de instrumente SDL. Multi-stratificarea scenelor pentru interfețe suprapuse.



 

Ar putea fi util să citiți: