RIGGING parte 2.
Crea un omino.
Freezzalo.
Per visualizzarlo nella vista semitrasparente occorre accedere alle sue proprietà.
Dato che l'oggetto è freezzato le andremo a prendere dalla Schematic
View.

Clicca
col destro sul nome della mesh e nel pannello che si apre vai su Edit Properties.
A
questo punto attiva la voce See-Trough.
Crea
le ossa per la gamba da qui:

Diamo
un nome alle ossa.
Selezionale
e fai un Mirror.
Rinomina
gli oggetti così:

Seleziona
la struttura della gamba e vai qui:

Applica
un gradiente di colore alle ossa delle gambe.

Aggiungi
dei Fins alle ossa dove necessario in modo da riempire meglio il volume.
Per
la spina dorsale ricorreremo all'utilizzo della SplineIK.
Entra in modalità creazione delle ossa da qui:
Specifica
subito nel menù IKSolver il tipo SplineIK e attiva l'opzione Assign To
Children per fare in modo che il solver venga applicato a ogni nuova Bone creata.
Imposta
subito la dimensione delle ossa da qui:
Crea
le ossa e al termine si aprirà il pannello dello Spline IK Solver. Imposta
il nome (in questo caso Spline_IK_Goal) e questi parametri:
Lungo
la spina dorsale verranno generate delle scatole helpers.
Verrà
creata anche una spline lungo la catena di ossa.
Rinominala
come SplineIKSpline.
Seleziona
le ossa della spina dorsale e rinominale.
Fai
la stessa cosa per le scatole Helper.

Applica
un Gradient di colore e dei Fins alle ossa.
Impostiamo
lo scheletro per le braccia. Crea le ossa impostando i parametri così:

Creiamo
le ossa che permettono di ruotare lungo il suo asse a parte inferiore del braccio.
Crea un piccolo osso e cancella quello di terminazione.
All'inea
l'osso al braccio e crea un altro paio di copie.
Linka
i 3 ossicini all'osso lungo su cui si sovrappongono. Dagli questi nomi:
Crea
le ossa della mano partendo da quella del polso.
Poi
spezza il link fra l'osso della mano e quello del polso.
Rinomina le due ossa così:
Crea
le dita come catene separate e poi linka la root di ognuna alla mano.
Questo
è il nome assegnato a ogni osso del dito:
Procedi
in maniera analoga per le altre dita.
Una
volta completato il braccio fai un Mirror.
Aggiungi
delle ossa per il collo, la testa e il ciuffo posteriore.
Alla
fine ci ritroviamo con lo scheletro del personaggio impostato:

Completiamo il rigging dello scheletro impostando dei vincoli tra i vari componenti.
RIGGING DELLE GAMBE.
Crea
le 3 catene IK per la gamba sinistra.
Sulle ultime due imposta il Parent Space su IK Goal.
In
questo modo un osso della catena ruota in base alla rotazione dell'IK Goal.
In caso contrario la rotazione è legata all'osso precedente (ovvero allo
Swivel del ginocchio).
Alcune ossa potrebbero ruotare intorno al proprio asse cambiando questa impostazione.
In
questo caso regola lo Swivel Angle della IK corrispondente per ripristinare
il corretto orientamento.


Crea
una spline da utilizzare come helper per il piede.
Creiamo
sul piede 3 Helper di tipo Point impostato su Box.
Conviene
creare questi Helpers nella vista Top, in modo che i loro assi locali siano
allineati a quelli del sistema World.
Centrali ognuno su una IK. Poi abbassa quello sulla caviglia allo stesso livello
degli altri.
Crea
una copia scalata di quello presente sulla IKBall.
Diamogli un nome. Quello sul tallone chiamalo HeelRotateLHelp.
Quello piccolo al centro chiamalo heelLiftLHELP.
Quello
grande al centro chiamalo ToeRotateLHelp.
Quello sulla punta chiamalo ToeLiftLHelp.
Linka
la IK sulla punta all'Helper grosso al centro. Adesso se lo ruoti, la punta
segue.
Linka
la IK sul tallone all'Helper piccolo al centro. Se lo ruoti il tallone segue.

