Character Setup   |   Downloads   |   Tutorials   |   Animations   |   Contact
Point On Surface by Kjetil H Kulander

Point On Surface tutorial av Kjetil H Kulander

Veldig ofte vil man plassere ting på overflaten til en objekt som deformeres. Får å gjøre dette har Maya en node som heter pointOnSurfaceInfo. Man kobler en NURBS-shape til denne noden, og noden returnerer informasjon om et punkt på overflaten. Punktet defineres med U og V koordinatene til objektet. Hvis man vil finne et punkt på overflaten til et polygon objekt kan man lage en NURBS flate mellom to edge'er.

  1. Lag et NURBS-plane med width på 10 og patches U og V på 5.

    Deformer NURBS flaten ved å flytte på cv'ene. Om man flytter cv'ene direkte, skin'er til jointer, legger på en lattice eller annen deformer spiller ingen rolle. PointOnSurfaceInfo fungerer uansett.

    Lag en locator og plasser like over NURBS flaten. Denne locatoren skal festes til NURBS flaten ved å bruke pointOnSurfaceInfo.

  2. Velg en Layout der du kan se Persp og Hypergraph. Gjerne også outlineren, så du hele tiden har tilgjenglig liste over alle objektene i scenen. Jeg foretrekker "Three Panes Split Top" med en liten outliner øverst til venstre, persp øverst til høyre og Hypergraph nederst.

    Velg NURBS flaten og locatoren, og Graph > Output Connections i Hypergraph'en. NURBS objekter og locators har en transform node og en shape node. Disse nodene får du nå opp i Hypergraph'en.

    Lag nå pointOnSurfaceInfo noden ved å skrive "createNode pointOnSurfaceInfo" i Command Line. Det skal da dukke opp en node som heter "pointOnSurfaceInfo1" i Hypergraph'en.

    For å få locator'ens rotasjon til å følge overflaten kan man bruke en aimConstraint som aim'er på overflatens normal. Lag denne aimConstraint noden med å skrive "createNode aimConstraint". Man kan ikke merke target og objektet som vanlig; her må man lage noden og koblingene manuelt.

  3. Shift/MMB-drag nurbsPlaneShaoe1 over til pointOnSurfaceInfo1. Connection Editor åpnes: Lag en kobling fra "World Space" til "Input Surface".

    Shift/MMB-drag pointOnSurfaceInfo1 over til locator1. Lag en kobling fra "Result.Position" til "Translate".

    I Hypergraph'en velger du Graph > Rebuild.

    Locator'en er nå plassert nederst i den ene hjørnet på NURBS flaten. I Attribute Editor på pointOnSurfaceInfo1 finner du attributtene Parameter U og Parameter V. Ved å forandre på disse verdiene kan du flytte locator'en rundt på NURBS flaten.

  4. Før vi kan koble aimConstraint noden må vi forandre en attributt. Dette gjøres ved å bruke setAttr kommandoen. Merk aimConstraint noden og kjør følgende linje fra Command Line:
    setAttr ".tg[0].tw" 1;

    Shift/MMB-drag pointOnSurfaceInfo1 over til aimConstraint. Lag følgende connections:
    Result.TangentV > worldUpVector
    Result.Normal > Target[0].Target[0].targetTranslate

    Tilslutt kobler du aimConstraint.constraintRotate til locator1.rotate.

    Locator'ens rotasjon følger nå overflaten til NURBS flaten når du forandrer på Parameter U og V i pointOnSurfaceInfo noden.


Copyright 2005 Kjetil H Kulander
www.mrmotion.net