PDA

Visualizza Versione Completa : Animazione e dintorni



loriswave
30-07-07, 12:39
Molti, me compreso, si lamentano delle possibilità di animazione in LW. Questo documento nasce dall'esigenza di fare un pò di chiarezza in questo settore del software per porre le basi di "eventuali" richieste di miglioramento. Ho buttato giù molto velocemente una serie di cose che vorrei col tempo implementare e andare ad analizzare anche altre parti ancora non discusse, spero nella vostra partecipazione per far crescere questa risorsa. Spero nel vostro aiuto per correggere errori o eventuali mancanze. Sicuramente bisognerà aggiungere una sezione dedicata al graphic editor e lo spread sheet, inoltre una panoramica su i modificatori più usati.

Movimento e deformazioni
Un buon Rig ha 2 scopi principali, muovere una serie di ossa in maniera coerente rispetto alla volontà dell'animatore e deformare la geometria in maniera adeguata rispetto alla posizione del personaggio.
Senza un buon movimento non si possono ottenere buone deformazioni, ma non è detto che un buon movimento corrisponda a buone deformazioni.
Per essere utilizzato produtivamente un buon Rig deve inoltre essere semplice, intuitivo o almeno comprensibile e divertente.

Tool
IK nativa di LW
Il sistema nativo di IK di Lw ha un po di magagne: jittering e gimbal lock i più evidenti, difficoltà di realizzare un sistema efficace per la direzione del ginocchio e un sistema ibrido IK-FK in secondo luogo.

PLG IK
I plug in PLG ik risolve egreggiamente i problemi legati al IK di LW introducendo anche una serie di feature secondarie molto comode: Blend IK-FK, blend per direzione del ginocchio/gomito, mix con FK. Introduce un piccolo inconveniente: Gli angoli del padre della catena IK sono sballati, non corrispondono agli angoli del mondo LW. Questo significa che se si imparenta qualcosa a questo osso avremo dei movimenti coerenti, se si tenta invece di lavorare con espressioni e modificatori che vanno a leggere l'angolo faremo un buco nell'acqua. PLG Ik lavora solo con le ossa, ma questa è da considerarsi più una caratteristica che un pregio/difetto.

