Blender Italia forums Supporto Utenti Supporto Animazione e rigging combinare azioni/animazioni in sequenza

Status della richiesta: Non è una richiesta di supporto

Taggato: , ,

Stai visualizzando 8 post - dal 1 a 8 (di 8 totali)
  • Autore
    Post
  • joaulo
    Partecipante
    • Blenderista
    • Post sul Forum 159
    #779405

    Ciao a tutti, ho iniziato (da ieri) a studiare un po’ come funzionano le animazioni in Blender.

    In particolare voglio imparare a padroneggiare stumenti che non ho mai utilizzato prima e che non conosco, come l’action editor e il NLA editor.

    Ho già un minimo di basi e ho già fatto esperimenti in passato e mi è chiaro il funzionamento del sistema di armature e bones, così come la cinematica diretta e inversa, i keyframes ecc.ecc. Ho già a vuto modo di fare piccoli esperimenti di semplici animazioni come idle, walk cycle, run ecc.ecc. ma non ho mai provato a combinare tutto in una sequenza, ed è proprio da qui che voglio impostare il percorso di apprendimento.

    Per fare delle prove veloci senza perdere tempo ad impostare le animazioni da combinare, ho scaricato delle animazioni da Mixamo e le ho importate in Blender.

    Ho faticato parecchio per riuscire a trovare le impostazioni “corrette” per importare una armatura decente ma in qualche modo ce l’ho fatta.

    Ora (scusate la lunga premessa):

    1. ho alcune armature in Blender, ognuna è animata correttamente e fa esattamente quello che ci si aspetta.
    2. Voglio combinare mettendo in sequenza le animazioni per avere una unica armatura animata.
    3. Ho guardato una decina di tutorial online e ho individuato 2 metodi che vanno per la maggiore:
      1. copia&incolla dei keyframes da una armatura ad un’altra
      2. creare delle actions e utilizzare l’editor NLA per combinarle

    Il metodo copia e incolla non mi fa impazzire e comunque non sono riuscito ad utilizzarlo in modo efficace (per ora)

    Il metodo NLA invece mi attira molto e vorrei riuscire a seguire questo approccio. Quindi, ho creato diverse strip in cui ho collocato le diverse actions, le ho messe in sequenza e… succede un disastro. In pratica nonostante ogni singola action visualizzata indipendentemente risulta corretta, quando le unisco in una sequenza solo la prima risulta corretta mentre in tutte le successive i bones si torcono in modo innaturale (che angoscia!).

    Non capisco se il problema è le metto in sequenza, oppure se è un problema di compatibilità di passaggio tra le actions, oppure è sbagliato il modo in cui le esporto da mixamo e le importo in Blender?

    Eppure in tutti i video che ho visto e seguito questo approccio è piuttosto semplice e mi sembra di averlo seguito piuttosto alla lettera…

    Grazie in anticipo a tutti per il supporto!

    ^erik^
    Partecipante
    #779415

    Ciao, Interessante Seguo . puoi inserire degli esempi ? non è che dipenda da come sono posizionati gli assi dei vari  bone?


    joaulo
    Partecipante
    • Blenderista
    • Post sul Forum 159
    #779457

    Cerco di spiegare meglio la problematica, dividendola in 2 punti salienti:

    1. Primo problema: allineare le animazioni

    • Ho esportato da mixamo 2 animazioni: walk e jump.
    • Le ho importate in Blender ed entrambe funzionano correttamente, ognuna sulla propria armatura.
    • Ho nascosto la prima armatura (jump) ed ho aggiunto la action jump alla seconda armatura (walk) in successione nel NLA

    il risultato è visibile in questo screenshot:

    Sia la animazione di walk che quella di jump non avvengono sul posto, alle coordinate 0,0,0 del sistema, il soggetto si sposta in avanti nel corso della animazione, quindi al frame 1 ho questa situazione:

    All’ultimo frame della animazione walk l’armatura è in questa posizione:

    Mentre al frame immediatamente successivo, ossia quello di inizio della action jump, l’armatura si è teletrasportata all’origine del sistema, come si vede in questa immagine:

    quindi il primo problema è: come faccio ad applicare la seconda animazione in continuità con la prima?

     

    2. Secondo problema: a volte le animazioni “impazziscono”

    In alcuni casi a complicare ulteriormente la situazione ho uno strano fenomeno che non capisco da cosa dipende e non ho idea di come affrontare.

    Come già detto nel post di apertura, sto sperimentando utilizzando delle animazioni scaricate da Mixamo ed importate in Blender.

    A volte succede questo:

    • esporto da Mixamo e importo in Blender 2 animazioni esattamente come nel precedente esempio (stessi identici passaggi, ripetuti per scrupolo più volte)
    • entrambe le animazioni hanno origine in 0,0,0:

    • la prima animazione al termine porta il soggetto in avanti sull’asse y:

    • per provare ad ovviare al primo problema sopra esposto:
      • ho provato a spostare la seconda armatura nella posizione esatta della prima armatura a fine animazione
      • ho spostato i keyframes della seconda animazione per farla cominciare nel frame successivo all’ultimo keyframe della prima animazione
    • in questo modo a cavallo delle due animazioni le due armature sono sovrapposte e le animazioni sono una di seguito all’altra:

    • come nel caso precedente le due animazioni indipendenti una dall’altra funzionano correttamente
    • ho aggiunto la action della seconda armatura nella prima armatura, sempre tramite NLA mettendole in sequenza
    • nell’ultimo frame della prima action, la armatura con la sequenza di action 1&2 e la armatura con solo la action 2 sono perfettamente sovrapposte:

    • nel frame successivo, come nell’esempio precedente, l’armatura con la sola action 2 è nella posizione corretta (traslata dove l’ho messa io) mentre l’armatura con la sequenza di actions (quella evidenziata in arancione nello screenshot) è finita ancora nella origine degli assi:

    • quindi apparentemente non è cambiato nulla rispetto all’esempio precedente, e la traslazione della armatura non ha sortito effeti sulla action che continua a riportare nella origine il soggetto
    • in compenso ci sono altri problemi… se avanzo nei frame successivi, la action 2 “concatenata” (evidenziata in arancione) impazzisce e i bones non seguono più la action 2 originale:

    quindi il secondo problema è : perchè impazziscono alcune animazioni e come sistemarle?

    WildArtWorks
    Partecipante
    #779491

    Buongiorno Joaulo.

    Allora come già ti sarai reso conto da solo, questo argomento è abbastanza avanzato e complesso. Penso possa darti una mano qualcuno di più esperto di me e che utilizza spesso il mix fra animazioni prese da MIXAMO con RIG di Blender. Anche io ho tentato di utilizzare qualche animazione di mixamo per esercitazioni ed ho avuto quasi gli stessi problemi.

    In generale l’NLA EDITOR, è uno strumento di composizione di azioni, che può essere utilizzato per far ripetere la stessa azione più volte. Ma prima c’è da esaminare bene come è stata creata l’animazione.

    A prima lettura, io penso che le problematiche principali siano proprio le impostazioni iniziali delle animazioni che fornisce mixamo. Cioè il MALEDETTO CONCETTO DELLO SPOSTAMENTO IN AVANTI di un personaggio. Cioè la famosa PROGRESSIONE.

    Questo è un punto dolente per molti animatori che ognuno affronta in modo differente, sia in base alla propria scuola di pensiero e sia in base ai corsi che ha seguito (professionali o tutorial).

    Prima di vedere NLA editor, c’è da capire come il tuo personaggio si deve spostare in avanti. Cioè qual è il CONTROLLO del RIG del personaggio che fa lo SPOSTAMENTO in avanti. Da quello che vedo dalle immagini, le 2 OSSATURE, si muovono in avanti sull’ASSE Y verde.

    Allora c’è chi imposta lo spostamento in avanti ANIMANDO solo il bone ROOT in modo separato dal resto dell’animazione. Quindi in realtà tu avrai 2 ACTIONS:

    1 – Il WALK sul posto;

    2 – Lo SPOSTAMENTO in avanti sull’ASSE Y dal punto A al punto B;

    Se metti sull’NLA queste 2 actions, avrai che il personaggio si sposta in avanti muovendo le gambe.

    Al contrario, c’è chi imposta lo spostamento in avanti ANIMANDO TUTTI i controlli che nella realtà dovrebbero spostarsi in avanti sull’asse Y:

    IL BACINO, I PIEDI, LE MANI.

    In questo caso avrai 1 sola ACTION in cui il personaggio si sposta in avanti per tot frame, ma il ROOT rimane fermo nella posizione 0.

    Da qui sorge la mia PRIMA DOMANDA: Come è impostata l’animazione che hai scaricato da Mixamo? Fa parte del PRIMO caso o del SECONDO?

    Perché se l’ACTION1 WALK ha la partenza del ROOT o del BACINO nelle coordinate ZERO e l’ACTION JUMP ha le coordinate del root o del bacino sempre a ZERO, l’NLA editor replicherà le 2 actions partendo sempre da zero. Quindi appena finisce 1, la seconda riparte dal punto di partenza di come è stata IMPOSTATA inizialmente l’animazione.

    Penso si debba inizialmente analizzare sulla TIMELINE su quali FRAME il ROOT/BACINO parte/si ferma per la prima e la seconda animazione.

    Poi… Leggendo il tuo post: Hai importato le animazioni MIXAMO in BLENDER. Come? Cioè stai lavorando sul RIG di MIZAMO? O hai fatto la “TRASLAZIONE” dei bone mixamo su un nuovo RIG di blender?

    Per il SECONDO PROBLEMA relativo all’impazzire delle animazioni, non posso darti una mia opinione, mi dispiace. Spero qualcuno possa intervenire :-)


    3D Volenteroso
    joaulo
    Partecipante
    • Blenderista
    • Post sul Forum 159
    #779496

    Grazie @WildArtWorks sei stato chiarissimo e soprattutto mi hai già dato informazioni importanti, mi stavo giusto rendendo conto di queste due “vie” per impostare le animazioni, io finora ho sempre seguito la prima strada, ossia ho sempre animato lo scheletro sul posto spostando poi l’osso radice. A quanto pare invece l’animazione esportata da mixamo sembra aver congelato la posizione della armatura in 0,0,0 mentre il root bone si sposta in ogni keyframe della sequenza :-( ma non so se si può traslare il root bone di una quantità fissa su tutti i keyframe in un colpo solo… ?

    Per quanto riguarda l’esportazione da Mixamo e importazione in Blender, ho visto che bene o male funziona un po’ in tutti i modi ma la disposizione dei bone è terribile. La forma migliore che sono riuscito a trovare è quella di utilizzare il formato Collada e attivare nelle impostazioni dell’importer le seguenti opzioni:

    L’ossatura è quindi quella di Mixamo:

    Per fare un po’ di chiarezza sul dubbio se le animazioni di Mixamo seguano l’approccio 1 o l’approccio 2, prendo il ciclo di walk:

    qui siamo al frame 62 della animazione e come si può vedere:

    • l’origina della armatura (come oggetto) è rimasta in 0,0,0
    • la radice della ossatura è quello evidenziato sia nella 3d view che nell’outliner
    • e la posa salvata nei keyframe è spostata da 0,0,0

    a giudicare dai keyframe, direi che queste animazioni hanno la “Location” di ogni singolo nodo salvata in ogni keyframe:

    Infatti ho provato a selezionare il primo keyframe della animazione, selezionare il root bone e spostarlo, sovrascrivere il keyframe, ma non appena l’animazione passa al frame successivo tutta l’armatura viene riportata nella posizione prevista dal keyframe successivo.

    joaulo
    Partecipante
    • Blenderista
    • Post sul Forum 159
    #779507

    Ce l’ho fatta!!!

    Ci sono ancora diverse cose che non capisco, ma questa è la soluzione al problema 1: unire 2 animazioni/actions quando non sono realizzate “sul posto”.

    Per farlo servono: 3DView, NLA e Graph Editor.

    Quindi:

    • verifico la posizione dell’osso radice al termine della prima animazione (nei miei esempi precedenti, utilizzando l’armatura esportata da Mixamo, il root bone si chiama mixamorig_Hips)
    • seleziono nel NLA la seconda action e con il tasto TAB passo in Edit Mode per quella action
    • nella 3D View passo in Pose Mode e seleziono il root bone
    • Nel Graph Editor, utilizzo il filtro per visualizzare solo i Keyframe della Z Location
    • Nel mio caso la seconda animazione deve cominciare a 172 unità lungo la Y, quindi seleziono tutti i Keyframe nel Graph Editor relativi solo a Z Location e li traslo in Y della quantità desiderata (G + Y + 172)
    • Esco dall’edit mode della action ed è fatta!!!

    Nel video la transizione è improvvisa ma non ho fatto nulla per sistemarla, l’importante è che la seconda animazione, quella del salto, inizia da dove finisce la precedente!

    Ora mi rimane il secondo problema da affrontare e alcune incognite da chiarire… ad esempio vorrei capire perchè per muovere l’armatura in Y devo agire su Z Location. A quanto pare c’è qualcosa di strano nella direzione degli assi delle ossa o della armatura…

     

    ^erik^
    Partecipante
    #779511

    il fatto che per muovere  la z al posto della y è dovuto a come gli assi dei singoli bone sono direzionati  purtroppo quando si iniziò a usare la CGI no fu mai stabilito una unica regola per le coordinate dei singoli elementi  ogni programma ha il suo metodo e blender li ha presi in considerazione tutti,  dovrai  adattarti ogni volta ad ogni singola situazione, per addolcire la transizione dovrai lavorare  sulle curve  del graphe editor


    WildArtWorks
    Partecipante
    #779677

    Ok. Sembra che tu abbia risolto.


    3D Volenteroso
Stai visualizzando 8 post - dal 1 a 8 (di 8 totali)
  • Devi essere connesso per rispondere a questo topic.