Vous n'êtes pas identifié.
J'aurai bien aimé avoir qqs conseils d'ancien (ou même de deuxième année qui se débrouillerai mieux que moi;)) sur les Blend Shape ... On est en pleine modélisation actuellement et j'avoue que parfois je suis un peu perdu avec mes Blend...
Par exemple j'ai modélisé mon perso la bouche à moitié ouverte et en ce moment je suis en train d'essayer de lui faire faire des blend shape qui normalement demanderons une bouche fermée. Je compte animé ma machoire avec un bones donc plus tard au skinning...
Du coup mes Blend Shape ne sont pas aussi expressif que je le voudrais et j'ai même du mal à voir comment je dois déformer mon personnage (les lèvres par exemple ne s'écrasent pas pareil la bouche ouverte que la bouche fermé...). J'ai le même problème avec mes yeux .. Je comptais animer les paupière avec des clusters... et du coup je suis en train de faire tout mes Blend Shape avec les yeux grand ouvert... ce qui est là encore étrange pour certaine expression.
Bref... Est-ce que je fais une erreur en voulant animer ma machoire et mes yeux avec autre chose que du blend ? et si non avez vous des conseil pour les Blend Shape en général (soit pour mes problèmes soit pour le reste
)
Hors ligne
ben pour fred:
tu peux très bien travailler tes blend après les avoir créés, jveux dire après les avoir appliqués... comme ça tu les "activent" pi tu bosses en regardant comment ça se passe?
sinon je me demandais: moi je fais come toi gerem: je fais les blend de mes expressions principales... mais j'ai l'impression bizarre que je vais être emmerdé après pour toutes les expressions "pas recensables"... parce que je sais pas si les blend shape sont "prioritaires" sur par exemples les clusters... jveux dire j'ai fait la shape de mon mec qui force comme une brute pour arracher l'épée (yeux fermés) mais si je veux lui ouvrire les yeux, j'ai pas envie de refaire la shape yeux ouverts, donc je me disais comme gerem, que j'allais faire les yeux en clusters...
mais pour lui faire ouvrir les yeux, une fois la shape "arrachage d'épée" appliquée, est-ce que si j'utilise les clusters des yeux, ils vont s'ouvrir, ou est-ce qu'ils ne s'ouvriront pas car la shape est prioritaire?
ou plus généralement: est ce que les shape de base direct en déplaçant des vertex c vraiment bien, ou est-ce qu'il valait pas mieux faire des shape sur les clusters comme on a appris avec seb?
chuis paumé
ben la relation de priorité se regle dans les inputs francois, c au choix
enfin je pense
edit : ca peut aider :
http://www.chloemicout.net/html/informa … ation.html
Hors ligne
en général moi ce que je fait c'est que je modelise mon visage, ensuite je le skinne, (aprés bien sur avoir fait tout ce qui doit etre fait (uv, etc) effectivement moi zossi j'utilise un bones pour la machoire. une fois qu'il est skinné et ke mon perso il peut ouvrir et fermer la bouche nikel krom, bas je duplique ma tete, et je fait mes blend ce qui fé que je peut verifier a tout moment avec mon bones si le blend passe aussi bien en position ouverte qu'en position fermée (la bouche). pour ce qui est des paupières, je préfère utiliser des blendshapes plutot que des cluster (mais c'est perso, j'aime pas trop les clusters) on peut aussi melanger les blend shapes avec des bones... je m'expliuque. tu fait tes blendshapes de base position paupières ouvertes et fermées. ensuite (je part du principe que le visage est déjà skinné et qu'on a mit des bones pour les yeux, et que le dernier joint se positionne précisement au centre de l'oeil) et c'est avec ce dernier joint qu'on anime le mouvement des yeux (faut bien sur que les yeux soienbt completement assignés à ces derniers joints) et pis on peut aussi assigner à ces joints le contour de l'oeil de façon à ce que les paupières bougent légèrement lorsque l'oeil bouge... voila... je sais pas si j'ai été clair ...
Merci pour tes conseils jesuskrisis .. J'avais pas encore lu ton post mais j'ai fait plus ou moins pareil.. avant de faire mais blend shape j'ai d'abord skinné mes paupière (avec des cluster) et skinné ma machoire. Comme ca je peux voir ce que ca donne avec les paupières et la bouche fermé ou ouverte.
Hors ligne
a ton service ...
Petite precisions:
- Si vous voulez pas avoir de problemes dans vos bibliotheques de blends; il faut ke tout vos blends soit dans le meme node de blend.Si vous faites des blends pour les yeux et pour la bouches assignes les en meme temps. Sinon y se marchent dessus et font ds trucs bizzares.
- Deuxio, lorsque vous faites vos blends ne les effacer ke si votre anim et def (C plus lourd dans la scene mais avec l' historique vous pouvez modifier la target au cas par cas.).
- Dans cet optique gardez toujours 4 ou 5 blends neutres kan vous cree vos blends (C pratique du rab kan on a zappe une expression).
- Et enfin la grosse blague du genre: G blendais mais target, g ensuite skinnais et ouuups g deconne
. On peut reassigner ses blends en mettant l' option front of chain (Maya les place avant le noeuds de skinning).
Pour les clusters ne pas oubliez de virer le mode relatif (ou l' inverse je sais plus sur le coup)
.
Et pour les vrais furieux: Au lieu de foutre des clusters ki ne sont pas limites dans leur influences foutez des bones a leurs places Ne les parentez pas au squelette principal, groupez les et parentez le groupe au bones adequate. Enfin, au moment de lance le skin prendre tout les joints (oui , joints par joints) et skinner avec l' option "selected joints". L' avantage c ke tu as la limite inherante au skin ki fait ke l' influence de tout les joints ne peut depaser 1 ce ki fait ke tu une maitrise plus propre de tes deformations.
Voilou
P.S: Ye jisus le bo gosse c koi ta prod ke tu fais la maintenant tout de suite?
Bonjour bonjour
Pti question sur les blend shape...
Voila on a des perso a poil et donc le cou bein est visible et donc pas moyen de couper en fin on pense ou sinon on merge tout les points... mais avez vous une meilleur technique pour ce cas... merci davance car ca vas meme si on fait les blend des persos avec les mesh entier c pas trop lourd mais on aurai pas pu le faire avec un mega gros dino tout detailler donc ca peu grave servir
Merci 
ben toi pendant les vacances t'as oublié d'être précis...
lloll ou alors les blend shape si on les fait en coupant la tete comment on merge apres ou comment smooth sans voir la coupure...
le truc fun ca serait de faire la moyenne des normales des vertex apres le smooth entre les 2 vertex qui devraient etre merger et de leur donner a chacune la nvelle normal
maintenant oula je saurais pas faire
Hors ligne
koikoikoi ???!!! je t'ai vu en cours t'avais commencé à te pencher sur le problème! alors opopop tu nous trouves la solution maintenant!!!
j'avais reussi a le faire a la mano et sur le modele pas smoothé (du coup au smooth ca m'a tout pété) enfin bon c vite fait pratique et si y'a 50 vertex a retoucher comme ca..
si j'ai le courage j'essaierais bien de scripter un truc de ces 4
Hors ligne
Oui hop hop tu nous trouve la solution mdrr 
bon ba comme jmennuyais ce soir j'ai commencé
par contre je lutte encore un peu en mel, y'a des trucs que j'ai pas encore tout saisi
enfin bref ca marche pas
je lutte sur cette merde de polyNormalPerVertex -xyz qui me fait planter le script. quand j'aurais trouvé d'ou ca vient i me restera plus qu'a affiner les test pour trouver les vertex identiques des 2 morceaux. paske la encore j'y vais bourrin je connais pas tres bien, je fais un test par couple de vertex sur l'ensemble du modele. en gros ca rame _a mort_ sur un modele qui a été smoothé puis en plus ce connard de maya se permet de pas toutes les trouver
si ca interesse qqun je met la version foireuse que j'ai la sur http://www.yznah.net/maya/yzan1.mel
Hors ligne
RHA chuis trop une truffe, j'ai oublié un "x" et ca faisait tout foiré
ba ca marche c bon le polymachintruc
me reste plus que l'affinage et c fini :p
edit:
voila j'ai updaté le http://www.yznah.net/maya/yzan1.mel
pour le faire marcher faut 2 objets fraichement tranché
on source le truc et apres suffit de faire yzan; dans la console et voila plus de coupure
vais regarder pour plus faire ramer maintenant 
Hors ligne
Youpiiiiiii v aller faire un ptit test
enfin talur quand jme leverai a 15H 
Boudiou ca ma fait planter maya
Ta essayer sur autre choses que des cubes ?? sinon c moi qui me debrouille comme une quiche
Edite
Bein oui jai fait un test avec une sphere ca passe bien mais quand le model est trop important maya ram feroce
...
Non mais il est ou le bout de script qui etait la lol tu la enlever jte vu a 4:48
voulais voir moi 
//determine si une putain de vertex est sur une border edge
global proc int yzOnBorder(string $name, int $vertex) {
string $edge[] = `polyListComponentConversion -fromVertex -toEdge ($name+".vtx["+$vertex+"]") `;
$edge = `filterExpand -sm 32 -ex true $edge`;
for ($e=0;$e<size($edge);$e++) {
string $face[] = `polyListComponentConversion -fromEdge -toFace ($edge[$e]) `;
$face = `filterExpand -sm 34 -ex true $face`;
if ( size($face)==1) return 1;
}
//en gros si une edge appartient a une seule face ca veut dire qu'on est en border ;)
return 0;
}il est là
en fait j'avais foiré un truc donc jvoulais pas avoir la honte mais c réparé
je mix ca avec le yzAverageNormals (qui depote qd meme mieux maintenant) et j'envoie la puree
Hors ligne
Cool on se croirai presque en boite tu demande au developeur 5 min apres cest fait ca defonce... hey aufaite pourquoi t pas en deuxieme année toi
Un truc enfaite le mel detetect tout les vertex qui sont en bordure ?? si ca il prend en compte la bouche et les yeux ? c'est ptet ca qui fait ramer maya ?? enfin bon si tu fini le script jle test dessuite ...
et voila ca marche et ca rame moins
http://www.yznah.net/maya/yzaveragenormals.mel
global proc string yzAverageNormals() {
string $sel[] = `ls -sl`;
//verif de la selection
if (size($sel)!=2)
return "nan faut 2 mesh sinon c pas la peine :)";
//comptage des vertex
int $numVertex1[]=`polyEvaluate -v $sel[0]`;
int $numVertex2[]=`polyEvaluate -v $sel[1]`;
//table des vertex qui sont en bordure (ca aide ;)
int $table1[];
int $table2[];
for ($v=0;$v<$numVertex1[0]; $v++ ) {
if(isVertexOnBorder($sel[0],$v)==1) $table1[size($table1)]=$v;
}
for ($w=0;$w<$numVertex2[0]; $w++ ) {
if(isVertexOnBorder($sel[1],$w)==1) $table2[size($table2)]=$w;
}
//recherche des vertex au meme endroit
int $couple1[];
int $couple2[];
int $i=0, $j=0;
for ( $i=0; $i<size($table1); $i++ ) {
$p1=getAttr ($sel[0]+".vt["+$table1[$i]+"]");
$p1[0]=precision($p1[0],3);
$p1[1]=precision($p1[1],3);
$p1[2]=precision($p1[2],3);
for ( $j=0; $j<size($table2); $j++ ) {
$p2=getAttr ($sel[1]+".vt["+$table2[$j]+"]");
$p2[0]=precision($p2[0],3);
$p2[1]=precision($p2[1],3);
$p2[2]=precision($p2[2],3);
if ($p1[0]==$p2[0]) if ($p1[1]==$p2[1]) if ($p1[2]==$p2[2]) {
$couple1[size($couple1)]=$table1[$i];
$couple2[size($couple2)]=$table2[$j];
}
}
}
if (size($couple1)==0) return "pas de vertex identiques, pas d'bol :)";
//moyennes des normes et renormage
float $n1[3], $n2[3];
for ( $n=0; $n<(size($couple1)); $n++ ) {
$n1=getNormalPerVertex($sel[0]+".vtx["+$couple1[$n]+"]");
$n2=getNormalPerVertex($sel[1]+".vtx["+$couple2[$n]+"]");
$normx[$n]=($n1[0]+$n2[0])/2;
$normy[$n]=($n1[1]+$n2[1])/2;
$normz[$n]=($n1[2]+$n2[2])/2;
setNormalPerVertex($sel[0]+".vtx["+$couple1[$n]+"]",$normx[$n],$normy[$n],$normz[$n]);
setNormalPerVertex($sel[1]+".vtx["+$couple2[$n]+"]",$normx[$n],$normy[$n],$normz[$n]);
}
//salut
return "yzAverageNormals OK!";
}
global proc float[] getNormalPerVertex(string $vtx) {
return `polyNormalPerVertex -q -xyz $vtx`;
}
global proc setNormalPerVertex(string $vtx, float $x, float $y, float $z) {
polyNormalPerVertex -x $x -y $y -z $z $vtx;
}
global proc float precision( float $value, int $dec )
// $value == value to round off
// $dec == number of decimal places
{
float $bump = 0.5;
if ($value < 0.0)
$bump = -0.5;
// (split onto two lines to avoid linebreak in this example)
$value = trunc( $value * ( pow ( 10, $dec ) ) + $bump );
$value = $value / ( pow ( 10, $dec ) );
return $value;
}
//determine si une putain de vertex est sur une border edge
global proc int isVertexOnBorder(string $name, int $vertex) {
string $edge[] = `polyListComponentConversion -fromVertex -toEdge ($name+".vtx["+$vertex+"]") `;
$edge = `filterExpand -sm 32 -ex true $edge`;
for ($e=0;$e<size($edge);$e++) {
string $face[] = `polyListComponentConversion -fromEdge -toFace ($edge[$e]) `;
$face = `filterExpand -sm 34 -ex true $face`;
if ( size($face)==1) return 1;
}
return 0;
}
Hors ligne
justement avant ca ramait paske ca detectait _que dalle_
j'avais fait que maya test toutes les vertex du model
a chaque autre vertex de l'autre model et la on comprend mieux
maintenant ca trie un peu mais c qd meme encore un peu lent si on monte haut en polys (mais ca fait pas exploser maya)
Hors ligne