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 |
|