Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Robot21

Blend Shape Control

Recommended Posts

Salve a tutti, è da tanto che non mi faccio vedere sul forum (a causa degli studi, delle vacanze, ecc..).

Comunque, in questo periodo sto approfondendo il blend shape, ed il particolare la possibilità di connettere una curva nurbs (ma volendo qualsiasi altro oggetto-maniglia) ad il valore da 0 a 1 di uno dei parametri impostati nel blend shape. Ho esaminato anche personaggi già fatti realizzati da professionisti, e ho notato che alcune maniglie non si fermano allo zero o a uno, ma proseguono sotto o sopra di esso, però influenzando un'altro parametro del blend shape. Per farmi capire meglio farò un esempio: ci sono due paramenti nel blend shape: uno che apre la bocca fino ad un certo punto, l'altro la apre ancora di più. A controllarli, c'è una sola maniglia, che va da zero a due. Com'è possibile raggiungere questo risultato? Bisogna scrivere un'espressione nell'expression editor oppure posso fare tutto con il connection editor?

Share this post


Link to post
Share on other sites

Salve a tutti, è da tanto che non mi faccio vedere sul forum (a causa degli studi, delle vacanze, ecc..).

Comunque, in questo periodo sto approfondendo il blend shape, ed il particolare la possibilità di connettere una curva nurbs (ma volendo qualsiasi altro oggetto-maniglia) ad il valore da 0 a 1 di uno dei parametri impostati nel blend shape. Ho esaminato anche personaggi già fatti realizzati da professionisti, e ho notato che alcune maniglie non si fermano allo zero o a uno, ma proseguono sotto o sopra di esso, però influenzando un'altro parametro del blend shape. Per farmi capire meglio farò un esempio: ci sono due paramenti nel blend shape: uno che apre la bocca fino ad un certo punto, l'altro la apre ancora di più. A controllarli, c'è una sola maniglia, che va da zero a due. Com'è possibile raggiungere questo risultato? Bisogna scrivere un'espressione nell'expression editor oppure posso fare tutto con il connection editor?

ciao,

si ci sono piu' modi per farlo, anche con espressione.

Quello ceh ti consigliere e' un setdriven key, da 0 a 1 per il primo blendshape e da 1 a 2 per il secondo... poi dipende da cosa vuoi fare. Ma ci sono anche vari modi.

Io personalmente, se devo usare un interpolazione lineare uso un setRange che con un nodo fai tutto. :)

a presto

Marco

Share this post


Link to post
Share on other sites

Driven key! E' vero, non ci avevo proprio pensato grazie! :w00t:

Però cosa intendi per interpolazione lineare e setRange? Scusa la mia ignoranza, in fondo sono ancora un principiante :blush:

Ma figurati...

Allora con il setDriven key tu puoi decide che tipo di interpolazione dare ( fCurve )...cioe' gestendo la curva puoi decidere che tipo di "relazione" dare ai valori x,y.

Se invece devi fare una "semplice" interpolazione lineare ( per esempio 0 - 1, 1 - 2, 2 - 3 etc etc ) e' semplicemente un remap dei val]ori e io di solito trovo piu' comodo usare un range. Nel SetRange quello che fai e dire la tua scala di valori ( ad esempio 0 - 1 ) e impostare quella nuova ( 1 - 2 ) quindi quando metterei il volore 0 lui lo rintrepertera' a 1 e cosi' via... per il rapporto rimane sempre lineare. Invece con set driven key, potendo gestire la curva dei valori guadagni sul fatto di poter personalizzare la "velocita'" di interpolazione...

Di per se sono entrambi veloci e penso che non ti serva nemmano stare li a guardare la velocita' :) ma il setRange e' piu' leggero del setDrivenKey e in pi' potendo mettere 3 valori in un nodo ti e' piu' "comodo" per gestirlo.

Dipende da cosa vuoi fare, ovvio :)

dagli un occhio e dimmi ;)

per qualsiasi cosa fammi un fischio

Share this post


Link to post
Share on other sites

Ti prego di scusarmi, ma le tue parole mi risultano criptiche e inesplicabili. Anzitutto: per "gestione della curva" vuoi dire la sua regolazione tramite il graph editor? E poi, il setRange è un'opzione del connection editor? Non penso sia una finestra a parte, altrimenti l'avrei già vista tra i vari menù. Inoltre, per più leggero intendi che richiede meno cpu per essere elaborato?

