Publicat per

Joc de lluites amb les animacions i models fets als curs

Publicat per

Joc de lluites amb les animacions i models fets als curs

Introducció En aquest curs, s’ha vist pas per pas com construir un model 3D de dos robots i s’ha creat desde zero…
Introducció En aquest curs, s’ha vist pas per pas com construir un model 3D de dos robots i s’ha…

Introducció

En aquest curs, s’ha vist pas per pas com construir un model 3D de dos robots i s’ha creat desde zero les seves animacions corresponents (a tenir en compte: atac, defensa, moviment, mort i estàtic). En aquesta última entrega es desenvouparà un joc de lluites incorporant aquests elements.

Joc pujat al drive: https://drive.google.com/file/d/1-3Y7mxidDEZgoWxsRzLo29FpTkHCK-fn/view?usp=drive_link

Correccions en les animacions

Els primers problemes van venir en exportar les animacions a Unity ja que el motor gràfic necessita d’unes certes correcions per funcionar tal com es veu a Maya. A continuació, s’enumeren les difcultats trobades en aquest apartat

-Problema amb el rig del peu: Desafortunadament, es va obsevar que, al importar l’animació del robot 2 (el blanc) a Unity, el peu esquerre no estava correctament conectat a seu òs superior (en aquest cas lower leg). Això provocava que Unity no llegís bé l’estructura òssea i no pogués desenvolupar un rig humanoide correcte. Es va decidir tornar a Maya, desencaixar el peu i tornar-ho a connectar. Això provoca que aquest peu, si un es fixa molt, faci un moviment diferent del seu parell però no s’aprecia gaire. En la següent figura, s’observa com quedava el peu al desencaixar-lo.

-Posició del robot 1 en l’animació: Un altre problema que va sorgir durant els primers compassos va ser que Unity interpretava incorrectament la posició incial de l’animació, produint un gir de casi 45 graus (provocant que el robot ataqués en diagonal en comptes de recte). Això es va solucionar canviant l’0pció de Root Transforn Rotation de l’animació a Original en comptes de Body Orientation.

En les següents figures s’aprecia el canvi d’orientació. La figura dreta és la correcta.

-Problema típic del model movent-se cap adalt: Per últim, un problema comú que va sorgir va ser que el model, una vegada exportat, es movia cap adalt. Això es va corregir, canviant l’opció a Center of Mass en el Root Transfrom Position (Y).

Controlador d’animacions

El controlador d’animacions pels dos robots va acabar sent de la següent manera:

L’animació d’entrada es l’anomenada Idle (repòs) i per tant, només encendre el programa els robots aniran cap aquest estat. Des d’aquí hi ha un paràmetre float, anomenat Run, que incialment es zero però que quan els robots es moguin variará. Aquest paràmetre controlarà l’animació Movement i l’activarà quan Run sigui diferent a zero i la desactivarà quan torni al seu valor original.

Per les animacions Block, Death i Attack s’ha decidit que s’activin des de Any State per poder fer els canvis d’animació instantàneament sense passar per Idle. Els paràmetres són de tipus Trigger i, quan s’apreta la tecla corresponent, s’activa l’estat especificat. Per impedir que les animacions es superposin, es controla la duració de les animacions mitjançant codi de la següent manera:

El mètode GetCurrentAnimatorStateInfo() permet comprobar si l’animació entre cometes está activa o no. Si una animació está activa no es permetrá començar d’altres. El mètode Block() no té aquesta restricció (intencionalment) per permetre bloquejar de forma ràpida, interrumpent altres animacions si es necessari. El mètode Death(), inclou la destrucció del codi i per tant no pot ser interrumput.

A mode d’exemple s’incorpora el mètode Attack():

On es pot veure que s’invoca a un mètode (amb Invoke) que provocará l’activació del Collider de l’espasa per tal de controlar quan els cops d’un robot impacten contra l’altre. Com que les animacions que es van exportar eren ReadOnly (no es va poder fer d’una altra manera) no es va poder utilitzar l’Animation de Unity per tal d’especificar en quin moment de l’animació acitvar el Collider dels cops. Alternativament, es va mesurar el temps en el que l’espasa estava recta i es va escruire en el codi, directament, en quin moment passava això. Tambés es pot veure en el codi que es para el so del moviment del robot i s’activa el so de l’espasa.

Elements de Gameplay afegits

Aquí s’enumeren elements de joc que s’han pogut afegir

-S’ha pogut realitzar un menu inicial, que permet començar nova partida i sortir del programa.

-S’ha implementat una barra de vida i es té en compte que els cops bloquejats no resten vida. Quan la vidda arriba a zero, el robot mor i surt un menú on s’indica quin robot ha guanyat, un botó per tornar a jugar i un botó per sortir.

-L’espasa emet soroll a l’atacar. També hi ha so pels cops bloquejats i els cops que resten vida. El robot emet so quan es mou i també hi ha música de fons.

