De la mateixa manera que en mòduls anteriors hem après a utilitzar les forces de la natura per crear animacions realistes a sistemes de partícules. També podem fer que els objectes, estiguin influits per la gravetat, camps de forces, puguin interactuar amb altres objectes definint paràmetres com la tasa de rebot, la fricció, la intensitat de la força de la gravetat, la inèrcia, el pes de cada objecte ...
Des de la finestra de propietats > pestanya físiques, activarem l'opció "rigid body". A partir d'aquest moment aquest cos patirà la gravetat ( a menys que s'hagi desactivat des de propietats > escena > gravetat).
En aquest cas, caldrà també indicar que serà un "rigid body" però per evitar que se l'emporti la gravetat caldrà indicar, en les propietats del "Rigid body" que és un objecte de tipus "Passive".
Secció Surface response > friction: a major fricció menys llisquen els materials entre ells. Es pot comprovar modificant el valor amb una rampa inclinada.
Secció surface response > bounciness: indica la elasticitat d'un objecte. A major elasticitat més reboten els objectes. El seu funcionament es veu més clar si els dos objectes que col·lisionen tenen aquest valor per sobre de 0.
Secció Sensitivity > Collision Margin: defineix la distància mínima entre objectes abans que es consideri una col·lisió, evitant que es solapin o es toquin massa quan reboten.
Vull simular un tir parabòlic d'una esfera en dues fases:
La primera sense físiques, animació rectilinia amb dos keyframes ( 1 i 40) definint l'inici el final de la posició
La segona, les físiques entren en funcionament i fem que la gravetat influeixi una mica abans del Keyframe final ( en el 39).
Per això, definirem de bon principi una física activa de tipus Rigid Body sobre l'esfera. La clau està en la propietat Rigid Body >settings >Animated:
En el frame inicial (1) inserirem de nou un keyframe activant la propietat Animated ( des de la finestra de propietats)
Un frame abans d'acabar l'animació (39) tornarem a inserir un frame exactament igual, amb la propietat Animated activa.
En el frame 40 de nou inserim un keyframe sobre la propietat animated, però en aquest cas, la propietat estarà inactiva, és amb aquesta acció que estem indicant que les físiques del RigidBody tornin a entrar en funionament.
Nota: Inserim tres frames per definir la propietat Animated, perquè ens interessa que aquesta s'aturi de cop en el frame 40, i no de manera paulatina, que és el què passaria si només inserissim dos keyframes.
Les dinàmiques són totes aquelles propietats que simulen les forces físiques en els nostres objectes.
Perquè s'apliquin aquestes dinàmiques, la casella "dynamic" en la secció Settings, de les propietats del "rigid body" ha d'estar activa.
En la mateixa pestanya de propietats, trobarem la secció "Dynamics" que conté dos paràmetres:
Damping translation: actua com una fricció que redueix progressivament la velocitat de l'objecte quan es mou en línia recta.
Rotation: En cas de col·lisió, l'objecte es desplaçarà amb més o menys rotació.
propietats > physics > settings es pot definir la massa de l'objecte. A major massa major és l'impacte que tindrà amb altres objectes, i menor serà el seu desplaçament quan altres objectes impactin amb ell
Algunes característiques de la física de l'entorn, es poden definir en la pestanya escena de la finestra propietats.
La gravetat general de l'escena, es pot activar, desactivar, però també es pot modificar l'acceleració amb la que actua.
Propietats de tots els "rigid bodies" continguts en l'escena: es pot definir la velocitat amb la que es produeixen les animacions. És especialment interessant la capacitat d'afegir keyframes a aquest paràmetre, perquè, per exemple, podrem simular animacions a càmera lenta.
Nota: El paràmetre velocitat només funciona en rigid bodies quen "Animated" en la física de Rígid body de l'objecte afectat, està actiu.
Si vull simular, com el joc de les bitlles, que una esfera (objecte 1) xoca contra una columna de cubs (objectes 2) i produeix que aquests caiguin al terra (objecte 3), necessito crear tres objectes amb física de Rigid Body, però caldrà configurar les propietats de cada objecte de manera diferent.
L'esfera: tindrà la propietat Animated activa, perquè el moviment de keyframes domini per sobre de les físiques
El terra: haurà de ser de tipus passiu perquè la gravetat no l'afecti
Els cubs: no caldrà modificar cap propietat de les que ve per defecte.
Per donar més realisme a l'animació de l'apartat anterior, el que encara seria més adequat, seria fer el mateix que hem fet amb el tir parabòlic en l'apartat anterior:
Primera part de l'animacíó per definir la velocitat inicial de l'esfera, sense fer ús de les físiques
Segona part de l'animació, just abans de l'impacte activar les físiques a l'esfera perquè tingui en compte totes les forces que intervenen ( impacte, massa, fricció, ...) per definir la trajectoria resultant de l'esfera.
Caldria per tant definir, a banda dels keyframes de la primera part de l'animació, els keyframes que serveixen per definir quan s'aplica la física i quan no.
Recordem que això es fa a través de rigidbody>settings>animated
KF al principi de tot de la primera part de l'animació amb Animated activat
KF just abans de l'impacte amb Animated activat també
KF en el moment de l'impacte amb Animated desactivat
Podriem ralentizar la velocitat de l'esfera durant tot el temps que "Animated" està actiu, inserint KF modificant aquesta velocitat.
En el moment en el que modifiquem la forma d'una malla, aquesta hauria de respondre a contactes amb altres malles de manera diferent.
Si no fem cap modificació les físiques s'executen tenint en compta la composició original de la malla., tal com es veu en el primer video a sota d'aquest paràgraf.
Per que les físiques de l'objecte cub ( la malla que s'ha modificat) es comportin amb coherència a la seva nova forma ( li hem tret un cara) , caldrà modificar desde properties > phyaixa > shape a "Mesh".
Modficiació del tipus de forma a malla
De vegades, podem trobar-nos amb alguns moviments no volguts, que són conseqüència de la posició inicial dels objectes. És a dir, si situem inicialment diferents malles que estan una mica solapades entre elles, aquest solapament, provoca com a conseqüència de les físiques aplicades que les malles es desplacin a l'inici de l'animació.
Seleccionem la malla que té les propietats de rigid body definides, i que volem copiar a les altres malles
Amb la tecla shift, seleccionem les malles destinatàries de les propietats de rigid body
Anem al menú object > rigid body > copy from active