dimecres, 10 de juny del 2015

Cotxe funcional a la ciutat modular

En aquesta entrada he combinat els diferents elements de les entrades anteriors per tal d'obtenir un cotxe funcional i diversos cotxes no funcionals dins l'escenari de la ciutat modular.

Tot està suportat pel motor de jocs de Blender, Blender Game Engine.

1)

Pel que fa al cotxe funcional he utilitzat el Citroën Saxo que ja tinc modelat i he seguit l'interessantíssim tutorial d'en Bruno Alves  (Obrigado Bruno !!! ) que podeu trobar en aquest enllaç.

El fons de la qüestió és utilitzar una instrucció de Python  anomenada VehicleConstraint , que es pot parametritzar per adaptar-la a cada vehicle: distància entre rodes, diàmetre de les rodes, duresa de la suspensió, angle de gir de les rodes, etc...

També es poden parametritzar les tecles de control del vehicle, etc...


2)

Pel que fa als cotxes no funcionals he utilitzat el Nissan Patrol 60 que també tinc ja modelat.

Per tal de tenir més varietat n'he creat diverses copies i els he donat diversos colors, encara que la geometria és la mateixa.

Els cotxes han de reaccionar al contacte els uns amb els altres i amb els elements de l'escena, per tant els he donat propietats de cos rígid ( Rigid Body ), uns límits de col·lisió d'embolcall convex ( Convex Hull ) i una massa arbitraria de 100 uts.


3)

El món virtual té gravetat, és a dir, els cossos amb massa estan sotmesos a una força cap avall, això permet que funcioni la suspensió i també efectes realistes de caigudes, etc...

4)

Pel que fa a l'escenari, és la ciutat modular de l'entrada anterior. Li he afegit un arbre amb una textura amb transparència parcial.



5)

Per tal de poder tenir sempre en pantalla el vehicle actor, he afegit una càmera amb un actuador Camera que fa que la càmera segueixi el moviment del vehicle actor.

Aquests són els paràmetres que he triat.




6)

Un cop tot preparat he arrencat el motor de jocs i he obtingut el resultat que mostro en aquest vídeo de retalls escollits.

M'he hagut de barallar una mica amb l'Avidemux, però finalment he aconseguit posar els cartells de títol entre cada fragment de vídeo i les transicions entre  fragment i fragment.



dilluns, 8 de juny del 2015

Ciutat modular

En aquesta entrada modelaré amb Blender una ciutat.

La forma de fer-ho serà amb elements modulars de 3x3 m en planta, que encaixin geomètricament entre ells i que es repeteixin tantes vegades com faci falta.

La intenció és que la geometria sigui tan simple com sigui possible, i que el detall vingui donat per la textura.

Per començar modelaré un element de 3x3 m de paviment, que em permetrà fer les calçades. La geometria no pot ser més senzilla. quatre vèrtexs que formen un quadrat.

 
A continuació un element lineal de vorera. Hi ha un detall en un lateral per a la vorada. i té dues cares la superfície i una cara vertical per al desnivell de la vorada.


Tot seguit una variació de l'element anterior: amb dues vorades que formen angle recte.


Passem a les façanes de planta baixa. Un element de 3x3 m amb una porta. Un cop més la geometria és elemental. 4 vèrtexs i una textura plana aplicada, la imatge d'una porta i un tros de paret.


Continuant amb les façanes: un element de 3x3 m amb un aparador comercial.
 

Un element de façana de primer pis, amb una finestra balconera.


I finalment un element de 3x3 m  per al terrat



Ara ja tenim prou elements com per a  construir un angle d'edifici, ajuntant diversos dels elements que tenim creats.


I multiplicant 4 vegades, tenim una cruïlla de dos carrers.

 

I fent un patró de repetició, ja podem tenir unes quantes illes de cases.


Però aquesta ciutat seria molt avorrida, per a fer-la més alegre, afegirem un parell de mòduls més:

un mòdul per a fer xamfrans, de 3x3 m, amb un tros de vorera i un tros de calçada. Només 6 vèrtexs.

 
 I un mòdul de gespa de 3x3 m , per a poder fer parcs i jardins. 4 vèrtexs