Linka
la IK al centro allo stesso Helper. Questo serve a stabilizzare il piede quando
viene sollevato.
Linka
i due helper centrali a quello sulla punta. In questo modo ruotando quest'ultimo
il piede ruota centrato sulla punta.
Linka
l'Helper sulla punta a quello sul tallone. Rutando questo il piede si solleva
sul tallone.
Linka
l'Helper sul tallone alla spline posta sotto il piede. Spostandola si muove
l'intero piede.
Creiamo dei Custom Attributes per la forma helper del piede.
Assegna alla forma questo modificatore:
In
esso verranno inseriti i Custom Attributes.
Poi vai qui:
Nel
pannello che si apre crea un attributo chiamato Roll con questi parametri:
Poi
creane un altro chiamato ToeRotate con gli stessi parametri. I nuovi attributi
appariranno nel modificatore.
Adesso creiamo un wiring tra questi attributi e le tracce di animazione del CTRLFoot. Prima però aumentiamo l'intervallo temporale da -1000 a 1000, altrimenti il wiring avrà effetto solo sull'intervallo corrente.
Seleziona
il CTRLLFoot e questo parametro come primo elemento del Wire.
Collegalo
alla rotazione rispetto a X dell'Helper sul tallone.

A
questo punto modificando il Roll il piede ruota intorno al tallone.
Per evitare che la rotazione avevnga verso il basso, e per limitarla a 60 gradi
piuttosto che a 100, imposta questa espressione:
Crea
un altro Wire tra il Roll del CTRLLFoot e l'asse di rotazione X dell' Helper
centrale piccolo tramite questa espressione:
Creiamo
una limitazione alla rotazione così:
In
questo caso il piede oltre i 50 gradi non ruota.
A
questo punto creiamo un altro wiring tra il CTRLLFoot e l'Helper sulla punta,
sempre sulla rotazione rispetto all'asse X. Stavolta usiamo questa espressione:
In questo modo il piede ruota all'indietro per valori Roll<0, in avanti per Roll fino a 50 e ancorain avanti sulla punta per Roll>50.
Ora
creiamo un Wire tra il parametro ToeRotate del CTRLLFoot e l'asse X di rotazione
dell'Helper sulla punta.

Creiamo adesso un oggetto Helper che utilizzeremo per indicare la direzione
lungo cui il ginocchio deve puntare. Posizionalo all'altezza del ginocchio e
chiamalo CTRLLKnee.

Seleziona
la IK sulla caviglia.
Nel
pannello Motion imposta il rettangolo come target per la IK.
A
questo punto spostando l'Helper del ginocchio, questo tende a rivolgersi verso
di esso. Linka l'Helper del ginocchio al CTRLLFoot, in modo che spostando questo
la distanza reciproca rimanga costante.
Seleztiona
il CTRLFoot e sposta il suo Pivot Point qui:
In questo modo la rotazione del CTRLLFoot avviene attorno alla caviglia.
Aggiungiamo
adesso un altro helper in cima alla gamba. Sarà sempre un Point a forma
di Box. Allineiamolo a questa e poi linkiamo l'osso della coscia all'Helper.
Questo procedimento va ripetuto per la gamba destra.
Creiamo
adesso un paio di Helper utili per il posizionamento dell'intero Character.
Saranno degli NGon.

Linka il CTRLFoot all'Helper interno, e quello interno a quello esterno.
Adesso
che è tutto pronto memorizziamo questa posizione di partenza, per poterla
richiamare in caso di necessità durante l'animazione.
Seleziona tutti gli elementi di controllo.
Vai
qui:
Muovi
gli elementi di controllo come ti pare.....
Per
ripristinare la configurazione di partenza selezionali tutti e poi vai qui:
Ultimo
passo da considerare: i valori di default degli oggetti di controllo. L etrasformazioni
di base applicate agli oggetti sono relative a quelle degli oggetti Parent corrispondenti.
Se si seleziona un oggetto appartenente a una gerarchia, impostando il sistema
Parent i valori numerici delle trasformazioni base sono espressi prendendo come
riferimento il Pivot Point del Parent.
Per azzerare quindi le coordinate di un oggetto basta linkarlo a un oggetto
Helper coincidente con esso e impostare il sistema Parent.
Ad esempio facciamolo per l'helper del piede, il CTRLLFoot.
Creiamo
un punto Point con questa opzione:
Allinealo
al Pivot Point del CTRLLFoot.
Linka
questo helper al quello di controlo dei piedi.
L'Helper Point e la spline blu di controllo del piede nel sistema Parent hanno le stesse coordinate perchè sono linkati allo stesso oggetto. Per azzerare le coordinate dell'Helper del piede impostiamo un link fra questo e l'oggetto Point.
RIGGING DELLA SPINA DORSALE.
Consideriamo
la spina dorsale. Dato che le ossa sono impostate sulla SplineIK esistono degli
helper di controllo che permettono di snodarla quando li spostiamo.
La rotazione però non comporta cambiamenti. Vediamo come controllare la torsione lungo l'asse principale della spina dorsale.
Seleziona
la SplineIK Goal e vai al pannello Motion.
La
torsione può essere applicata con questi parametri:
Crea una splòine a forma di stella e allineala all'helper più
basso della splineIK.
Crea
un NGon concentrico.
Poi
crea una copia e posizionala in cima alla spina, allineata all'ultimo Helper
della SplineIK.
Linka i due NGon alla stella. Poi linka la stella all'Helper Placement che sta in basso (quello grosso).
Con
degli oggetti Point azzera le coordinate di questi nuovi helper creati.
Fai un Set Skin Pose per memorizzare la configurazione degli helpers.
A
questo punto linkiamo gli Helper della splineIK alle spline helper che abbiamo
appena creato. I due più in basso vanno linkati alla spline helper inferiore.
I
due più in alto alla spline helper superiore.
Per
l'Helper centrale della SplineIK occorre inventarsi un metodo per farlo apparire
linkato a entrambe le spline helper superiore e inferiore.
Creiamo 3 oggetti helper così:
Linka l'Helper in alto alla spline di controllo superiore della spina dorsale. L'Helper in basso alla spline di controllo inferiore della spina dorsale.
Seleziona
l'helper centrale e poi applicagli questo Contraint:
Poi
seleziona l'helper superiore. Ripeti il procedimento e seleziona l'helper inferiore.
In questo modo l'helper centrale si troverà sempre fra i due superiore
e inferiore.
Fai la stessa cosa creando stavolta dei Constraint sull'orientamento.
Alla
fine linka l'Helper centrale della spina dorsale a quello centrale esterno.
A
questo punto è possibile piegare la spina dorsale in avanti spostando
e ruotando la spline di controllo superiore.
Regoliamo
la torsione della spina dorsale. Seleziona la spline di controllo inferiore
e poi imposta la rotazione sul sistema Parent.

