Vai al contenuto
Don Quixote

Problem with Blend Color

Recommended Posts

Hi guys, I'm trying to blend color the right arm of my character BUT I have some trouble.

My left arm work fine, but when I try to do the same to the right, it flip away and I don't know way <ahttp://www.treddi.dev/ipb4/uploads/emoticons/default_sad.png' alt=':('> Can someone tell me what I wrong. ---> here the video https://www.facebook.com/photo.php?v=10202493346324974

Thank you, Marco

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Hi guys, I'm trying to blend color the right arm of my character BUT I have some trouble.

My left arm work fine, but when I try to do the same to the right, it flip away and I don't know way :( Can someone tell me what I wrong. ---> here the video

Thank you, Marco

Dimenticavo che in questo forum posso anche parlare italiano.....

Ciao ragazzi, sto provando ad usare il blend color al braccio destro del mio personaggio MA ho qualche problema.

Il mio braccio sinistro (Creato in precedenza) funziona perfettamente, ma quando provo a ripetere lo stesso procedimento su quello destro, esso viene spostato via e non so perché :( Può qualcuno dirmi cosa sbaglio.

In seguito vi ho allegato un video di quello che faccio. https://www.facebook...202493346324974 Grazie

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Ciao Don Quixote,

ho visto il tuo filmato ed l'intoppo credo sia a livello matematico, ossia sui valori di partenza nelle rotazioni dei joint: potresti provare ad allinearli tutti, uno sopra l'altro per intenderci, è dirci quali sono i valori di rotazioni che ti restituiscono i joints relativi al bicipite? Quindi sia per quello della FK, dell'IK che quello della struttura principale: in linea teorica affinché la struttura dello switch funzioni correttamente, tutti quanti dovrebbero avere lo stesso valore, e tutte e tre dovrebbero assumere o valori positivi o negativi, se ruotati nella stessa direzione.

Osservando il tuo filmato, permettimi di avanzare un suggerimento :) nel connettere il blend color con il joint, puoi tranquillamente connettere l'output del blend color direttamente con il rotate del joint: questa connessione di default relaziona l'outputR con il rotateX, l'outputG con il rotateY, e l'outputZ con il rotateZ ... fermo restando che anche come l'hai applicata tu è corretta: è solo per risparmiare del tempo durante il processo di connessioni :)

Tienici aggiornato ...

Roberto

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

potresti provare ad allinearli tutti, uno sopra l'altro per intenderci, è dirci quali sono i valori di rotazioni che ti restituiscono i joints relativi al bicipite? Quindi sia per quello della FK, dell'IK che quello della struttura principale

Ciao Roberto, grazie del tuo tempo.

Non ho ben capito che parametri volevi vedere, ma forse mi chiedevi questi:

fqxw.jpg

hr5y.jpg

ump3.jpg

falw.jpg

63dx.jpg


Modificato da Michele71

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Ciao Don Quixote,

i parametri da verificare sono a mio avviso delle rotazioni dei joints delle prime tre immagini, perché affinché lo switch funzioni occorre che "dx_spalla_base", "dx_spalla_fk" e "dx_spalla_ik" abbiano lo stesso valore iniziale di rotazione: stando alle immagini invece hanno tre valori differenti, in tutti e tre i casi.

Sostanzialmente in linea teorica se tutti e tre partono con lo stesso valore [0, 0, 0], ruotando l'FK a -45 .. e l'IK a 45 (tramite l'IKHandle) la media matematica corretta che ti tira fuori il blend color è 0, ma ripeto a patto che inizialmente tutti i joint abbiano lo stesso valore di rotazione. Il discorso cambia notevolmente se i joints delle tre catene hanno valori iniziali differenti.

Ora il valore di rotazione di "dx_spalla_base" è corretto, così come anche "dx_spalla_IK" proprio perché essendo controllata dall'IK Handle non riuscirai mai a riportarla a [0,0,0]: ad essere fuori luogo è il valore di "dx_spalla_fk".

Nella prima immagine vedo che hai applicato un'orient constraint, presumo tra "dx_spalla_fk" e "rig_spalla_sx1", e stando ai valori che ti ha restituito presumo che tu abbia abilitato nelle impostazioni del constraint "maintain offset": probabilmente è questo che ti ha sballato i valori di rotazione del joint "dx_spalla_fx". Gioco forza ti ha sballato tutto il sistema creato tramite il blend color.

Per correggerlo procedi in questo modo:

  1. cancella l'orient constraint
  2. apri il connection editor
  3. carica nella colonna dell'output (solitamente a sinistra) il joint "dx_spalla_fx"
  4. carica nella colonna dell'input (solitamente a destra) il controllo implicito che hai creato per gestire l'FK, che nel tuo caso si chiama (se non ho capito male) "rig_spalla_sx1"
  5. instaura una connessione diretta tra il Rotate del primo ed il Rotate del secondo

A questo punto il valore che passa di rotazione è diretto, senza che venga interpolato in nessun modo dal constraint. Tuttavia potrebbe verificarsi un problema, ossia ruoti il controllo in un senso ... ed il joint si muove nel senso opposto. Qualora questo accada, aiutandoti con l'Hypershade, frapponi tra i due un nodo di Reverse, ossia tra il joint "dx_spalla_fk" e "rig_spalla_sx1" ... oppure in sostituzione frapponi un nodo Multiply|Divide, connettendo "dx_spalla_fk" all'Input1 del Multiply|Divide ed impostando nell'Input2 un valore di -1 su tutti e tre i campi: lasciando come operatore Multiply, il risultato finale diverrà negativo.

Spero di essermi spiegato bene :) e speriamo soprattutto che funzioni :) :)