Valoració de futur
Millores 
Hi ha força millores que es poden realitzar sense ampliar el propi programa:
-Implementar un gradient a la barra de vida (verd, groc o vermell depenent de la vida sobrant)
-Encara que GetCurrentAnimatorStateInfo() permet que no es superposin les animacions, si es tecleja molt ràpid hi ha un petit staggering. Una cosa semblant passa amb el so, al teclejar vàries tecles al mateix temps, a vegades, el so del moviment del robot no es sent. Investigar per tal que això no passi.
-L’atac del robot 2 no sembla que impacti bé contra el robot 1. Intentar arreglar-ho d’alguna manera.
-Implementar un timer per mostrar un compte enrere abans de començar a lluitar
-Crear un menú i una  taula pel so.
-Retardar el temps al rebre un KO.
Ampliació
El joc es pot ampliar, implementat elements típics dels jocs de lluita, com poden ser:
-Ampliar la selecció de personatges disponibles per batallar.
-Crear diferents movesets per cada personatge i ampliar el llistat d’atacs que poden realitzar els robots,
-Implementar combos de tecles per realitzar atacs més espectaculars
-Permetre saltar i atacar a l’aire.
Es podrien aplicar altres aspectes més avançats però es creu que els primers passos seríen aquests.
Plataforma
Es creu que els jocs d’aquests gènere tenen sortida sobretot en consola (tipus PlayStation y XBox) ya que el controlador es ideal en aquestes situacions. Millorat i ampliat es creu que s’hauria de publicar primordialment en aquestes plataformes.
Assets

Els assets de tercers utilitzats són els següents:

So:

RibhavAgrawal Pixabay (block)

Mixkit.co (hit and sword sound)

jeussfl2009 (backgorund)

DavidDumaisAudio (robot steps)

Models 3D:

MadMedicSoft- Russian buildings pack
Kobra Game Studios-Storage Building
EVPO Games-Modular Lowpoly Streets

 

Debat0el Joc de lluites amb les animacions i models fets als curs

No hi ha comentaris.

Publicat per

Animacions dels robots en 3D

Publicat per

Animacions dels robots en 3D

Animacions dels robots en 3D Disseny de les animacions Els dos robots porten armes similars però, encara que tenen animacions semblants, s’ha…
Animacions dels robots en 3D Disseny de les animacions Els dos robots porten armes similars però, encara que tenen…

Animacions dels robots en 3D

Disseny de les animacions

Els dos robots porten armes similars però, encara que tenen animacions semblants, s’ha volgut que es diferenciïn en alguns aspectes. A continuació, es descriuen les animacions i els comentaris sobre la seva creació.

-Atac: Els dos utilitzen una arma punxaguda i estiren el braç´per impactar contra l’enemic. No obstant, s’ha volgut que l’atac del robot més humaoide (robot 1) semblés més lleger i ràpid que el robot cilíndric (robot 2) ja que les dues armes es diferencien substancialment en tamany.

-Moviment: El robot 2 té cames més curtes i resulta en un moveminent més mecànic i les extremitats més estirades. Els braços també es mouen en una circumferència més amplia. El moviment del robot 1 és mes natural i s’assembla més al de l’humà.

-Mort: Moviment més complicat de dissenyar. El robot 1 gira i cau inmediatament. El robot 2 tira la cama esquerra cap enderrerre, com mogut per l’impacte, per després caure. En el robot 2, també, algunes peces es descoloquen al caure (animació que va sorgir de forma mica fortuita però que tenia sentit i es va conservar).

-Defensa: Les dues animacions són força diferent. El robot 1 utilitza l’estoc que porta per deflectar l’atac contrari mentres que l’adversari es tapa l’ull central amb les mans amb l’arma i la mà. Amb aquestes defenses, s’ha volgut dotar d’una mica de personalitat els dos objectes.

-Idle: Animacions molt similars. Encara que es cert que no respiren, els robots imiten el comportment humà. Així també l’animació tenia més moviment.

Enllaç a les animacions

Robot 1:

https://skfb.ly/psxNP

https://skfb.ly/psxOn

https://skfb.ly/psxO7

https://skfb.ly/psxOs

https://skfb.ly/psxO9

Robot 2:

https://skfb.ly/psxOv

https://skfb.ly/psxOy

https://skfb.ly/psxOz

https://skfb.ly/psxOB

https://skfb.ly/psxOF

Vídeo amb les animacions
Canvis i dificultats

La dificultat més clara, va venir donada pel canvi en l’esquelet del robot 2 durant el procès d’animació. Els ossos de la cama estaven molt junts i el genoll, especialment, necessitava col·locar-se més amunt per a que el moviment fos natural i les cames no produguessin rotacions extranyes amb el peu. Per fer això, es va eliminar un òs del tornc i es va moure el upper leg a l’altura d’aquest òs eliminat. De forma similar, es va moure el lower leg. En la comparativa següent es pot veure el nou model a l’esquerra i l’antic a la dreta.

Debat0el Animacions dels robots en 3D

No hi ha comentaris.

Publicat per

Rigging dels dos robots 3D

Publicat per

Rigging dels dos robots 3D