IK BOOST
Abbiamo poi L'IK boost, questo tool ha aperto vivaci discussioni nei forum dedicati a LW vuoi per la scarsa documentazione che ha accompagnato la sua apparizione ( e ancora adesso è veramente inutile), vuoi i differenti scenari che si aprono rispetto al suo utilizzo. L'IK boost prima di tutto non è un sistema Full IK, ha un comportamento IK-FK in fase di posing ( nella fase in qui su un singolo fotogramma mettiamo in posizione il nostro personaggio ), esegue un interpolazione FK basata sulle rotazioni dei componenti la gerarchia tra i frame.
Un primo fronte di discussione sull'IK boost si è aperto in considerazione hai movimenti. Essendo un sistema misto IK-FK nella fase di posing da la possibilità di essere molto veloci, tra un kf e l'altro però è un sistema FK, si muove secondo le rotazioni delle ossa e non secondo coordinate fisse perdendo i punti fissi assegnati. Per ovviare a questo esiste il comando " bind motion, selezionato il punto che si vuole mantenere fisso (FIX), selezionati i frame durante i quali deve rimanere fermo, si lancia il comando; questo va a spostare ad ogni frame il padre della catena in modo che rispettando le trasformazioni di rotazione nel periodo assegnato il punto FIX rimanga in posizione. Esiste poi il comando "bake motion" che permette di mantenere fermo più punti di una catena rispettando le varie posizioni e cambiando perciò le rotazioni. ( molto simile alla IK ma con un KF ogni frame per la catena interessata )
IK Boost produce molti KF con i quali imparare a convivere e rendendo quasi impossibile il lavoro nel graphic editor. Questo secondo molti è il suo grande difetto, secondo alcuni animatori tradizionali ( abituati a disegnare o mettere in posa ad ogni frame ) solo una sua caratteristica.
Lavorando solo con IK boost porta ad avere un sistema di lavorazione completamente diverso rispetto all'IK tradizionale, basato principalmente su pose ( senza grosse preoccupazioni di posizione del personaggio tra l'altro visto che questa viene aggiustata in fase di "bind motion")
La cosa che più influenza l'uso dell'IK boost sono i comandi "Bind Motion" e "Bake motion" che vanno a creare, sul parent nel primo caso e sulla catena nel secondo caso, un KF a frame. Ogni KF serve a mantenere in posizione i punti settati come FIX, il che significa che non si può prendere il Parent ( per esempio in una catena di un bipede l'osso tra schiena e bacino) della gerarchia e spostarlo senza perdere la posizione dei piedi. Questo secondo molti limita la possibilità di fare modifiche ad una animazione creata in Full IK Boost. Per fare un esempio pratico pensate di voler abbassare di più il bacino in una camminata, con IK boost devo fare più lavoro rispetto all'IK tradizionale, su ogni posa devo modificare la posizione del bacino e rifare il "bind" e dove serve il "bake" dell'animazione. In un IK classica vado sul punto dove voglio abbassare e abbasso, le gambe in IK si piegheranno di più in automatico rimanendo dove erano posizionati i Gol.
In fase di posing l'IK boost da maggior controllo avendo a disposizione IK, FK, handler per l'IK boost e handler normali, proporzional rotate. Si pensi per esempio alla parte superiore del corpo, con i fix su i polsi, se ruoto la schiena con ik booster i polsi rimangono in posizione, se ruoto con gli handler FK normali si spostano anche i polsi, questo semplicemente passando da ctrl-b (short cut per IK boost) a y (short cut per il rotate).
In un rig tradizionale dobbiamo progettare a monte il Rig in base ai movimenti che il personaggio dovrà eseguire. Per una camminata i classici controlli sul piede tallone, punta, ball, il controllo di direzione del ginocchio e la posizione del bacino con annesse rotazioni. Se però il personaggio deve ad un tratto mettersi a gattonare il Rig usato in precedenza non va tanto bene ( io direi per niente). Con IK boost possiamo modificare al volo punti di "FIX" e di "IKstop" così da riadattare al volo il Rig alle necessità. Lo svantaggio dell'Ik boost sta anche in questa flessibilità, infatti ci troveremo spesso a modificare FIX eIK stop con conseguente perdita di tempo.

Priorità di calcolo
La FK e le impostazioni di rotazione e posizione sono lette per prime e passate a i vari modificatori, IK compresa che generalmente viene applicata prima di tutto. Alcuni modificatori ( vedi follower ed espression) possono lavorare sia prima che dopo l'IK, alcuni solo dopo e credo che alcuni lavorino solo prima dell'IK.
I PLG IK vengono calcolati dopo la Ik nativa di LW, questo significa che se a una catena IK imparentiamo un null che funge da target per una catena PLG IK ( non ho idea per quale assurda ragione si dovrebbe fare una cosa del genere) questo funziona, il contrario invece non funziona.
L'IK boost viene calcolato prima di tutti i modificatori ( è pur sempre un sistema FK ) ed ha effetto dove non sono presenti altri tool. In presenza di IK o plug in applicati al item o al singolo canale lui non agisce, rimanendo attivo su tutti i posti liberi. questo permette una buona flessibilità se si vogliono mixare differenti tipologie di animazione ( IK boost, IK, PLG IK, e plug in vari)

Mix IK, IK boost
Sono stati suggeriti anche sistemi misti IK - IK boster, nel tentativo di sfruttare e mixare i pregi dei due sistemi. Si possono realizzare per esempio catene IK pe le gambe ma con direzione del ginocchio tramite IK Boost, si può applicare L'IK boost alla catena di gol della gamba ( heel, ball, toe e LegGol) semplificando il rapporto tacco punta e la gestione della punta del piede senza complicare le gerarchie. Si può usare una gerarchia IK boost come gol per una gerarchia IK, in questo modo si può modificare in un secondo tempo la gerarchia IK senza dover modificare anche l'IK boost. Si potrebbe pensare di realizzare due gerarchie separate, una in IK e l'altra in IKboost e tentare di farle lavorare insieme. tenterò di presentare diversi tipi di mixing se la cosa interessa.

Esempio di Mix IK - IK booster 1
Prendiamo una gamba con il classico schema Hip,UpperLeg,LowerLeg,Foot e Toe.
UpperLeg si imposta con IK su P e su H, LowerLeg con IK su P e Foot con gol su un nul che per l'occasione definiamo LegGol. Applichiamo L'IK boost, blocchiamo le rotazioni di Hip, e impostiamo Hip anche come IKstop. Selezioniamo Foot e settiamo Fix in modo da bloccare la rotazione in quel punto. Se tentiamo di trascinare il ginocchio (LowerLeg ) non succede nulla, questo perché la catena IK non da libertà di azione all'IK boost. Se tra Hip e UpperLeg aggiungiamo un osso che non rientra nella catena IK ma da libertà di lavorare all'IK boost potremo settare la direzione del ginocchio manualmente senza dover ricorrere a catene di IK con più gol. ( Questo è solo un esempio che si risolve egreggiamente anche con l'utilizzo di PLG IK)

Automazioni in un rig
Alcune discussioni sul rig sono basate su l'automazione, alcuni animatori ne fanno largo uso, altri preferiscono avere un controllo più diretto. Certamente alcuni tipi di automazione oltre ad alleggerire tolgono proprio il controllo producendo più problemi che vantaggi. Prendiamo per esempio il controllo su una mano, avere uno slider per ogni dito senza dover controllare le singole falangi è comodo e va bene per il 90% dei casi, ma per quel 10% che voglio avere un controllo più preciso? non sempre è possibile integrare in un singolo Rig il 100% dei movimenti che devo fare eseguire al mio personaggio, sarebbe in ogni caso comodo, tornando al caso della mano che lo slider agisca in maniera additiva rispetto alle falangi, in modo da poter refinire la posa a quel livello senza dover disabilitare del tutto l'automatismo.

Sistema a nodi
Un sistema a nodi sia per i modificatori di movimento , Ik compresa naturalmente, che per i deformatori sarebbe veramente bello, ma in quanti siamo pronti ad usarlo? ( vedi nodi per le superfici) basti pensare ai sistemi di compositing dove, specialmente in situazioni di fascia medio bassa, si preferisce un approcio a layers ( vedi after effect ) piuttosto che sistemi a nodi.

Nemoid
31-07-07, 10:29
ottima disamina dei vari problemi legati all'animazione in Lw, Loris ! :g1:in effetti devo dire che, secondo me la prima cosa che andrebbe migliorata in Lw è proprio l'IK solving, nel senso : problemi come jittering e gimbal lock non ci dovrebbero essere o accadere solo in casi veramente estremi.

se dovessi fare una richiesta sull'animazione partirei da questa perchè è la base di tutta l'animazione all'interno del pacchetto, specialmente per personaggi.

anche perchè, in altri pacchetti, basati più sulla animazione e character animation questi problemi non ci sono o sono più facilmente risolvibili.

IK booster pur non essendo un sistema standard ha alla base delle ottime idee, e avrebbe anche un futuro se fosse più documentato ed efficiente : diciamo che un ottimo mix col sistema di IK tradizionale(dovutamente migliorato) per poterne usare comodamente i vantaggi sarebbe il massimo.
attualmente lo vedo come una bella idea implementata solo parzialmente, mentre non si è toccato il cuore del problema.

il fatto che delle plugin come i plg risolvano molti problemi dell'IK di Lw, la dice lunga e meno male che ci sono :)