Tienici aggiornati ....

Roberto


Modificato da fahrenheit

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Proprio come avevi previsto, ho avuto una inversione tra joint e rig ma riguarda solo l'omero...(avambraccio e polso lavorano perfettamente su tutti e tre gli assi di rotazione)

1459855_10202534929604530_1929225266_n.jpg

Però non ho ben capito il procedimento che mi hai detto per sistemare questo problema :P

(scusa la lentezza, ma non sto avendo molto tempo da dedicare al mio hobby)


Modificato da Don.Quixote

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Proprio come avevi previsto, ho avuto una inversione tra joint e rig ma riguarda solo l'omero...(avambraccio e polso lavorano perfettamente su tutti e tre gli assi di rotazione)

1459855_10202534929604530_1929225266_n.jpg

Però non ho ben capito il procedimento che mi hai detto per sistemare questo problema :P

(scusa la lentezza, ma non sto avendo molto tempo da dedicare al mio hobby)

Ok mi sono risposto da solo, ma io qui risolvo un problema e me ne si crea un altro ahahah: mi si sono spostati i joint dopo aver usato il reverse;

ecco il video: https://www.facebook.com/photo.php?v=10202536893933637&set=o.504526039613420&type=2&theater

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Ok mi sono risposto da solo, ma io qui risolvo un problema e me ne si crea un altro ahahah: mi si sono spostati i joint dopo aver usato il reverse;

ecco il video: https://www.facebook...&type=2

Scusate i doppi messaggi, ma dopo un po mi scompare il tasto per modificare il precedente.....Comunque: ho risolto il mio problemino del blendcolor ma non capisco perchè una volta utilizzato questo nodo i joint si spostano dalla loro sede originale: 1470179_10202537522229344_571838152_n.jpg

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Ciao Don Quixote,

in sostituzione del Reverse, prova ad impiegare il nodo Multiply|Divide, connettendo i canali interessati nell'Input1, ed impostando l'Input2 con un valore di -1: lascia come operatore Multiply. In questo modo il valore restituito s'inverte di segno, e non dovresti più avere questo problema.

Per quanto riguarda la tua domanda sul procedimento adottato, sostanzialmente è quanto già ti ho scritto qualche post addietro: premesso che il character setup è esclusivamente su base matematica, affinché lo switch tra FK e IK funzioni, occorre che i joint quando sono tutti sovrapposti tra loro, abbiano tutti lo stesso valore nella matrice di rotazione.

L'esempio classico è il seguente: il joint dell'FK ruotato a 45° e quello dell'IK ruotato a 0°. La media matematica che ne scaturisce è 22.5°, ed è il valore che deve arrivare al joint di base ... fermo restando che con lo switch controlli quanto debba essere influenzato dal valore dell'FK o dell'IK.

Nel tuo caso hai impiegato un'orient constraint sul joint dell'FK, il quale ti ha sballato i valori: delle immagini che mi hai postato inizialmente è sufficiente osservare la seconda immagine, in cui la rotazione è con valori di [0, 360, 0]. Questo vuol dire che tu hai un valore iniziale di rotazione che viene da A (joint FK) e vuoi che giunga a C (joint Base), il quale tuttavia passando per B (orient constraint) viene inevitabilmente interpolato nei valori.

Tornando quindi all'esempio classico, il tuo joint dell'FK non partiva più da una posizione di [0, 0,0], ma da [0, 360, 0]: pertanto quando eseguivi le varie connessioni, il valore che Maya leggeva era quest'ultimo, ossia [0, 360, 0]. Ciò accadeva perché i dati passavano attraverso il nodo dell'orient constraint, che li interpolava nei valori.

La correzione che ti ho suggerito tramite il Connection Editor invece permette d'instaurare una connessione molto più "brutale", in cui viene letto il valore dall'attributo A .. e quello stesso valore, senza nessuna interpolazione, giunge a B. L'unico neo di tale approccio riguarda l'orientamento della rotazione, perché la domanda è molto semplice: ruotando il tuo controllo implicito in senso orario (Rig_Spalla_SX1), i suoi valori di rotazione crescono o descrescono? Supponendo che crescano di valore, accade la stessa cosa ruotando nella stessa direzione il joint in questione? Dalla risposta che scaturisce da questa domanda, nasce l'esigenza o meno d'impiegare il nodo Reverse o Multiply|Divide, i quali semplicemente invertono il segno del valore che gli passa attraverso.

Tuttavia la strada che hai intrapreso inizialmente con l'Orient Constraint non è del tutto sbagliata, ma deve essere sviluppata differentemente.

Perdona se mi sono dilungato, ma spero di aver chiarito ogni tuo dubbio :)

Tienici aggiornati ...

Roberto


Modificato da fahrenheit

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Perdona se mi sono dilungato, ma spero di aver chiarito ogni tuo dubbio :)

Melius abundare quam deficere, posso solo ringraziarti per tutto quello che mi hai insegnato, terrò bene a mente questi concetti di matematica, e proverò a seguire il tuo ultimo consiglio per sistemare il problema che ho dei miei joints nella mesh ;)

Quando avrò un po di tempo per me ti potrò rispondere a quest'ultimo quesito.

Grazie ancora

Marco

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora

  • Navigazione recente   0 utenti

    Non ci sono utenti registrati da visualizzare in questa pagina.

×