I vet aquí la nostra petita ciutat modular:


En properes entrades utilitzaré la ciutat modular com a escenari per a fer-hi moure's els cotxes.




dimecres, 27 de maig del 2015

Modelat d'un Nissan Patrol 60 (1)

En aquesta entrada modelaré amb Blender un vehicle 4x4, un Nissan Patrol 60 , de l'any 1960

He triat aquest model perquè apareix al còmic "L'home de les dues rodes" (Le Chinois à deux roues en versió original) del dibuixant Tillieux. Publicat en català, traduït per Albert Jané a la revista "Cavall Fort" núm 323 a 333 , febrer a juliol de 1976

Els plànols del cotxe els he trobat en aquest enllaç:

En aquest enllaç hi ha un video del vehicle.

Gràcies a l'experiència del modelat del Citroën Saxo, en aquest modelat he creat diferents objectes per a cada una de les parts del cotxe, de manera que el numero de cares està més adequat a la geometria. He començat per les peces més grosses:


Part de davant
Part de darrera



 I un cop he tingut les parts  més grosses modelades és el moment de veure una primera vista de conjunt.




A continuació la resta de parts més menudes:


Frontal, primera versió de modelat
Parabrisa
Coberta flexible


I a continuació una vista del cotxe, ja amb totes les parts modelades de forma bàsica, però sense gairebé cap detall.


I a continuació ha afegit més detalls, els llums dels intermitents i de fre, les reixetes secundàries del frontal, les frontisses del parabrisa, els relleus dels laterals, la forma arrodonida del capó, les ballestes de la suspensió.

He millorat també els materials, afegint un punt de reflexió.


 


No hi ha dubte que el plantejament d'aquesta entrada (cada part un objecte) ha estat molt més eficient que el de les anteriors. He tingut també l'avantatge que aquest model és de formes més anguloses.

Encara no està acabat, però ja en tinc prou pel que volia, tenir un segon vehicle per tal de poder fer una altra incursió al motor de jocs Blender Game Engine, aquest cop amb cotxes que interactuïn.

En properes entrades espero poder fer alguna cosa interactiva entre cotxes.


dissabte, 23 de maig del 2015

Modelat i animació d'un Citroën Saxo (i 2)

En aquesta entrada acabaré el modelat del Citroën Saxo,

a partir del model de l'entrada anterior he anat afegint detalls:

-Les obertures frontals de ventilació per al capó i per al para-xocs davanter,
-Els retrovisors
-L'antena de ràdio
-Les matrícules
-Les formes corbades dels tapaboques de les llandes
-Les manetes de les portes
-Les gomes entorn dels vidres
-Els colors dels llums posteriors
-Els canals del sostre
-...

Tots aquests detalls han fet créixer ràpidament el nombre de cares i he subdividit el cos del cotxe en diversos objectes independents per a poder tractar millor cada part.

Tot i això he arribat a la conclusió que aquest pas s'hauria d'haver fet en etapes més inicials del modelat, ja que ara hi ha parts del cotxe amb un gran número de cares quan, per la seva senzillesa no caldrien.

A més a més, en la realitat les peces són diferents i estan separades entre elles uns quants mil·límetres, o sigui que en aquest aspecte també és interessant fer-ho per separat. Més encara si pretenem animar l'obertura de portes o del capó, etc...



Parabrisa davanter ressaltat sobre la resta d'objectes

I a continuació he fet uns quants renderitzats amb Blender Cycles per tal de veure el resultat:





Algunes parts han quedat massa anguloses, però en conjunt estic content de l'experiència.

Més endavant modelaré altres cotxes, però sense tant de detall.

dilluns, 6 d’abril del 2015

Modelat i animació d'un Citroën Saxo (1)

En aquesta entrada modelaré amb Blender un cotxe i l'animaré per tal que circuli per una carretera.

El model que he escollit és el Citroën Saxo (fase III) de 5 portes.

