Character Setup   |   Downloads   |   Tutorials   |   Animations   |   Contact
Røyk --- Partikkel dynamikk tutorial av Kjetil H Kulander

Røyk Partikkel dynamikk av Kjetil H Kulander

Emitter

I Partikkel menyen, velg "Create Emitter". Maya lager da et "emitter" objekt og et partikkel objekt som er koblet til emitteren. Gjør følgende instillinger på Emitteren:

Emitter Type = Volume

Rate = 200

Distance/Direction Attributes > Direction X,Y, Z = 0,1, 0

Volume Emitter Attributes > Volume Shape = CylinderVolume Speed Attributes > Away From Axis = 0

Directional Speed = 1

Emitterens Scale attributer = 2.2, 0.1, 2.2

Partiklene

Gjør følgende instillinger på particleShape:

Lifespan Attributes > Lifespan Mode = Random range
Lifespan = 5
Lifespan Random = 2
Time Attributes > Start Frame = ( den første framen du har i playbackrange )

Partiklene skal rendres ved bruke av kvadratiske bilder (sprites) som plasseres på hver partikkel. Sett Render Attributes > Particle Render Type til "Sprites".

Fields

Legg til et gravityField på partiklene. Sett Magnitude til -0.2 og Attenuation til 0. Magnitude bestemmer hvor mye partiklene skal bli påvirket, mens Attenuation bestemmer hvor mye styrken skal avta når avstanden øker. Når Attenuation er på 0 påvirker feltet i hele scenen.

Legg et turbulenceField på partiklene. Sett Magnitude til 2, Attenuation til 0 og Frequency til 0.5. Frequency er lengden på "bølge" mønsteret som turbulens feltet lager. Større tall lager kortere og tettere mønster. På Phase X,Y og Z skal vi legge et uttrykk slik at mønsteret som turbulens feltet lager forandrer seg over tid. Høyreklikk på verdien og velg Create New Expression. Du får da opp Expression Editor. Skriv inn følgende expression:

turbulenceField1.phaseX = time*2;
turbulenceField1.phaseY = turbulenceField1.phaseX;
turbulenceField1.phaseZ = turbulenceField1.phaseX;

"= time*2" betyr at attributtens verdi skal være dobbelt så mye som tiden i sekunder.

SpriteTwistPP

På partiklenes Shape node under Add Dynamic Attribute klikk på General. Gå i Particle menyen i vinduet som kommer opp, klikk på spriteTwistPP og OK.

Klikk på General under Add Dynamic Attribute. I New menyen skriver du "rand" i Attribute name. Under Attribute Type klikk på Per Particle (Array). Denne attributten skal gi hver partikkel en tilfeldig verdi mellom -1 og 0. Verdien skal vi bruke til å gi partiklene forskjellig hastighet og retning på rotasjonen.

Klikk på General under Add Dynamic Attribute.I New menyen skriv startRotate i Attribute name. Under Attribute Type klikk på Per Particle (Array). Denne attributen skal gjøre så hver partikkel starter med en tillfeldig rotasjon mellom -360 og 360.

Under Per Particle (Array) Attributes høyre klikker du på rand attributens input felt, velg Creation Expression. Skriv inn følgende expression:

particleShape1.startRotate = rand (-360,360);
particleShape1.rand = rand (-1,1);

Klikk Create nederst til venstre. Et Creation expression kalkuleres på framen som partiklene blir født. En Runtime expression kalkuleres på hver eneste frame. For å få partiklene til å rotere mens de er i scenen må man derfor lage en Runtime expression. I Expression Editor, klikk på Runtime before Dynamics. Vi har laget en attributt som gir partiklene en tilfeldig verdi mellom -1 og 1 (particleShape1.rand). Vi skal nå bruke denne til å lage en variabel som styrer partiklenes rotasjon i en runtime expression. Ved å multiplisere particleShape1.rand med frame*2 kan vi bruke den nye verdien til partiklenes rotasjon. Skriv inn følgende uttrykk:

float $randTime = particleShape1.rand * frame * 2;
particleShape1.spriteTwistPP = particleShape1.startRotate + $randTime;

Klikk Edit nederst til venstre. I tillegg til $randTime som er variabelen som roterer partiklene over tid, så adderer vi particleShape1.startRotate for å gi partiklene en tilfeldig rotasjon når partiklene blir født. Partiklenes runtime expression kalkuleres ikke før første frame etter de er født, så for å få den til å kalkulere på første frame så kopierer man alt man har i runtime expression over til creation expression. Klikk Edit nederst til venstre.

opacityPP, spriteScaleXPP, spriteScaleYPP og rgbPP

For å få partiklene til å tone ut før de dør, skal vi legge en ramp på opacityPP. Under Add Dynamic Attribute klikk på Opacity. Velg Add Per Particle Attribute, og Add Attribute. Høyreklikk på opacityPP og velg Create Ramp. Høyreklikk og velg Edit Ramp. Verdien som er nederst på rampen er verdien partiklen har når den blir født. Verdien øverst på rampen er verdien partiklen har når den dør. Slett den midterste verdien, og sett interpolation til Exponential Down. Partiklene vil da få lengre tid med lav opacity.

Under Add Dynamic Attribute klikk på Color. Velg Add Per Particle Attribute, og Add Attribute. Legg en ramp på rgbPP, og sett fargene slik du vil ha dem.

Under Add Dynamic Attribute klikk på General. Gå i Particle menyen i vinduet som kommer opp, merk spriteScaleYPP og spriteScaleXPP. Legg en ramp på spriteScaleXPP. Høyreklikk på spriteScaleYPP og velg optionbox på Create Ramp. På Map To velger du rampen som du la på spriteScaleXPP (normalt sett den nederste). Du vil da få den samme rampen på begge attributtene. Velg Edit Ramp, sett 0.5 på den nederste verdien og 6 på den øverste.


Copyright 2005 Kjetil H Kulander
www.mrmotion.net