In questo tutorial imposteremo un (relativamente)  semplice e funzionale setup del piede per il nostro personaggio,  comprensivo di un funzionale "Footroll", ossia di controlli che ci  permettano di impostare facilmente l'animazione di una camminata.    

  Non useremo  script o expressions ma solo semplici constraints.

  Per i principianti, consiglio prima di continuare di dare un'occhiata ll'uso dei  constraints  e ai capitoli della guida di XSI riguardanti la creazione di  ossature(useremo semplici 2D chains) e gerarchie. Do infatti per  scontata la conoscenza base di questi due argomenti.

  Detto questo, cominciamo:

  Creiamo in vista front una catena di due ossa per la gamba e una seconda catena di due ossa per il piede.

  Per non confonderci tra root ed effector, assegneremo subito ai 2 root una forma a "box";è sufficiente premere invio a null selezionato per accedere a tutte le forme disponibili, e alla dimensione.

   Assicuriamoci di posizionare il root del piede esattamente sull'effector della gamba usando gli snap (è sufficiente attivare, cliccando col destro qui

  snpp  l'opzione "Centers" e ogni volta che spostiamo un oggetto, tenendo  premuto ctrl possiamo "Snapparlo" perfettamente al centro di un altro  oggetto).

  Imparentiamo il root del piede all'effector della  gamba, per fare in modo che muovendo quest'ultimo il piede rimanga  "attaccato".Verificate muovendo l'effector della gamba.

  step1

  -Creiamo un null e chiamiamolo "Heel"(tallone), diamogli la forma  "Rings" e posizioniamolo in corrispondenza dell'ipotetico tallone del nostro personaggio.

  Creiamo anche un null a forma di piramide,  posizioniamolo sotto al piede (come in figura) e usiamolo come upvector  del primo osso del piede, questo per essere sicuri che la nostra catena  di ossa rimanga "stabile" in animazione.

  step2

  Verificate sempre che sia tutto a posto e allineato nelle altre viste.

  Creiamo un altro null, chiamiamolo SRT(Scale,Rotate,Translate), diamogli la forma "pointed box" e posizioniamolo a livello del suolo.

  Ora imparentiamo tutti gli altri "Componenti" all'SRT che servirà appunto a scalare,ruotare o spostare tutto.

          Importante: selezioniamo ora tutti gli oggetti e  creiamo un nuovo "Model"(edit-->model-->New).Questo per evitare  confusione ed organizzare meglio la scena, oltre ad altri vantaggi che  scoprirete più avanti.Diamogli il nome che vogliamo.    

      Creato il nuovo model, si creerà automaticamente un null (è il null che ci consente di selezionare tutto il "model"), se ci da fastidio lo possiamo spostare attivando il chldcomp ; )

  step3

                

      A questo punto premiamo 9 per aprire la SCHEMATIC VIEW:  se è la prima volta che usate questa vista,soffermatevi sulla  comprensione delle gerarchie create; come potete vedere è un semplice  diagramma con tutti gli oggetti presenti in scena disposto in maniera  gerarchica, in cui gli oggetti "figli" sono disposti sotto agli oggetti  "padre". Possiamo spostare le caselle come più ci è comodo, in  particolare allontaniamo l'oggetto "Heel" su cui lavoreremo adesso.

  step4

  Quello che dobbiamo fare a questo punto è creare 6 NULL, disporli e imparentarli nella schematic come in figura e, importante, assegnare a ciascuno un colore diverso.E' molto facile fare confusione in questo passaggio quindi è meglio stare molto attenti.

  step5

  Io sono solito dare un colore giallo agli oggetti di controllo e rosso ai null che successivamente, a rig finito, nasconderò.

  I Null "TIP", "ROLL_CTRL" e "TIP_ROT" saranno quindi gli oggetti di controllo , quelli che animeremo una volta finito il rig.

  Notiamo che "HEEL" sta in cima, infatti vogliamo che muovendo il tallone si muova tutto il piede, ad esempio per alzare il piede da terra.

  E' anche l'unico controllo che agirà sia in rotazione che in traslazione, mentre "TIP","ROLL_CTRL" e "TIP_ROT" verranno usati solo in rotazione.

  Adesso cominciamo a posizionare i nostri null nelle rispettive posizioni:

  Attiviamo chldcomp  e, usando gli snap, posizioniamo per prima cosa i controlli gialli in questo modo:

  step6

  Proseguiamo con i NULL rossi:

  step7

  Visto che a questo punto, probabilmente, avremo  difficoltà a selezionare facilmente gli oggetti in viewport (null  ovunque! ; ), ci conviene usare la SCHEMATIC per selezionare  comodamente quello che ci serve.

  Ora, disattivate il chldcomp e provate a  ruotare i controlli gialli e a spostare il tallone e l'SRT, per capire  "Visivamente" come sfrutteremo queste gerarchie.

  A parte con l'SRT, usando gli altri controlli le nostre ossa rimangono ancora là.

  Cominciamo quindi ad assegnare i vari constraints:

  Selezioniamo l'effector del piede ("eff1", se non l'avete rinominato), diamogli  constrain position e selezioniamo il NULL3.

  E' importante ora capire questo primo passaggio: abbiamo in sostanza imposto all'effector del piede(eff1) di seguire il NULL3.

  Il NULL3 a sua volta è figlio del controllo TIP_ROT.

  Quindi che succede? Esattamente, ruotando il TIP_ROT,  muoveremo l'effector del piede(non vi preoccupate se ruotando TIP_ROT  avete effetti strani, il setup non è ancora finito e mancano ancora  alcuni passaggi, è tutto ancora molto "instabile").

  Se date un'occhiata alla schematic, vedrete che vicino a eff1 c'è una piccola "C" rossa.Significa che a quell'oggetto è applicato un constrain.

  E selezionandolo, sempre nella schematic, una freccia vi indicherà a cosa è costretto quell'oggetto, in questo caso il NULL3:

  step8

  Continuiamo ora con gli altri constraints.

  Selezioniamo il NULL2,         clicchiamo su transform-->match rotation e selezioniamo il root del piede (ROOT1 ).Allineiamo così la rotazione del null al root del piede.Dopodichè assegnamo un orientation constrain al root1 e selezioniamo il NULL2.    

      Quest'ultimo passaggio servirà a far alzare solo il tallone e non tutto il piede quando ruotiamo il ROLL_CTRL .

  Adesso assegnamo un constrain position al bone3(l'osso della "Punta" del piede) e selezioniamo il BONE2_CNST.

  Provate a ruotare il TIP_ROT:questo  controllo dovrebbe già funzionare, questo perchè il constrain position  fa restare il punto di rotazione dell'osso lì dov'è.

  Prossimo passo: constrain position dell'effector della gamba(eff) al NULL2.  Abbiamo ora vincolato anche la caviglia, rendendo "funzionante" anche il ROLL_CTRL. A dire la verità... ora dovrebbe funzionare tutto! ; )

  La vostra  schematic ora  dovrebbe apparirvi simile a questa:

  step8b

                

      E allora andiamo con un po di "Rifiniture":

  Aggiungiamo un upvector al primo osso della gamba e  nascondiamo root, effector e i null rossi; se volete potete anche  nascondere l'upvector del piede dato che raramente sarà utile  trasformarlo..

  step9

  Io sono solito anche aggiungere due linee in  corrispondenza del punto in cui il piede del nostro personaggio  finisce, e aggiungo anche un null

  alla caviglia.

  Tutti e tre vengono imparentati all'HEEL e resi "Unselectable"; le linee sono utili in animazione per  verificare che il piede non "Compenetri" il suolo, e il null mi serve  come riferimento quando voglio riportare al volo il piede alla  posizione "Originaria" o comunque per valutare a occhio quanto sono  stati ruotati i controlli.

  stepX

  Selezionate il TIP        ,  premete ctrl+k, e su rotation-->order impostate "ZXY".Questo perchè  ho notato che con "XYZ", in animazione, possono sorgere problemi di GIMBAL LOCK in quel punto.    

      IMPORTANTE:Ricordatevi di eseguire sempre le rotazioni in modalità LOCAL.

          Ultimo tocco: selezionate i controlli e dategli  transform-->"Set neutral pose".Così facendo potrete velocemente  azzerare le trasformazioni rimettendo tutto a 0 quando occorre.    

      Abbiamo finito!

  Adesso, diamo velocemente un occhiata a "Quello che abbiamo fatto", insomma alle basi del funzionamento di questo setup:

  
    

  expl1Soffermiamoci sui singoli controlli e muoviamoli uno ad uno per comprenderne il funzionamento, lasciando la schematic aperta.

  -Vedremo che l'HEEL, visto che sta in cima alla gerarchia, muove semplicemente TUTTO il rig del piede.

  -Subito dopo, in scala gerarchica, c'è il TIP: ruotandolo infatti muoviamo tutto tranne l'HEEL.

  -Il TIP ROT, come vediamo nella schematic, muove solo il null3 (che, ricordiamo, è costretto all' effector del piede), quindi ruotando questo controllo otteniamo un movimento del null3 che muoverà a sua volta la punta del piede.

  -Il ROLL_CTRL muove il null2, che controlla la caviglia (l'effector della gamba è costretto al null2 ed è padre del root del piede).Quindi ruotandolo otteniamo l'innalzamento- abbassamento del tallone mantenendo la punta del piede a terra.Un' orientation constrain assicura poi che il root del piede  sia sempre orientato come il null2 (se così non fosse, il piede potrebbe fare movimenti stani con il root che rimarrebbe sempre orientato allo stesso modo).

  -Il BONE2_CNST, che costringe in posizione l'osso della punta del piede, assicura che le rotazioni di TIP_ROT e ROLL_CTRL partano sempre da quel punto preciso.

              

      Che altro dire... è tutto! Spero di essere stato  abbastanza chiaro nonostante l'argomento un pò ostico, specie se si è  agli inizi.

  Mi raccomando se sorgono problemi di qualche genere nell'utilizzare questo setup, segnalatemeli!

  Un ringraziamento particolare a juan francisco correa diaz ("4602" su XSIitalia) che mi ha spiegato il metodo descritto in questo tutorial .

  Un saluto e buono studio ; )

---
Questo articolo è stato importato automaticamente dal forum il 31/lug/2014
Per vedere il post originale e/o i commenti sul forum prima di quella data clicca qui