Share this post


Link to post
Share on other sites

Ti prego di scusarmi, ma le tue parole mi risultano criptiche e inesplicabili. Anzitutto: per "gestione della curva" vuoi dire la sua regolazione tramite il graph editor? E poi, il setRange è un'opzione del connection editor? Non penso sia una finestra a parte, altrimenti l'avrei già vista tra i vari menù. Inoltre, per più leggero intendi che richiede meno cpu per essere elaborato?

:)

ok, allora il setDrivenKey è fisicamente un curva che connette due valori, quindi al posto di avere sugli assi il tempo e il valore ha due valori ( x e y ) e tu come si fa normalmente con un animazione puoi decidere quando mettere le key e i valori delle tangenti.

il serRange è un nodo, come il setDrivenKey, e lo puoi trovare nei node utility, se non sbaglio, o crearlo con il comando "createNode setRange" etc etc etc.

sono valori così bassi e insignificanti che non te ne devi preoccupare ( ovviamente se ne fai 1, 10 o 100 ) ma te l'ho detto solo per conoscenza :) diciamo che in termini di dati la curva è più pesante di un "espressione", e il setDrivenKey collega due valori con una curva, mentre il setRange con un rapporto. :)

Share this post


Link to post
Share on other sites

Grazie! Stavolta ho capito come funziona (dopo averci smanettato un pochino). Però con il setRange non è possibile, come potevo fare con le driven key, fare in modo che, ad esempio, il valueX influenzi con il valore da 1 a 3 la translateX di un cubo, poi da 3 a 5 la translateY, giusto? Anche perché se non sbaglio con il connection editor un valore può essere collegato solo ad un'altro.

Share this post


Link to post
Share on other sites

Grazie! Stavolta ho capito come funziona (dopo averci smanettato un pochino). Però con il setRange non è possibile, come potevo fare con le driven key, fare in modo che, ad esempio, il valueX influenzi con il valore da 1 a 3 la translateX di un cubo, poi da 3 a 5 la translateY, giusto? Anche perché se non sbaglio con il connection editor un valore può essere collegato solo ad un'altro.

mmm, ho dovuto rileggerlo un paio di volte per capire cosa intendessi ( anche perche' sono le 10 del mattino eo non sono proprio sveglio :D ) ...penso di aver capito e ti si lo puoi fare.

Quello che devi fare e' mettere il valueX su piu' inputValue del setRange ( spero di essermi spiegato) ed ad ognuno gli assegni un la nuova scala che vuoi avere.

Maya puo' accettare un solo input ( poi dipende, perche' se hai un inputArray puoi usarne piu' di uno ) e come output a quinti ne vuoi.

Cmq poi ci sono anche vari modi per agire e superare l'ostacolo. Ci sono tanti nodi in maya e molti non sono visivamente presenti devi andare nell'help sotto technical Documentation -> node e li richiami con il mel command createNode blablabla .

ti ho messo un immagino che dovrebbe rappresentera il setUp, per come l'ho inteso io ma magari mi sbaglio :)

ps: cmq ricordati che che tanti nodi per il render in realta' sono comodi per il rig too, alla fine il colore e' semplicemente un vettore ;)

guardati anche il clamp, gamma correct, blendColors,samplerInfo ;)

m2c

post-20157-12832986652189_thumb.jpg

Share this post


Link to post
Share on other sites

mmm, configurando il setup in questo modo non succede granché... comunque non importa, tanto le driven key mi vanno benissimo quando il setRange diventa meno comodo da usare.

