Cum se creează o strategie în blender. GE Visual Control – Blocuri logice senzor, actuator și controler

Ediția a doua, revizuită și extinsă


Această lecție vă va spune cum să creați un joc 3D simplu de la zero (bine, în Blender, desigur). Absolut fără nicio programare în limbaje, deși este posibil. Trebuie să aveți cunoștințe de bază despre Blender. Mă aștept să înțelegeți deja bine interfața și lucruri mici precum trecerea cursorului, clic stânga, eliberarea butonului stâng al mouse-ului, apăsarea și eliberarea butonului G pentru a vă deplasa și apoi faceți clic etc. nu voi zăbovi.

Pentru cei care au o intoleranță individuală la traducerea în limba rusă:

poze rusesti
poze in engleza


Pentru a accesa funcțiile motorului de joc, trebuie să comutați redarea la motorul de joc.

Apoi, puteți face o interfață convenabilă pentru dvs., dar totul este deja pregătit în Blender. Alegând aspectul „Logica jocului”, veți obține o interfață ușor de utilizat.

Activați modul de afișare Texture, astfel încât jocul să arate așa cum ne dorim.


Puteți începe jocul trecând cursorul peste vizualizarea 3D dorită (dacă ați reușit să creați mai multe dintre ele) și apăsând P (engleză, în rusă Z, între Ш și Х:)). De asemenea, puteți începe jocul prin meniul Joc - Pornire motor de joc. Dacă încercați să începeți jocul acum, nu se va întâmpla nimic interesant, va fi doar un cub gri pe un fundal gri. Apăsați Esc pentru a ieși din joc. Dar acest lucru nu va ajuta dacă utilizați această cheie în joc, așa că aveți grijă;)

Înainte de a începe jocul, poți apăsa Shift+Spacebar sau Ctrl+Up/Down pentru a extinde fereastra peste care se află cursorul pe tot ecranul și pentru a nu verifica jocul pe o fereastră 3D mică, abia vizibilă. De asemenea, puteți apăsa T sau N pentru a ascunde panourile din stânga și respectiv din dreapta ale vizualizării 3D.

Puteți ascunde „junk” cum ar fi manechine, cursor 3D, rețea etc. apăsând N (după ce treceți cu mouse-ul peste vizualizarea 3D) și în panoul care apare în fila Afișare, selectând Numai Redare. În acest caz, fundalul va schimba culoarea cu cea setată în setările World.


În același panou, prin meniul Shading, puteți activa GLSL în loc de multi-texture, ceea ce vă permite să creați grafice mai frumoase (de exemplu, umbre).

Crearea materialelor pentru joc este, în general, aceeași cu crearea pentru Blender Internal Render (acesta este randamentul implicit pentru moment, dar va fi înlocuit în curând cu Cycles), dar există limitări. De exemplu, toate texturile procedurale, ray tracing (și, ca urmare, nu există umbre pentru unele lămpi) și halourile nu funcționează. Se recomandă crearea de texturi UV. Nu există particule, dar pot fi simulate folosind cantitate mare obiecte (nu, nu trebuie să le copiați manual; adăugarea lor în timpul jocului este discutată mai jos). Fără GLSL există și mai multe restricții, iar iluminarea este complet urâtă.

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 dezactivat pentru a nu fi nevoit să vă faceți griji cu privire la tăierea 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 cartografiere normală și cartografiere 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: