Character Setup   |   Downloads   |   Tutorials   |   Animations   |   Contact
Noder i Maya av Kjetil H Kulander

Angle Between av Kjetil H Kulander

I Maya er det mulig for å finne vinkelen mellom to vectorer. Dette kan gjøres på flere måter. Blant annet med expression, eller ved å å bruke noder.

Vinkelen kan blant annet brukes til å styre BlendShapes når man skal deformere et objekt. På grunn av at en joint (f. eks. en skulder) kan ha samme orientasjon med forskjellige rotasjonsverdier funker det dårlig å bruke rotasjonsverdiene til å styre BlendShapes. Hvis man finner vinkelen mellom to objekter vil ikke denne bli påvirket av rotasjonsverdiene, men jointens orientasjon. Denne tutorialen viser hvordan man kan finne vinkelen med noder.

Start med å lage to jointer som du skal finne vinkelen mellom.

Lag 3 locators. Point Constrain den ene til jointenes "root", og Point Constrain en locator til hver av end jointene. På en av jointene (hvilken som helst) lager du en float-attribute som heter "angle". Denne attributten skal vise vinkelen mellom jointene.

Select de tre locator'ene og Graph > Output Connections i Hypergraph'en. Lag to plusMinusAverage noder.

Til input3D på den ene plusMinusAverage noden kobler du translate fra locator1 og locator2.

Til input3D på den andre plusMinusAverage noden kobler du translate fra locator1 og locator3.

I Attribute EditorplusMinusAverage nodene setter du Operation til Subtract.

Når man subtraherer en vector-posisjon fra en annen vector-posisjon, får man en ny vector som er retningen mellom de to posisjonene.

De to plusMinusAverage nodene inneholder nå hver sin vector som er retningene til de to joint'ene. For å finne vinkelen mellom disse vectorene skal vi bruke en node som heter angleBetween.

AngleBetween er en av nodene man ikke kan lage fra Maya's brukergrensesnitt. Man må kjøre en MEL kommando for å lage den. For å lage noden skriver du "createNode angleBetween" i Command Line eller Script Editor.

Med Connection Editor kobler du Output3D fra den ene plusMinusAverage noden til Vector1, og Output3D fra den andre plusMinusAverage noden til Vector2.

Bruk Connection Editor for å koble Axis Angle > Angle til Angle attributten som du laget på en av jointen.


Copyright 2005 Kjetil H Kulander
www.mrmotion.net