A partir dels plànols que he trobat en aquest enllaç, he començat el modelat bàsic a partir d'un cub, que he anat subdividint i ajustant per a donar-li la forma.


Primeres subdivisions

Subdivisions més avançades
Un cop he tingut la forma bàsica embastada, he aplicat un modificador de simetria i he seguit treballant només sobre el costat dret.
 

A continuació he modelat una versió simple de les rodes i l'aparellatge, format per una armadura amb ossos per a la rotació de les quatre rodes i per al moviment de gir de les rodes davanteres (direcció).

El moviment de les rodes davanteres (direcció) està controlat per l'os vertical que està davant del cotxe.


I una nova versió de les rodes més propera a la real. He marcat també una franja de color vermell al neumàtic com a ajuda per a visualitzar més bé el moviment de rotació.



A continuació li he aplicat 3 materials, un de reflectant per a les parts metàl·liques, un altre de mate per a les parts plàstiques i un altre de semitransparent per als vidres. No són els definitius, s'hauran d'anar perfeccionant.

Encara que el modelat no està acabat ni de bon tros ja vull veure el cotxe córrer, o sigui que he modelat una petita pista de proves ovalada a base d'un tram de 1 m de carretera , sobre el que he aplicat una matriu de repetició i l'he ajustat a una corba  Nurbscircle, que fa d'eix de la pista.




Per a poder verificar millor el moviment de les rodes he modelat unes petites peces auxiliars que he col·locat a la pista separades per una longitud equivalent al perímetre de les rodes, per tal de comprovar que la marca vermella de les rodes, en cada volta trepitja les marques vermelles de la pista. (tot això ho eliminaré un cop hagi comprovat que el funcionament  és correcte)

El moviment del cotxe es farà seguint una corba Nurbspath, que he ajustat per tal que faci un recorregut similar, però no exactament igual, a l'eix de la pista, això permetrà que les reflexions de l'entorn sobre la carrosseria variïn al llarg del recorregut.

Les rodes han de girar quan el cotxe avança, i a una velocitat de rotació adequada al moviment del cotxe. Per a aconseguir això cal fer alguns càlculs matemàtics:

-La longitud del recorregut és de 139,5 m, i es recorre en 100 fotogrames.
-El diàmetre de les rodes és de 0,614 m, per tant el perímetre (=longitud recorreguda en una volta)
  és de Pi x diàmetre = 3,1416 x 0,614 = 1,93 m
- Cada volta suposa un gir de 2 x Pi radians

per tant l'angle en radians girat per cada fotograma és de 4,54


Un cop ja he aconseguit que les rodes girin i ho facin de manera que sigui conseqüent amb el moviment del cotxe, he animat de manera manual la direcció de les rodes davanteres, per tal que facin el moviment adequat a les corbes de la pista.

Per acabar he afegit el so ambient (que de moment no es correspon amb el moviment del cotxe)

I finalment aquest ha estat el resultat:



Deixo per a properes entrades continuar el modelat del cotxe, perfeccionar els materials, automatitzar el moviment de la direcció, modelar i aparellar la suspensió (que condiciona el moviment del cos del cotxe), adaptar la velocitat del cotxe a la geometria de la pista (frenar abans de les corbes i accelerar a la sortida de les corbes ), fer una pista amb pujades i baixades... (n'hi ha per estona...)

dimarts, 17 de març del 2015

Espeleovideojoc (5) Comportament de la cabra

En aquesta entrada he tornat a posar-me amb l'espeleovideojoc.

Com que els treballs anteriors estaven fets en diferents arxius de Blender i també a causa d'una inestabilitat que m'apareixia i de la qual no he aconseguit trobar la causa, he decidit començar de nou.

En aquesta nova versió he modelat el personatge, l'entorn  les animacions d'una manera més senzilla, per tal que l'ordinador vagi més relaxat, a fer-ho més sofisticat ja hi arribaré...amb una mica de sort...

He afegit també alguns arbres (xiprers, que són fàcils de modelar).





Aquesta entrada ha estat feta basant-me en un interessantíssim  tutorial d'en ThaTimst3r sobre com modelar el comportament dels animals, que podeu trobar en aquest enllaç. Gràcies ThaTimst3r !!!

La idea és que l'animal tingui 3 diferents estats, denominats de la següent manera i amb el comportament següent:

Estat 1: Relaxat - L'animal pastura
Estat 2: Atent - L'animal mira cap a nosaltres i aixeca el cap
Estat 3: Fugint - L'animal es gira d'esquena a nosaltres i s'allunya caminant

Cadascun dels estats té associades unes accions diferents i hi ha unes regles per a passar d'un estat a l'altre:

En l'estat 1 es reprodueix l'acció de pasturar. És l'estat per defecte. Es passa a estat 2 quan ens hi acostem a menys d'una certa distància (distància de comoditat)

En l'estat 2 es reprodueix l'acció de vigilar i l'animal s'orienta cap a nosaltres. Es passa a estat 1 quan ens allunyem a més d'una certa distància (distància de comoditat). Es passa a estat 3 quan ens hi acostem a menys d'una certa distància (distància de por)

En l'estat 3 es reprodueix l'acció de caminar, l'animal s'orienta en direcció oposada a nosaltres, i s'allunya durant un temps prefixat. Després d'un cert temps es torna a avaluar la distància a nosaltres i s'assigna de nou l'estat que correspongui.

Finalment he aconseguit que el comportament funcioni i he creat quatre instàncies de la cabra, totes amb el mateix comportament.


I heus aquí el resultat,registrat amb el capturador de video Hypercam2, posteriorment li he afegit música amb Avidemux:


La música de fons és "Angel in Blue Jeans" del grup Train.

dimarts, 10 de març del 2015

Modelat d'un habitatge (i 4)

En aquesta entrada milloraré alguns detalls i crearé una animació amb moviment de la càmera, i donaré per acabat aquest treball de modelat d'un habitatge, que m'ha servit molt per a comprendre millor el motor de renderitzat Cycles de Blender.

Queda pendent que perfeccioni les meves habilitats amb la il·luminació, que no és gaire realista, però això requereix un aprenentatge...

El primer detall que he millorat és l'ajustament de la textura dels cobrellits a la forma corbada d'aquests. En la versió anterior es produïen unes distorsions de la textura en el punt on la roba es corba que restaven credibilitat a l'escena. Les distorsiones eren causades perquè les cares de l'objecte cobrellit estaven projectades sobre els plans XY , XZ i YZ i era difícil que tinguessin la proporció correcta , i d'aquí naixia la distorsió.

Ho he corregit creant el cobrellit estirat, després aplicant la textura i després donant-li la forma, de manera que els plecs arrosseguen la textura correctament. El procediment s'assembla més a la realitat, on la textura va impresa o brodada a la roba en pla, i després la roba es deforma per agafar la forma del llit.



He afegit molts interruptors i endolls per tot el pis i he canviat la textura d'algunes portes que encara tenien l'antiga. He millorat la forma de vàters, banyeres i bidets, fent-la més arrodonida i suau.

Per al moviment de la càmera he creat una corba NURBS com a camí (Path) que seguirà la càmera i que li farà recórrer totes les habitacions.



El renderitzat ha estat mooooooooooooooooooooolt llarg, 200 fotogrames a 6 minuts per fotograma, total 1200 minuts, és a dir 20 hores de renderitzat !!!!.

Tot i que m'hagés agradat que hi haguessin més fotogrames, el temps de renderitzat hauria estat excessiu per a la meva (poca) paciència. això es tradueix en una animació que va a salts...

També han quedat uns moviment molt bruscos de càmera en els girs tancats, en prenc nota per a properes animacions, però aquesta es queda així...

Finalment he afegit alguns fotogrames inicials d'imatge fixa, per tal que serveixin de portada.

Encara que he fet un parell d'intents per a posar-hi música, no han reeixit. Queda pendent per a propers vídeos.

I finalment aquest ha estat el resultat:


A partir d'ara em tornaré a centrar en l'espeleovideojoc...