Controlla che l'asse Z sia quello per la torsione della spine dorsale.
Seleziona
la SplineIKGoal.
Assegna
un controller Float Script a questa traccia:

Si
apre il pannello in cui inserire una espressione.
Crea
una variabile chiamata Bot. Inserisci il nome e clicca su Create.
Clicca
su Assign Track e poi vai qui:
Crea
una nuova variabile Hip e collegala a questa traccia:

Crea
un'altra variabile Root e collegala a questa traccia:
Imposta
questa espressione:

Clicca
su Evaluate e poi chiudi la finestra. A questo punto ruotando una delle 3 splines
helper rispetto all'asse Z l'intera spina dorsale si torce.
Pensiamo
adesso al TwistEndAngle.
Come
prima impostiamo uno controller Script e creiamo queste due variabili:

Poi
imposta questa espressione:
In questo modo ruotando la spline di controllo inferiore, quella superiore resta ferma.
Linkiamo
le gambe alla spine dorsale.
Per farlo colleghiamo l'helper sul principio della gamba con la spline di controllo
alla base della spina dorsale.
Crea
un oggetto helper e fagli un Constraint Position sull'ultimo osso della spina
dorsale. Poi un contraint Orientation sulla spline di controllo superiore della
spina dorsale.
Sarà l'elemento a cui linkeremo la testa e le braccia.
Per
le braccia crea una IK che parte dall'osso della clavicola e arriva all'osso
superiore del braccio.
Chiamala ClavLGoal.
Poi
crea una nuova catena che va dalla parte superiore del braccio fino al suo termine.
Chiamala HandLGoal.
Crea
un oggetto Point e allinealo all'osso della clavicola.
Linka
l'osso della clavicola all'helper.
Per
il controllo della spalla crea un rettangolo e posizionalo sulla IK della spalla.

Crea
un NGon e allinealo alla IK del polso.
Crea
un rettangolo per il controllo del gomito, allinealo al gomito e spostalo indietro.
Ora fai questi link:
-
La IK della spalla linkata al rettangolo di controllo della spalla.
-
Il rettangolo di controllo della spalla e il Point sull'inizio del braccio al
Point sulla cima della spina dorsale.
Seleziona
la IK della mano e nel pannello Motion imposta il target per lo Swivel Angle
sul rettangolo del gomito.

In questo modo il gomito punta sempre verso il rettangolo.
Linka
la IK del polso al controllo del polso.
Linka
il controllo del polso al Point in cima alla spina dorsale.
Azzera
le trasformazioni sulle forme di controllo della spalla e del gomito inserendo
un point coincidente con le forme e intermedio nella catena gerarchica.

Prendi
le forme di controllo e salva la loro configurazione con un Set Skin Pose.
Facciamo
in modo da rendere la mano animabile in un riferimento "Local" e uno
"World", in modo da potere alternare una gestione FK e IK.
Seleziona
il controllo della mano e applica questo modificatore:
Inserisci
questo parametro con variazione da 0 a 100.
Crea 3 oggetti point sulla IK della mano.
Chiamali
LocalHelp, WorldHelp e TweenHelp.
Poi linka il LocalHelp al point in cima alla spina dorsale.

