divendres, 26 de desembre del 2014

Espeleovideojoc (1) Projecte per al 2015

En aquesta entrada esbossaré un projecte per a fer al llarg del 2015.

La intenció és fer un petit videojoc interactiu amb Blender, amb un personatge que ha de completar una sèrie d'accions per tal d'arribar al final del joc.

La idea m'ha vingut després de veure els tutorials de Físico Molon, una pàgina molt interessant sobre el tema dels videojocs amb Blender.

La temàtica bàsica serà una espeleòloga que ha de trobar una sèrie d'objectes per arribar al fons d'un avenc i treure alguna informació oculta, arqueològica o paleontològica que hi pugui haver.

El joc requerirà els següents passos:

1) Modelar i texturitzar un personatge principal

2) Crear una sèrie d'accions que fa aquest personatge:

-Cicle de caminar
-Cicle de córrer
-Cicle de pujar per una corda
-Cicle de baixar per una corda
-Cicle d'arrossegar-se
-Cicle de repòs (respiració i observació)
-...

3) Modelar i texturitzar un entorn natural :

-Muntanyes
-Boscos
-Arbres i plantes
-Cova amb pous i galeries

4) Modelar i texturitzar personatges secundaris:

-Cabres
-Porcs senglars
-Ratpenats
-Arqueòlegs i/o paleontòlegs
 
5) Crear una sèrie d'accions que fan els personatges secundaris:

-Cicle de pasturar per a animals exteriors
-Cicle de fugir per a animals exteriors
-Cicle de caminar per a les persones
-Cicle d'explicar i parlar per a les persones

6) Modelar i texturitzar objectes que caldrà utilitzar:

-Aparells de progressió
-Sacs
-Casc
-...

7) Crear una interactivitat que permeti moure el personatge i la càmara

8) Crear una lògica que obligui el personatge a comportar-se de diferents maneres segons l'entorn:

-Caminar en pla o llocs de poca pendent
-Pujar per corda en pous
-Arrossegar-se en llocs de sostre baix
-...

9) Crear una intel·ligència artificial per als personatges secundaris per tal que reaccionin a la presència del personatge principal, fugint o interactuant amb ell.

10) Crear un comptador del progrés del joc, que registri com es van complint els objectius.

... I moltes altres coses que aniran apareixent a mesura que el projecte avanci...

No em fixo cap termini per acabar-lo, aniré fent sense pressa...

De moment, per agafar inspiració, només he fet una modificació del personatge anterior (Nina) per a posar-li un casc i una granota  d'espeleòloga:







dijous, 11 de desembre del 2014

Modelat i animació d'un personatge femení (Nina)

En aquesta entrada modelaré amb Blender i animaré un personatge femení, que he batejat amb el nom de Nina, que comparteix el doble significat de nom propi i de ninot, molt adequat per al que estic fent.

He partit de la malla del ninot d'en Libellule (Sargantana) que vaig modelar en una entrada anterior del blog.


Amb molta paciència, desplaçant vèrtexs i extruïnt algunes cares, li he anat canviant la forma fins a obtenir la d'un personatge femení nu. M'he recolzat en les imatges de vista frontal i de perfil que apareixen en aquest blog per a les proporcions. He fet servir principalment les ordres desplaça (grab), extrueix (extrude) i loop cut and slide


Un cop feta la malla, he creat les costures (seams) per a desplegar la superfície de la malla sobre una superfície plana. Aquest procés recorda el d'un caçador quan espella una bèstia, fins i tot les costures es marquen de color vermell, com si fossin talls de ganivet... La gracia està en fer els talls a zones que no es vegin gaire i que facilitin el procés de desplegat (unwrap).


Detall de les costures (o talls) fets a la malla

A continuació he aplicat l'ordre de desplegar (unwrap) per a obtenir els trossos de pell de la Nina sobre una superfície plana. He escalat i reorganitzat les parts per tal que quedin en una disposició pràctica. He exportat l'arxiu a una imatge .png

Detall del desplegat. He remarcat de vermell on ha anat a parar la costura en forma de "Y" del cap

A continuació, des del GIMP, he afegit una sèrie de capes de colors per tal de formar el vestit (més ben dit la "pintura corporal", ja que la malla representa un personatge nu, no hi ha cap volum de roba ) i també els detalls de la cara. Finalment he exportat la imatge en format .jpg


