Soluţii - PC Magazine Romania, Martie 2002
Efecte speciale cu 3D Studio Max (II)
Ionuţ Ghionea
Aşa cum am promis în numărul trecut, continuăm cu prezentarea a încă două soluţii
edificatoare pentru posibilităţile produsului 3D Studio Max.
Modelarea unei sticle al cărei conţinut se varsă pe o masă
Ne propunem de această dată să creăm o sticlă, răsturnată pe o masă şi din care
curge lichid. Deşi pare complicată la prima vedere, modelarea sticlei şi a lichidului
este foarte simplă, dacă se urmăresc câţiva paşi de bază.
Pentru început, se desenează sticla, realizând cu comanda [Line] din [Create]
-> [Shapes] profilul din Figura 1.
Se aplică apoi modificatorul [Lathe] din [Modify], rotind profilul creat cu
3600, obţinându-se sticla din Figura 2. Numărul de segmente (Segments) trebuie
să fie cel puţin egal cu 30, iar după rotire se mai poate aplica modificatorul
[Modify] -> [MeshSmooth] pentru a rotunji unele colţuri şi a da o formă cât
mai reală sticlei.
În acest moment, sticla stă în poziţie verticală. Pentru a simula scurgerea
lichidului, aceasta trebuie răsturnată. În acest scop, se adaugă în scenă o
masă rotundă, se roteşte sticla cu 900 şi se poziţionează deasupra mesei. Adăugarea
câtorva lumini şi a unei camere este necesară, obţinându-se Figura 3.
Până aici nimic deosebit. A venit momentul creării lichidului, cu ajutorul
sistemului de particule.
Sistemele de particule prezintă o variaţie în timp, modificându-şi permanent
aspectul. Un sistem de particule creează o serie de mici particule controlate
printr-o diversitate de parametri. Aceste sisteme sunt folosite în simulări
ale ploii, zăpezii, focului, fumului, lichidelor curgătoare etc. Asupra sistemelor
de particule pot acţiona şi diferite elemente de deformare spaţială (space warp
- modificatori ce afectează obiectele în coordonate spaţiale universale), cum
ar fi vântul, gravitaţia şi deflectorii, ce controlează mişcarea particulelor
în cadrul scenei.
3D Studio Max 4 acceptă şase tipuri de sisteme de particule:
- Spray: creează efecte de tip spray de complexitate redusă;
- Snow: creează un efect de ninsoare şi foloseşte câţiva parametri suplimentari
legaţi de forma, dimensiunea şi viteza de cădere a particulei;
- Pcloud: creează un nor static de particule şi este utilizat pentru a crea
efecte precum câmpuri tridimensionale de stele;
- Parray: folosit pentru efecte avansate de explozie;
- SuperSpray: este o versiune îmbunătăţită a sistemului spray standard şi,
probabil, cel mai utilizat sistem de particule;
- Blizzard: este, de asemenea, o versiune mult îmbunătăţită a efectului de
ninsoare.
În cazul de faţă, pentru a simula cu mare precizie lichidul, se va folosi sistemul
SuperSpray din panoul [Create] -> [Geometry] -> [Particle Systems] ->
[Super Spray]. Se poziţionează sistemul de particule în capătul sticlei, orientat
(cu săgeata) către exteriorul acesteia (Figura 4).
Valorile parametrilor folosiţi sunt: în meniul Basic Parameters, opţiunea Spread
de la Particle Formation va lua valoarea 3, iar Percentage of Particles se va
seta la 20%. În meniul Particle Generation, Use Rate are valoarea 20, Particle
Motion -> Speed=7, Emit Start=0, Emit Stop=100, Display Until=100, Life=30,
Particle Size -> Size=20. În meniul Particle Type se alege MetaParticles.
Toate celelalte opţiuni rămân nemodificate.
În acest moment, mişcând bara de animaţie din poziţia 0 spre poziţia 100, se
observă că din capătul sticlei ies nişte particule, pe o direcţie paralelă cu
masa. Aceste particule trebuie să ajungă pe masă pe o traiectorie curbă. Pentru
aceasta, din [Create] -> [Space Warps] -> [Particles & Dynamics] se
alege [Gravity]. Se poziţionează elementul de gravitaţie ca în Figura 4, alături
de sistemul de particule, pe o direcţie perpendiculară pe acesta, îndreptat
în jos. Pentru ca acestea sa fie influenţate de gravitaţie trebuie ca cele două
elemente (Gravity şi Super Spray) să fie legate (link), folosind în acest scop
butonul [Bind to Space Warp], aflat în bara de butoane din partea superioară
a ecranului.
Mişcând bara de animaţie, se observă că particulele şi-au schimbat traiectoria,
trec prin masă şi se îndreaptă spre partea de jos a ecranului.
Cum va rămâne lichidul (sistemul de particule) pe masă? Foarte simplu: trişăm
puţin. Lichidul va fi lăsat pe traiectoria sa descendentă şi se desenează pe
masă, chiar acolo unde lichidul o atinge, o formă oarecare, folosind [Create]
-> [Shapes] -> [Line]. Noua formă trebuie să semene oarecum cu o mică
baltă de lichid. Odată forma stabilită, se aplică asupra acesteia modificatorul
Extrude şi MeshSmooth, pentru a-i rotunji marginile ca în Figura 5.
Normal este ca în poziţia 0, forma să fie foarte mică, aproape invizibilă,
iar în poziţia 100, să fie mult mai mare, datorită lichidului care se presupune
că s-a scurs din sticlă. Uşor de realizat: se duce bara de animaţie în poziţia
0, se micşorează forma cu butonul [Select and Uniform Scale], se apasă apoi
butonul [Animate] de sub bara de animaţie. În poziţia 100 se măreşte forma până
la dimensiunea finală. Se apasă iar butonul [Animate], acesta revine în poziţia
normală, iar animaţia este gata.
Se mapează masa cu un material de lemn, lichidul cu un material roşu (spre
exemplu), dar puţin transparent. Evident, ultima formă creată, acumularea de
lichid de pe masă, trebuie mapată cu acelaşi material ca şi lichidul.
În scenă se poate adăuga o cameră care va lua locul viewport-ului Perspective
şi se începe renderizarea animaţiei.
În figura 5 se observă că lichidul trece efectiv prin masă, dar, datorită acesteia,
nu se mai vede în animaţie.
Folosirea sistemului de particule Super Spray cu opţiunea MetaParticles este
puţin pretenţioasă deoarece timpul de renderizare este destul de mare şi creşte
proporţional cu numărul de particule. Totuşi, MetaParticles, într-o setare corectă,
imită cel mai bine lichidul. De asemenea, trebuie avută în vedere legătura între
volumul de lichid care curge din sticlă şi viteza de creştere a acumulării.
În figurile 6 şi 7 se prezintă două imagini oarecare din timpul animaţiei.
Se observă că iluzia creată este aproape perfectă. În acest tutorial nu s-a
insistat asupra formei sticlei, a mesei sau a altor elemente, a fost prezentată
numai tehnica de modelare a unui lichid.
Simularea spargerii unui obiect în momentul coliziunii cu altul
Cea de-a doua temă pe care v-o propunem este modul de utilizare a particulelor
de tip Metaparticles (Metaballs) în simularea spargerii unei picături de metal
topit pe o suprafaţă plană.
Parametrii legaţi de tipul particulelor permit definirea acelora ce vor afişate
la renderizarea scenei. Porturile de vedere utilizează, în general, marcaje
pentru reprezentarea sistemelor de particule, dar la renderizarea finală, se
vor obţine mai multe particule de anumite forme şi mărimi ce sunt definite de
utilizator. În 3D Studio Max 4 pot fi utilizate trei tipuri de particule:
- Standard Particles: conţin particule geometrice standard, precum: triunghiuri,
sfere, prisme, cuburi, dodecaedre etc;
- MetaParticles: fiecare particulă este înlocuită cu elemente de tip Metaball.
Modelarea Metaball creează tensiuni superficiale între sfere pentru a genera
suprafeţe cu aspect organic. Metaparticulele sunt folosite pentru a simula
lichide curgătoare, ploaie, explozii etc;
- Object Fragments: creează particule din fragmentele unui obiect. Object
Fragments se foloseşte doar cu opţiunea Particle Array din meniul [Create]
-> [Geometry] -> [Particle Systems] -> [Parray].
- Instanced Geometry: geometria instanţiată înlocuieşte fiecare particulă
din sistem cu o instanţă a unui element geometric selectat. Astfel, se creează
un singur obiect cu o animaţie oarecare şi se va folosi într-un sistem de
particule (stoluri de păsări, stropi de apă, câmpuri de asteroizi, frunze
luate de vânt etc).
Tutorialul de faţă prezintă realizarea unei scurte animaţii în care o picătură
cade de la o înălţime oarecare, se loveşte şi se sparge de o suprafaţă plană.
Pentru început, se va desena suprafaţa plană [Create] -> [Geometry] ->
[Standard Primitives] -> [Box]. Deasupra acesteia se va adăuga cel de-al
doilea obiect [Create] -> [Geometry] -> [Standard Primitives] -> [Sphere].
Sfera creată va fi editată pentru a obţine forma alungită a picăturii. Din [Modify]
-> [Modifier List] se alege Edit Patch, cu opţiunea Vertex în secţiunea Selection.
După editare, sfera trebuie să arate ca în Figura 8.
Se va folosi şi o sursă de lumină albă, de tip Omni [Create] -> [Lights]
-> [Omni]. Dimensiunile suprafeţei şi picăturii nu contează foarte mult,
dar trebuie să existe, totuşi, o anumită proporţie între aceste două obiecte
(Figura 9).
Pasul următor este realizarea animaţiei picăturii, ce se va deplasa din poziţia
iniţială, în jos, va intersecta suprafaţa, trecând de aceasta. Având picătura
în poziţia iniţială şi bara de animaţie (din partea de jos a ecranului) la momentul
de timp 0 se începe animaţia. Se deplasează bara de animaţie la momentul de
timp 30, se apasă butonul [Animate] (care se colorează în roşu), se deplasează
picătura în jos, dincolo de suprafaţa plană şi se apasă din nou butonul [Animate]
(Figura 10).
Astfel, picătura se va deplasa pe verticală, din poziţia iniţială (timp=0)
în poziţia finală (timp=30).
Odată animarea deplasării picăturii terminată, vor începe etapele în care aceasta
se sparge când atinge suprafaţa plană.
Din [Create] -> [Space Warps] -> [Deflectors] se alege Deflector şi se
plasează deasupra suprafeţei plane, aşa cum se observă în Figura 11.
În secţiunea Parameters, se setează valoarea Bounce la 0,3.
Din [Create] -> [Geometry] -> [Particle Systems] -> [PArray] se adaugă
în scenă un sistem de particule folosit pentru efecte avansate de explozie.
Acest sistem se va plasa sub suprafaţa plană, ca în Figura 12.
Sistemul de particule conţine un set complex de parametri, ce vor fi modificaţi
după cum urmează: în meniul Basic Parameters, secţiunea Object-Based Emitter
se apasă butonul [Pick Object] şi se selectează picătura, iar în secţiunea Viewport
Display se selectează opţiunea Mesh şi Percentage of Particles=25%. În meniul
Particle Generation, secţiunea Particle Quantity, se selectează opţiunea Use
Total, cu valoarea 450. În secţiunea Particle Motion, parametrii au valorile:
Speed=1,06 şi Divergence=0. În secţiunea Particle Timing, Emit Start=16 (poziţia
în care picătura atinge suprafaţa) şi Emit Stop=18, Display Until=100, Life=100.
De asemenea, se bifează şi opţiunea Emitter Rotation.
Până în prezent, setarea opţiunilor de mai sus are următoarea semnificaţie:
se vor emite 450 de particule, se vor afişa în forma reală (mesh) şi vor avea
viteza egală cu 1,06. Emiterea particulelor se va face între cadrele 16 - 18
şi vor fi afişate până la cadrul 100. În secţiunea Particle Size, prin valorile
Size=8, Variation=20 şi Grow For=2, particulele îşi vor modifica dimensiunile
până la valoarea 8, în numai două cadre.
În meniul Particle Type, secţiunea Particle Types se alege opţiunea Metaparticles,
în secţiunea MetaParticle Parameters se stabileşte valoarea Tension=0,4 şi Variation=20%,
iar în secţiunea Mat'l Mapping and Source se apasă butonul [Get Material From:]
şi se selectează Picked Emitter. Astfel, sistemul de particule va folosi materialul
obiectului emiţător, în cazul de faţă, materialul picăturii. În meniul Object
Motion Inheritance se stabileşte valoarea Multiplier=0,3.
În pasul următor, sistemul de particule (PArray) se va lega de Deflector prin
intermediul butonului [Bind to Space Warp], aflat în partea de sus a ecranului,
imediat sub bara de meniuri. Sensul corect în care se realizează legătura este
de la Deflector la PArray.
Se presupune că picătura, după ce atinge suprafaţa plană, se sparge şi, implicit,
dispare. Dispariţia picăturii în momentul timp=16 se realizează executând click
dreapta pe aceasta când se află în poziţia amintită. Din meniul ce apare se
selectează [Properties] şi se modifică valoarea Visibility din 1 în 0, având
şi butonul [Animate] apăsat pentru a crea un cadru cheie (Figura 13).
Astfel, picătura dispare complet din scenă, locul ei fiind luat de sistemul
de particule. În acest moment, se observă că particulele ating suprafaţa plană,
apoi se ridică, fără a mai reveni (Figura 14).
Se impune introducerea în scenă a altui element din categoria Space Warps,
Gravity (gravitaţie). Acest element se plasează în scenă foarte aproape de PArray,
practic suprapus sistemului de particule (Figura 15).
Gravity nu are prea multe variabile, în cazul de faţă acestea luând valorile:
Strength=0,05, Decay=0 şi cu opţiunea Planar bifată.
Adăugarea gravitaţiei impune lichidului o stabilitate mărită, singura mişcare
rămasă fiind împrăştierea sa circulară pe suprafaţa plană.
În Figurile 16 şi 17 sunt prezentate două imagini din timpul renderizării:
După cum se poate observa, în scenă s-au adăugat materiale pentru fiecare obiect
(sistem de particule şi suprafaţa plană), mărind gradul de realism.
Acest tutorial poate fi îmbunătăţit şi, implicit, complicat, atât prin adăugarea
altor elemente cu care să interacţioneze sistemul de particule, cât şi prin
modificarea parametrilor acestuia.
 |
fig 1 |
 |
fig 2 |
 |
fig 3 |
 |
fig 4 |
 |
fig 5 |
 |
fig 6 |
 |
fig 7 |
 |
fig 8 |
 |
fig 9 |
 |
fig 10 |
 |
fig 11 |
 |
fig 12 |
 |
fig 13 |
 |
fig 14 |
 |
fig 15 |
 |
fig 16 |
 |
fig 17 |
|