Piuttosto, ho un'altra domanda abbastanza impegnativa: in questo personaggio che ho scaricato per poterlo esaminare (quindi non realizzato da me), è presente un blend shape fatto molto bene, con i controlli per le espressioni facciali a destra della testa. Uno di questi controlli è quello della bocca, con un cerchio che può muoversi all'interno di un'area delimitata da un quadrato. Muovendo il cerchio a destra o a sinistra, la bocca si solleva in modo sorridente a destra o a sinistra. E fin quà, niente di difficile da realizzare, basta qualche driven key apposita collegata a due valori differenti del blend shape, uno per il sorriso a destra e l'altro per la sinistra. Però, il cerchio si può muovere anche su e giù (lungo cioè l'asse y). Quando il cerchio è più alto, il sorriso è più accentuato. Quando invece il cerchio è al centro del quadrato (al centro verticalmente, cioè con il valore dell'asse y a 0), il sorriso non appare, anche se il cerchio è molto a destra o molto a sinistra (con valore dell'asse x vicini ad 1 oppure -1).

Non so se mi sono spiegato bene, è una domanda complessa da spiegare, comunque ti allego un immagine:

post-61229-12833508409139_thumb.jpg


Edited by Robot21

Share this post


Link to post
Share on other sites

mmm, configurando il setup in questo modo non succede granché... comunque non importa, tanto le driven key mi vanno benissimo quando il setRange diventa meno comodo da usare.

Piuttosto, ho un'altra domanda abbastanza impegnativa: in questo personaggio che ho scaricato per poterlo esaminare (quindi non realizzato da me), è presente un blend shape fatto molto bene, con i controlli per le espressioni facciali a destra della testa. Uno di questi controlli è quello della bocca, con un cerchio che può muoversi all'interno di un'area delimitata da un quadrato. Muovendo il cerchio a destra o a sinistra, la bocca si solleva in modo sorridente a destra o a sinistra. E fin quà, niente di difficile da realizzare, basta qualche driven key apposita collegata a due valori differenti del blend shape, uno per il sorriso a destra e l'altro per la sinistra. Però, il cerchio si può muovere anche su e giù (lungo cioè l'asse y). Quando il cerchio è più alto, il sorriso è più accentuato. Quando invece il cerchio è al centro del quadrato (al centro verticalmente, cioè con il valore dell'asse y a 0), il sorriso non appare, anche se il cerchio è molto a destra o molto a sinistra (con valore dell'asse x vicini ad 1 oppure -1).

Non so se mi sono spiegato bene, è una domanda complessa da spiegare, comunque ti allego un immagine:

post-61229-12833508409139_thumb.jpg

certo ;) in quel caso non si usano setdrivenkey ( o cmq si evita di usarli ) ma si usano delle espressioni o una combinazione di noti tra setRange, +/- ( sum ) and clamp...ma io andrei direttamente di espressione

Praticamente sommi il valore della posizione x e y del controllo e lo clampi per non avere una doppia risposta.

Cmq quel sistema li e' ben spiegato nel libro stop staring che consiglio vivamente

Share this post


Link to post
Share on other sites

Grazie per il consiglio, sembra un libro molto utile, se avrò tempo me lo leggerò tutto (anche se ci metterò parecchio, visto che è in inglese). Se mi dici il capitolo dove parla del blend shape, posso anche provare a vedere se è presente su google libri (non tutti i capitoli sono presenti, solo alcuni concessi dal copyright).

Comunque, cosa intendi per clamp? Cercando nella guida di maya mi dice che è un nodo per tenere un colore dentro una certa gamma.

Share this post


Link to post
Share on other sites

Anzi, ancora meglio: per caso sai se viene venduto anche in Italia? Sarebbe costoso ordinarlo dal'america

http://books.google.it/books?id=O-VvFFv5DMwC&lpg=PP1&dq=stop%20staring&pg=PA283#v=onepage&q&f=false

intorno a pagina 280 ( ma non c'e'... ) cmq se lo compri devi comprare la prima versione perche' nella seconda se non sbaglio non la mostrava. Ma su internet trovi sicuramente qualcosa.

Si hai trovato giusto! come ti dicevo i colori ( e il gamma ) alla fine sono sempre numeri ;)

il clamp e' una funzione matematica per "richiudere" i valori dentro un limite, quindi se ho un limite 0-1, per esempio, se ho 0.5 avro' come risposta 0.5 ,ma se ho 2 la risposta sara' 1 ( cioe' il limite dato ) e questo serve n queste tipo di espressioni perche' sommando i valori dx e up avrai un valoer max si 2 mentre a te serve di uno quindi con il clamp racchiudi in un dominio consentito ( o da te definito ). ;)

cmq vedendo quell'esempio capirai piu' facilmetne!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...
Aspetta! x