Tornat a Blender i creant el material i la textura amb la imatge anterior, ja tenim la Nina texturitzada, és a dir "vestida" amb pintura corporal.


El pas següent ha estat crear un esquelet (armature) per tal de poder moure el personatge. He descartat el que vaig fer per a en Libellule i n'he creat un de nou seguint un tutorial d'aparellatge (rigging) de l'Alimayo Arango. (Thank you Alimayo !)




A continuació he assignat la influència que té cada os en un determinat vèrtex de la malla, el procés anomenat skinning, he utilitzat el mètode de  la pintura de pesos (weight painting). Ara la Nina ja no és només una figura, sinó una marioneta articulada !


Influència de l'os del cúbit sobre la malla  (vermell 100% blau 0%)

Un cop acabat el procés i fetes unes quantes proves per comprovar que la malla es deforma més o menys com toca, he creat diverses postures corresponents a diferents fotogrames del cicle de caminar. M'he recolzat en les imatges d'aquest enllaç.

He pogut comprovar l'avantatge d'animar esquelets (armatures) davant de l'animació de parts individuals (com he fet amb l'AT-AT de les entrades anteriors...), sobretot a l'hora de copiar postures completes i d'ntercanviar la postura dels membres drets i esquerres (simetria respecte l'eix X ). No hi ha cap mena de dubte que hauria d'haver fet un esquelet per a l'AT-AT...


Finalment he exportat l'animació a un format de video .avi, i aquest ha estat el resultat:



Caldria perfeccionar la malla, sobretot la part de la cara, i vista l'animació, caldria millorar la deformació de la malla a les espatlles i al pit i donar un moviment més natural als braços, però això ja queda per a una altra entrada...

He fruït molt amb aquest treball, que incorpora una mica de tots els processos que he tocat fins ara.





dimecres, 3 de desembre del 2014

AT-AT (3) Animació del cap i el coll

En aquesta entrada modelaré amb més detall el cap i el coll i animaré algunes de les seves parts.

Per començar he anat dividint en cap amb l'ordre Loop cut and slide i desplaçant vèrtexs dins a obtenir el resultat de sota.



A continuació he modelat els canons. Els grossos que van penjats a la part inferior (a la "barbeta") i els petits que van als costats (a les "orelles"), fets a base d'extruir i escalar un cercle, principalment.

Per als canons penjats he col·locat una làmpada davant la boca del canó, per a fer l'efecte lluminós del tret.

Per tal que segueixin el moviment del cap, els he incorporat a la jerarquia com a "fills" del cap.


A continuació he fet l'animació del retrocés dels canons grans, que es mouen enrere després del tret i retornen a la seva posició de repòs.

Canó dret a la posició de repòs. Canó esquerre a la posició de màxim retrocés.

I també l'animació de la intensitat de la làmpada de llum vermella que simula l'esclat lluminós del tret a la boca del canó. Està a una intensitat zero tota l'estona, però puja a 100 en el temps corresponent a un fotograma i retorna a zero també en el temps d'un fotograma. És la primera vegada que animo una variable que no és una posició, rotació o escala.

A continuació es mostra el fotograma on es dispara el canó esquerre, amb la llum vermellosa que il·lumina la cara des de la boca del canó esquerre.


El següent pas ha estat modelar l'esquelet que permetrà que l'AT-AT pugui torçar el coll: He creat un esquelet format només per ossos consecutius (les "vèrtebres" del coll).

He creat un os fictici, que permetrà orientar el cap, com a punt de control de la cadena de cinemàtica inversa del conjunt coll+cap. A l'os gran del cap li he aplicat la constrait Inverse Kinematix

El cilindre que forma el coll l'he subdividit de manera que he pogut assignar un cercle de vèrtexs a cada vèrtebra.

A continuació es mostra el diagrama de pesos dels vèrtexs per a la vèrtebra tercera (100% de color vermell, 0% de color blau).



 I, a continuació el resultat. el coll es torça suaument i "arrossega" el cap. Es mostra també el diagrama de pesos dels vèrtexs per a la vèrtebra quarta (100% de color vermell, 0% de color blau).


I, finalment la seqüencia de vídeo que he generat.