Expression Editor, fiskestim

Moderatorer: Super Moderatorer, Admins

Brukeravatar

Trådstarter
Tormem
Innlegg: 885
Registrert: fre 02 nov, 2007
Sted: Olso
Kontakt:

Expression Editor, fiskestim

Legg innav Tormem » tir 22 feb, 2011

Hei!

Jeg sitter og klør meg i hodet over hvordan jeg skal løse følgende problemstilling:

- Jeg har et mesh av en fisk, animert av en geo cache (svømmeloop).
- Dette meshet blir instance'a til partikler for flokkbevegelse.
- Flokkmentaliteten blir bestemt av BrainBugz-noder (funker bra!)
- Nå ønsker jeg at Scale-attributtet under GeoCachen skal kobles til Acceleration-attributtet til hver enkel partikkel.

MÅL: Svømmeanimasjonen går fortere (scale-attributtet i FishCacheAnim skal da gå LAVERE) når partikkelen (BugsShape) beveger seg fortere. Dette gjør at rask fisk svømmer mer, og langsom fisk slakker ned bevegelsene.

Alex Alvarez er inne på det i en tutorial her: LINK

Kode: Velg alt

vector $velo = particleShape1.velocity;
if ($velo.y > 5)
particleShape1.acceleration += <<5,0,0>>;
else
particleShape1.acceleration += 0;

The above will cause particles to speed up in X if their speed in Y is greater than 5.


Jeg forsøker å skrive om denne og bytte ut navn + attributter slik at

Kode: Velg alt

FishCacheAnim.Scale = BugsShape.Acceleration


Men det er garantert syntax error. Jeg forsøker også å definere vector-variable, bytte til float... Jeg vet egentlig ikke hva jeg holder på med :)

Noen innspill?


Bilde

Brukeravatar

Pietas
Innlegg: 1412
Registrert: søn 16 apr, 2006
Sted: London

Legg innav Pietas » tir 22 feb, 2011

Kode: Velg alt

vector $velo = particleShape1.velocity;
if ($velo.y > 5) {
particleShape1.acceleration += <<5,0,0>>;
}
else {
particleShape1.acceleration += 0;
}

//The above will cause particles to speed up in X if their speed in Y is greater than 5.


fungerer det? saa vidt jeg kan se eneste syntax error du har

Brukeravatar

Trådstarter
Tormem
Innlegg: 885
Registrert: fre 02 nov, 2007
Sted: Olso
Kontakt:

Legg innav Tormem » tir 22 feb, 2011

Hehe, det der er koden til Alex Alvarez, regner med den er i orden, men takk for tilbakemelding! ;)

Det jeg forsøke å gjøre var å bruke den som utgangspunkt for det jeg vil ha gjort. Forsøker nå

Kode: Velg alt

FishCacheAnim.scale = mag(BugsShape.velocity);


men får tilbake

"// Error: Attribute of a particle object can only be used with dynExpression command: velocity"

Leser mer om dynExpression her: LINK

Jeg er på dypt vann, og vet ikke helt hva jeg ser etter. Poenget er fortsatt at BugsShape.velocity skal drive FishCacheAnim.scale. Jeg kommer ikke til disse valørene som noder jeg kan stappe i Set Driven Keys heller....

Skal lære meg programmering, men tror dette er feil ende av bassenget :)

Brukeravatar

Pietas
Innlegg: 1412
Registrert: søn 16 apr, 2006
Sted: London

Legg innav Pietas » tir 22 feb, 2011

kanskje det funker (untatt den nederste linjen), men pent skrevet kode er det ikke.. :)

forstaar ikke helt problemet ditt.. hoyreklikker du paa acceleration og velger create expression? saann jeg forstaar det saa prover du aa lage en normal expression istedet for dynamic expression..? har jeg i det heletatt forstaatt problemstillingen? o_O

Brukeravatar

Trådstarter
Tormem
Innlegg: 885
Registrert: fre 02 nov, 2007
Sted: Olso
Kontakt:

Legg innav Tormem » tir 22 feb, 2011

Joda, det har du! Problemet her er at jeg ikke "får tak i" særlig BugsShape.velocity. Den er gråa ut i attribute editor (ingen høyreklikk heller), så jeg må referere til den i kode.

Og jeg kan ikke riktig syntaks for "svømmehastighet styrer animasjonshastighet", eller "BugsShape.velocity styrer FishCacheAnim.scale".

Skal se nærmere på Alex Alvarez-tutorial'en, kanskje skrive en mail til fyren som skrev skriptet BrainBugz, han er visst norsk.


Gå tilbake til «Maya»

Hvem er online

Brukere i dette forumet: Ingen registrerte brukere og 2 gjester

cron