Linka
il WorldHelp al vincolo Placement in basso.
Seleziona
li TweenHelper e applica un Contraint Position sul LocalHelp e sul WorldHelp.
Poi fai la stessa cosa applicando un Contraint Orientation.
Seleziona
la spline di controllo sul polso e poi applica un wire fra il parametro aggiunto
nell'Attribute Holder e il paraemtro Weight 0 della traccia Position del TweenHelp
(il weight 0 corrisponde al primo vincolo selezionato, cioè il LocalHelp).



Azzeriamo
il valore "Local" della posizione del TweenHelp con questa espressione:
Connetti
da qui direttamente anche il Weight1.
Stessa cosa per i pesi dell' Orientation Constraint.
Ruota
il controllo della spalla.
Seleziona
il controllo della mano. Aumentando il parametro LocalWorld il TweenHelp si
muove da un helper all'altro.

Ritorna
alla configurazione di partenza e linka il controllo della mano al TweenHelp.
Poi azzera le trasformazioni di base del controllo inserendo un Point coincidente
nella gerarchia.

A
questo punto si muove l'intero braccio quando ruotiamo l'helper superiore della
spina dorsale.
Occupiamoci
adesso delle ossa per la torsione del polso.
Aggiungiamo
un parametro al controllo della mano, facendolo variabile nel range [-360...+360].
Fai un Wire tra questo attributo e la rotazione rispetto l'asse X del primo
osso del polso. Imposta l'espressione così:
Ripeti
il procedimento per le altre ossa moltiplicando la rotazioe per 0.5 e 0.75.
Alla fine aumentando il WristTwist le ossa ruotano gradualmente lungo l'asse
del braccio.

Seleziona
l'osso della mano.
Crea
un Position Contraint con l'ultimo osso del braccio. Abilita la caselletta "Keep
Initial Offset" per mantenere la distanza iniziale fra mano e braccio.
Crea
un Orientation Constraint con la spline di controllo della mano. Anche qui attiva
la casella Keep Initial Offset.
In questo modo spostando il controllo della mano, le ossa della mano seguono
e ruotano.
Pensiamo al collo e alla testa.
Crea
un NGon per ogni osso della zona e allinealo.
Linka
l'esagono di base al Point in cima alla spina dorsale.
Linka
il primo osso al primo NGon.
Linka
il secondo NGon al primo.
Linka
il secondo osso al secondo NGon.
....e
così via.....
A questo punto ruotando un NGon l'intera struttura succesiva nella catena gerarchica
segue.

Per
rendere indipendenti le rotazione del collo e della testa da quelle della spina
dorsale disabilitiamo le rotazioni dal link.
Seleziona l'NGon in basso.
Poi
disabilita da qui le rotazioni ereditate:
In
questo modo è possibile torcere la spina dorsale mantenendo il collo
inalterato.
Impostiamo il controllo degli occhi.
Creiamo
un sistema Look-At.
Partiamo da una spline con questa forma:
Linkala
al Placement helper e piazzala di fronte alla testa.
Crea
due lettere L e R e allineale agli occhi. Poi allontanale e rendile coplanari
con l'icona dell'occhio. Linkale a questa.
Azzera
le trasformazioni col solito metodo.
Poi
applica uno Skin Pose su queste spline di controllo.
Crea 2 helpers e centrali sugli occhi.
Applica
dei Constraint di tipo Look At su i due helper in modo che guardino alle rispettive
lettere R e L.

Alla
fine linka gli occhi agli helper piazzati all'interno.
Creiamo
adesso dei Custom Attributes per controllare la rotazione delle palpebre (per
semplicità sono state cancellate quelle inferiori).
Seleziona l'icona dell'occhio e aggiungi questi parametri (variazione da -360
a +360):

Fai
un Wire tra questi parametri e la rotazione rispetto all'asse X delle rispettive
palpebre.
Regoliamo la forma degli occhi.
Crea
uno space warp FFD per ogni occhio e allineali a questi.

Seleziona l'occhio destro e la palpebra e linkali allo space warp FFD (con il comando Bind to Space Warp, ovviamente).
Crea
un oggetto Point e mettilo dentro l'occhio.
Poi
a questo linka l'FFD, l'helper del'occhio e la palpebra.
Alla
fine linka i due Point interni all'Helper della testa.
A
questo punto sposta i punti di controllo degli FFD per deformare gli occhi.
Grazie
a questi space warps è possibile ruotare le palpebre deformandole lungo
gli occhi allungati, oppure ruotare gli occhi. La superficie si adatterà
in base alla conformazione degli space warps e la forma generale dell'occhio
resterà quella definita tramite l'FFD.
Esempiop: rotazione dell'occhio verso il basso.


.....e
abbassamento della palpebra.....