Trenger hjelp til vektorer

Max scripts

Moderatorer: Super Moderatorer, Admins


Trådstarter
hardrock_ram
Innlegg: 1502
Registrert: ons 07 feb, 2007
Sted: Kristiansand

Trenger hjelp til vektorer

Legg innav hardrock_ram » søn 06 feb, 2011

Jeg lager et automatisk bilriggsystem. I utgangspunktet ganske enkelt, men jeg ønsker å lage det så idiotsikkert som mulig.

Jeg har en hjelper til venstre forhjul og en hjelper til høyre forhjul. Disse plasseres og roteres etter de geometriske hjulenes pivot.

Det jeg trenger er en cylinder som aksling mellom disse hjelperne. Cylinderen skal ha pivot på samme punkt som venstre hjelper, og peke mot høyre hjelper.
Dette er selvsagt ikke noe problem hvis hjulene står rett ovenfor hverandre, og begge er orientert likt som World Coordinates. Da er det bare å lage en cylinder som har samme retning som en av hjelperne.

Det jeg ønsker å ta høyde for er en modell som kanskje er flyttet og rotert rundt på, eller at hjulene er fiklet med (ikke samme orientering i World space) osv.
I det tilfellet har jeg kun posisjonen til venstre hjelper og posisjonen til høyre hjelper som brukbare verdier, mens jeg må se bort fra rotasjonsverdiene.
Hvordan kan jeg lage en vektor fra venstre hjelper (som ikke er i punkt [0,0,0]) som peker mot høyre hjelper, slik at jeg kan hente ut rotasjonverdier jeg senere kan bruke til cylinderen som skal være mellom disse to punktene?

Jeg legger ved et bilde for å vise hva jeg mener :)

Bilde
if your not living on a killing ground, you better make your own

Brukeravatar

havards
Innlegg: 211
Registrert: ons 13 des, 2006

Legg innav havards » søn 06 feb, 2011

cylinder.pos = venstreHjul.pos
cylinder.dir = normalize(høyrehjul.pos - venstreHjul.pos)

Du trenger ikke bruke normalize, det gir bare vektoren en lengde på 1, noe som er irrelevant når magnitude på vektoren ikke spiller inn. Men jeg bruker det uansett :)
02:14 Misfortune • hun skjuler så jævlig mye i smutthølet
http://folk.ntnu.no/havardsc/site/wordpress/


Trådstarter
hardrock_ram
Innlegg: 1502
Registrert: ons 07 feb, 2007
Sted: Kristiansand

Legg innav hardrock_ram » søn 06 feb, 2011

Takk for det! Skal hive vekk maten og prøve med en gang ;)
if your not living on a killing ground, you better make your own


Trådstarter
hardrock_ram
Innlegg: 1502
Registrert: ons 07 feb, 2007
Sted: Kristiansand

Legg innav hardrock_ram » søn 06 feb, 2011

Du er en knupp altså havards! :P
if your not living on a killing ground, you better make your own


Trådstarter
hardrock_ram
Innlegg: 1502
Registrert: ons 07 feb, 2007
Sted: Kristiansand

Legg innav hardrock_ram » fre 11 feb, 2011

1. Jeg ser nå at hvis jeg bruker .dir på et objekt, så er det -Z som peker mot det andre objektet. Hvordan kan jeg få en annen akse til å peke den retningen jeg vil? (slik som "select lookAt axis i lookAt Constraint)

2. Si at jeg setter Z-aksen til å se mot et objekt. Jeg må ha et tredje objekt som fungerer som en slags upnode med axis alignment, slik at hvis jeg roterer dette objektet rundt sin lokale Z-akse, så roterer objektet som "ser" rundt sin egen lokale Z-akse, altså den aksen som ser mot et annet objekt.

Hadde vært greit å slippe å sette opp lookAt-constraint i scriptet ... :roll:
if your not living on a killing ground, you better make your own

Brukeravatar

havards
Innlegg: 211
Registrert: ons 13 des, 2006

Legg innav havards » lør 12 feb, 2011

Jeg er litt usikker på hva du spør etter. Men hvis du vil constraine objekt i f.eks local space så må du wire den via en ExposeTM som gir deg tilgang til alle slags transformasjoner et objekt har, deriblant local rotations. Du har full tilgang til ExposeTM i maxscript om du vil gå den veien.
02:14 Misfortune • hun skjuler så jævlig mye i smutthølet

http://folk.ntnu.no/havardsc/site/wordpress/


Trådstarter
hardrock_ram
Innlegg: 1502
Registrert: ons 07 feb, 2007
Sted: Kristiansand

Legg innav hardrock_ram » lør 12 feb, 2011

box001 skal peke mot box002.

når jeg bruker dir slik du viste meg, så peker box001`s lokale Z-akse mot box002

Er det noen enkel måte å få box001`s lokale X-akse til å å peke mot box002 isteden? :)
if your not living on a killing ground, you better make your own

Brukeravatar

havards
Innlegg: 211
Registrert: ons 13 des, 2006

Legg innav havards » fre 18 feb, 2011

Du roterer :)
Etter å ha satt .dir-propertyen, så er den alignet opp mot z-aksen. Da er det bare å rotere objektet slik at x-aksen blir korrekt.
02:14 Misfortune • hun skjuler så jævlig mye i smutthølet

http://folk.ntnu.no/havardsc/site/wordpress/


Trådstarter
hardrock_ram
Innlegg: 1502
Registrert: ons 07 feb, 2007
Sted: Kristiansand

Legg innav hardrock_ram » lør 19 feb, 2011

Ja, tenkte meg egentlig det ... Det er det rotasjonsgreiene som er hat! Eller mer spesifikt; quaternions \ angleAxis. Matrix3 forstår jeg ihvertfall, men quat er annerledes ... FÅr se om jeg finner noe info rundt det.

Takk for svar :)
if your not living on a killing ground, you better make your own


Gå tilbake til «Max scripts»

Hvem er online

Brukere i dette forumet: Ingen registrerte brukere og 1 gjest

cron