Procès de rigging El procès de rigging dels dos robots ha sigut molt similar, ya que els dos acaben compartint una estructura…
Procès de rigging El procès de rigging dels dos robots ha sigut molt similar, ya que els dos acaben…

Procès de rigging

El procès de rigging dels dos robots ha sigut molt similar, ya que els dos acaben compartint una estructura òsea similar, malgrat les diferències que s’aprecien en els dos models. El model d’un sol ull és el que més es distancia de la complexió humana, però agurpant adequadament les joint en Maya, es pot obtenir un funcionalitat adequada.

A continuació es veuen els esquelets de les dues figures en Maya:

I a Unity:

Les connexions fetes són totes centralitzades a la cintura dels dos robots. D’aquí sorgeixen dues branques, una cap a dalt i les seves extremitats i una altra cap abaix les cames. La jerarquía utilitzada ha sigut la següent:

Rotacions i distorsió

Pel que fa a les rotacions i els efecte de distorsió, cap objecte distosiona a un altre, excepte per l’hombro ( que afecta a upper chest ), el colze ( que afecta a a l’hombro ) i la cama ( que afecta a hips ). Això fa que es vegi una rotació en la qual el cilindre de l’extremitat es mou sobre la juntura sense que resulti extrany.

Mixamo 

En aquest cas, Mixamo no ha aconseguit un rig gaire realista en cap dels dos robots. En el robot més humanoide, es veu que la mà i l’arma sòlides, es tranformen en dos gelatines amorfes. Segurament, això es així degut a que l’algoritme dedueix que just després de señalar-li on es troba el canell, intenta dibuixar un mà ja que, en teoria, s’introdueixen figures humanes al programa. Per la resta d’extremitats, el tronc i el cap no hi ha problema i provant algunes animacions predefinides, semblen realistes en aquest aspecte.

En el cas de l’altre robot, el problema és encara més crític ja que s’afegeixen males interpretacions del cap i el tronc i sorgeix una figura extraña gelatinosa. El motiu és el mateix, l’algoritme està preparat per figures completament humanes.

Enllaç al drive

Aquí es troben els arxius fbx requerits, tant del rig en Maya com en Mixamo. El rig de Mixamo ha sortit molt extrany.

https://drive.google.com/drive/folders/1CBkFiBNdjHXqTNF3r4TvhZpcabQMKuoe?usp=drive_link

Debat0el Rigging dels dos robots 3D

No hi ha comentaris.

Publicat per

Texturització robots 3D

Publicat per

Texturització robots 3D

Començarem per ensenyar el desplegament UV: No s’ha tingut problema en desplegar cilindres i esferes però els cons han resultats més complicats.…
Començarem per ensenyar el desplegament UV: No s’ha tingut problema en desplegar cilindres i esferes però els cons han…

Començarem per ensenyar el desplegament UV:

No s’ha tingut problema en desplegar cilindres i esferes però els cons han resultats més complicats. Amb una combinació de projecció ciclindrica i, en alguns casos, amb l’ajuda d’automàtic es va poder realitzar el procès. Com es veu, els quadrats són força més grans en el cas del robot cilíndric (el primer que es va desplegar) però al construir l’altre es va optar per figures més petites, per controlar millor les proporcions.

A l’hora de col·locar la geometria en el espai de mapejat, les estructures van quedar així:

La imatge de l’esquerra correspon al robot més humanoide mentre que el de la dreta, correspon al cilíndric.

Abans de presentar el resultat finals, pel que a les pròpies textures, es presenta alguns dels treballs fets per eliminar costures dels models:

S’ha optat, en els dos casos, utilitzar l’eina de clonatge per tal de difuminar o arreglar la zona entre costures amb l’objectiu d’aconseguir una superfície més uniforme.

Les textures han sigut extretes de la plataforma:

https://polyhaven.com

I s’han utiitzat els següents models:

Per pintar els model més humaoide, s’ha pensat en texturitzar-ho com si fos un maniquí de fusta amb peces metàliques ja que la figura 3D recordava aquest “dummies” que s’utilitzen en art. El robot cilíndric té una inspiració més propera al robot Giru de Dargon Ball GT.

Finalment, presento els dos robots texturitzats:

https://skfb.ly/p8ust

https://skfb.ly/p8usx

 

 

Debat0el Texturització robots 3D

No hi ha comentaris.

Publicat per

Porcès de modelatge de dos robots en 3D

Publicat per

Porcès de modelatge de dos robots en 3D

Document que explica el procès creatiu i com s’ha arribat als models finals: Esbossos dels dos robots: Esbòs tècnic: Enllaç a Sketchfab…
Document que explica el procès creatiu i com s’ha arribat als models finals: Esbossos dels dos robots: Esbòs tècnic:…

Document que explica el procès creatiu i com s’ha arribat als models finals:

Esbossos dels dos robots:

Esbòs tècnic:

Enllaç a Sketchfab dels models finals en 3D:

 

 

Debat0el Porcès de modelatge de dos robots en 3D

No hi ha comentaris.