dissabte, 7 de febrer del 2015

Modelat d'un habitatge (1)

Estava una mica cansat de l'espeleovideojoc i he decidit treballar en paral·lel en un altre projecte més encarat a la generació d'imatges estàtiques.

 En aquesta entrada començaré a modelar amb Blender un habitatge i utilitzaré des del principi el renderitzat Cycles. Intentaré buscar una simulació més realista que les anteriors utilitzant materials més elaborats.

Com a referència he triat els plànols d'aquest lloc web, que corresponen a un edifici de Reus.

Per començar he fet la planta bàsica en 2D, que em servirà de referència per a la resta d'elements. 


A continuació he creat els objectes que formaran el terra, cada tipus de paviment serà un objecte diferent. Els he assignat colors diferents per facilitar-ne el reconeixement.


Fets els terres, ja podem començar a aixecar les parets. A continuació mostro les parets de la cuina.


Poc a poc he anat aixecant totes les parets de l'habitatge, incloses les parets exteriors. Són objectes independents.


I també els sostres de cada cambra, encara que els mantindré ocults fins que creï la il·luminació interior, per tal que entri llum de fora.


El següent pas ha estat fer els sòcols de les parets interiors, excepte a la cuina i a les cambres de bany.


Ara ja estic impacient per aplicar materials i textures amb Cycles. De moment he posat un terra de parquet i unes rajoles blaves al terra de las cambres de bany  (aquesta textura finalment anirà a les parets, no als terres)


Vegem un renderitzat amb les parets i els sòcols. És fascinant com Cycles imita la llum que entra de fora.


El següent pas ha estat modelar els marcs de les portes. Vegem el marc de la porta de la cuina.


Poc a poc he anat fent tots els marcs. També he canviat el material del terra de les cambres de bany a un més adequat i he assignat el material de rajoletes blaves a les parets.


El següent pas ha estat modelar les portes i els poms. De moment només la porta de l'habitació gran.


Vegem ara una vista general aèria del pis sense sostres.


He millorat el material de les portes amb una textura d'una porta real i una segona textura en escala de grisos com a "mapa de bonys" (bumpmap) per a simular el relleu de la porta.


I també he millorat el material de les rajoles blaves de les parets de les cambres de bany  amb una segona textura de "mapa de bonys" (bumpmap) per a fer més realistes les parets.



 En properes entrades aniré afegint detalls...








dimecres, 21 de gener del 2015

Espeleovideojoc (4) Cabra Blanca de Rasquera

En aquesta entrada modelaré, aparellaré i animaré amb Blender un personatge animal, una cabra per a l'espeleovideojoc.

Per començar he triat la cabra que vull modelar. Serà una cabra de l'espècie Blanca de Rasquera. En aquest enllaç del lloc web de les races autòctones d'animals domèstics de Catalunya he trobat força informació sobre aquesta varietat de cabres, i algunes fotografies que he pres com a referència.


Sobre una fotografia de perfil he modelat el cos de la cabra, partint d'un cub inicial.


Després he extruït algunes cares per a formar les potes de davant i de darrera.


A continuació he modelat els detalls del cap: les banyes i les orelles, que és el que m'ha costat més. un cop acabat el cap he aplicat un modificador SubSurf (Subdivideix la superfície) i el paràmetre de suavitzat (Smooth)


Tot seguit he 'espellat' la cabra amb el mètode Unwrap (Desembolicar) i li he aplicat una textura extreta de la mateixa imatge de referència que he utilitzat per al modelat.


El següent pas ha estat l'aparellatge (Rigging), és a dir: crear un esquelet (Armature). Com que no sabia res de com són els ossos de les cabres, tot i que sovint n'he vist d'escampats per la muntanya he hagut d'investigar una mica. Per a fer-lo amb una mica de rigor he analitzat imatges d'esquelets de cabra. He fet servir especialment la imatge d'aquest enllaç del lloc web Goat-Link.

Finalment aquest ha estat l'esquelet que he creat per a la cabra. Les potes estan dotades de cinemàtica inversa per a facilitar l'animació posterior.

Pel camí he modelat també la barba de la cabra.


El pas següent ha estat l'assignació a cada os d'un grup de vèrtex de la malla, que seran controlats per aquest os. Aquest procés és conegut com a Skinning. He fet servir el metode de pintura de pesos ( Weight Paint )

Un cop he estat més o menys content amb l'Skinning, he buscat imatges de cabres en moviment. En aquest lloc web se'n pot veure algunes i facilita l'anàlisi del moviment de la cabra.

Com a referència per al cicle de caminar de la cabra he fet servir unes imatges preses fa 120 anys ! pel pioner de la fotografia d'acció Eadweard Muybridge . Les he trobades al lloc de Sillydragon.

Tot seguit he anat col·locant la cabra en les posicions definides per les fotografies en diversos moment decisius del cicle de caminar i insertant fotogrames clau (Keyframes) de posició i rotació dels ossos de l'esquelet.

I Finalment, aquest ha estat el resultat:



He desat el moviment com una acció (Action) per tal de poder incorporar-la més endavant a l'Espeleovideojoc.

dissabte, 10 de gener del 2015

Espeleovideojoc (3) Cicle de córrer

En aquesta entrada animaré una altra acció: el cicle de córrer:

He pres com a referència les posicions del cos de les imatges d'aquest lloc web. Tot i això l'animació queda massa tosca. Hauré de buscar imatges de referència més detallades i també de cara, no només de perfil, ja que el cos es queda massa immòbil.

He detectat també problemes en la deformació de la malla als colzes i genolls que  no he pogut solucionar completament, queda pendent per més endavant.. A les mans també es troba a faltar animació.

Fotograma queden patents els problemes als colzes.


Un cop creats els fotogrames clau, els he desat com una acció "Action" per tal de poder-la reutilitzar i assignarla a una tecla dins el videojoc.

També he modelat una saca d'espeleologia.

Partint d'un cercle, l'he deformat fins a convertir-lo en el·lipse, després he extruït les arestes laterals, he afegit uns quants "Loop cut and slide" i he deformat la part superior manualment per a formar les arrugues de la boca.  Finalment he afegit la nansa lateral i les corretges per a les espatlles.



Un altre pas que he fet ha estat millorat l'escenari de proves, amb textures més detallades i un modificador "Subsurf" (subdivisió de la superfície)

Per tal d'encadenar les 3 accions en una animació he hagut d'aprendre com funciona l'editor No Lineal d'Animació (NLA editor). He seguit el següent manual.

I finalment he renderitzat una animació de les tres accions consecutives (l'ordinador ha trigat una eternitat...),

Acció de caminar, acció d'estar respirant i mirant a banda i banda i acció de córrer, executades dins l'escenari de proves, davant la cinglera on hi ha les dues boques de la cova, amb tres saques per terra.


dissabte, 3 de gener del 2015

Espeleovideojoc (2) Elements per a moure el personatge i la càmera

En aquesta entrada crearé amb Blender els elements per tal de moure el personatge i la càmera. Seguint els tutorials 1 a 8 i 23  de Físico Molon, he creat successivament els elements necessaris (tots seran invisibles durant el funcionament normal del joc excepte el personatge):

Elements en la posició original



Element 1: (Invisible) És l'actor del joc, en polsar la tecla "W" es desplaça en la direcció de l'eix Y local. Rota sobre l'eix Z local amb el moviment dreta-esquerre del ratolí. Conté també unes instruccions en llenguatge Python (no sé res de Python  :-(   , m'he limitat a copiar el codi...  ) per a registrar la seva posició en els eixos globals i guardar-la en una variable de posició.

Element 2: (Invisible) És el punt a on mira la càmera. Es mou solidàriament amb l'element 1. Rota sobre l'eix X local amb el moviment endavant i endarrere del ratolí per tal de moure la càmera (element 3).

Element 3: (Invisible) És la càmera amb la qual veurem el videojoc. Es mou solidàriament amb el punt a on mira la càmera (element 2). Rota sobre l'eix X local amb el moviment endavant i endarrere del ratolí. Conté també unes instruccions en llenguatge Python per a desplaçar-se  sobre l'eix que uneix els elements 2 i 4, aproximant-se a l'element 2  quan hi ha obstacles visuals a prop, per tal de no perdre de vista el personatge.

Element 4: (Invisible) És el pla que limita la distància màxima a la qual es pot allunyar la càmera del personatge. Es mou solidàriament amb el punt a on mira la càmera (element 2). 

Element 5: (Invisible) És el punt a on mira el personatge quan es desplaça (quan està polsada la tecla "W"). Es mou solidàriament amb l'element 1.

Element 6: (Invisible) És el paral·lelepípede que conté el personatge. Conté també unes instruccions en llenguatge Python per a assignar la seva posició (però no la rotació) al mateix punt on estigui l'element 1. (Al gràfic s'ha representat desplaçat)

Element 7: (Invisible) És l'esquelet (armature) del personatge. Es mou solidàriament amb el paral·lelepípede (element 6). Té una sèrie d'accions (cicles de moviment, com ara caminar, saltar, respirar, etc...) ja animades que s'executen quan es polsa una tecla. Per exemple, en en polsar la tecla "W" s'activa l'animació de caminar cap endavant. Quan no s'està posant cap tecla, s'activa l'animació de respirar.

Element 8: (Visible) És la malla del personatge. Es mou solidàriament amb l'esquelet (element 7). Es deforma seguint els moviments de l'esquelet (element 7).


A continuació he reaprofitat l'animació de caminar que teníem del personatge Nina per a fer l'acció de caminar de l'espeleòloga i he creat una altra acció per a la situació de repòs (respirar i mirar a banda i banda)

I he creat un escenari provisional amb un prat, una cinglera i una cova molt elementals per tal de poder fer proves de funcionament.

Escenari sense destacar la cova

Escenari amb la cova destacada

Per tal de poder capturar l'acció del videojoc he instal·lat el programa Hypercam2, que permet capturar la imatge de la pantalla. El tractament del vídeo (retallar fotogrames i canviar el format) l'he fet amb el programa Avidemux.

A continuació adjunto una captura de vídeo del videojoc que mostra:
1) El moviment de la càmera, ( controlada pel ratolí ) entorn del personatge (quan no es polsa cap tecla )
2) L'acció de respirar i mirar a banda i banda (quan no es polsa cap tecla )
3) L'acció de caminar en la direcció oposada a la càmera (quan es polsa la tecla W , direcció controlada pel ratolí )



En properes entrades afegiré altres accions al personatge i intentaré crear un executable del videojoc.

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.