lundi 2 décembre 2013

Marvelous Designer to Cloth - Partie II

PARTIE II : Cleaner et rattacher ses meshs en Quads:

Alors finalement c'est ici que ça se corse

Pour cet exemple je vais utiliser la robe que notre personnage vieux porte sous son poncho.

Cette robe est constituée :
- du devant de la robe
- du derrière de la robe
- de deux manches chacune en deux partie


Soit 6 morceaux et 6 coutures.


La première chose à faire est de faire un Mesh>Separate sur l'objet de base ( suivi d'un delete History )

Ensuite chacune des parties doivent être converties en quads grâce à la methode de la Partie I de ce tutorial.



Ensuite nos shapes doivent être re-combinées deux à deux à l'aide de la fonction Mesh>Combine ( suivi d'un delete History )



Voici donc la manche droite de la robe, en deux parties recombinée.

Une fois que l'on a ça devant les yeux, la première étape consiste à virer tous les vertices qui ne servent à rien le long de la bordure des meshs. Ces vertices inutiles sont ceux qui ne sont connectés qu'à deux edges seulement, et qui sont des artefacts créés par l'opération booléenne de la Partie I.

Pour sélectionner tous les vertices ayant deux edges connectés ( on peut dire aussi qu'ils ont une "valence" de 2 ) il faut utiliser la fonction Select>Select Using Constraints ... avec ces paramètres


ou appuyez sur ce bouton du script ( Si maya vous engueule c'est normal, ça arrive )



Ensuite encadrez votre mesh avec le rectangle de sélection et voilà le résultat.


Ensuite appuyer sur Suppr et maya supprimera ce qu'il peut.


Ensuite on va se concentrer sur les border, vous pouvez déjà afficher vos border en gras grâce à la fonction  Display>Polygons>Border Edges 
Puis pour sélectionner uniquement ces borders, même chose que pour les vertex avec ces options:

ou encore appuyez sur ce bouton du script 


Dès lors, vous ne sélectionnerez que les border-edges : 


C'est là qu'intervient un plug-in mentionné ici 
https://sites.google.com/site/adamvanner/scripts-and-tools/avmergeedgescmd

       Sur le site d'Adam Vanner il y a une version du plugin pour maya 2013.

Comme il a mis ses sources C++ à disposition et que je suis un type sympa je l'ai recompilée pour 2014 :
avMergeEdgesCmd.mll à copier dans le répertoire :
Drive:\Program Files\Autodesk\Maya2014\bin\plug-ins


Une fois le plug-in installé et maya redémarré, sélectionnez les borders de votre mesh.
Puis lancez la commande à l'aide du script:


Ce que fait ce plugin : En gros il regarde selon une certaine tolérance si vos edges sélectionnés se touchent. Si elles se touchent, pour chaque point de contact avec un vertex , il créé le vertex correspondant sur l'edge opposée. Ce qui vous permettra ensuite de simplement welder ces edges puisqu'elles auront toute la taille correspondante à celle d'en face. 

( nb: sur cette image la connexion parait simple mais sur d'autres endroits de votre maillage vous serez bien contents qu'il le fasse tout seul )



Et je vous vois venir avec vos grands poneys
Oui ça fait des polygons à plus de 4 côtés, mais ça va plus vite de procéder comme ça et de cleaner ensuite, plutôt que de tout faire correspondre à la main.

Ensuite on selectionne les border et on applique un Edit Mesh>Merge en mode edges
Réglez ensuite la tolérance en vérifiant bien que ce genre d'ouverture ne se fusionne pas. 


Ensuite vu que la vie n'est pas sans heurs, vous aurez quelques retouches à faire à la main. Faites le tour de votre mesh et vérifiez la présence de Borders ouvertes le long des coutures.



Vous aurez probablement ce genre de saloperies qui peuvent être due à l’imprécision de votre mesh Marvelous de base. Vous pourrez réparer ça à l'aide des fonctions :

- Multi Cut (modeling toolbox) pour ajouter des vertex lorsqu'il en manque

- EditMesh>Collapse sur les edges en trop

- Et de nouveau Edit Mesh>Merge sur votre selection de border

Supprimez l'historique de la shape quand vous avez fini.

Fatalement, sans être un nazi du maillage ce genre d'endroit peut être légèrement plus clean en collapsant / reconnectant quelques petites choses.

Voilà c'est fini pour la partie sous Maya, vous pouvez pousser le clean sous Maya si ça vous chante. Personellement j'ai terminé le clean sous 3dsMax.




Un fois sous max vous pouvez : 

- Sélectionner tous les points et faire un weld global avec une petite valeur pour collapser quelques micro-edges.


- Re-vérifier les border

à l'aide du xView:

- Vérifier les vertices isolés (les supprimer)
- Vérifier les overlapping de faces ( important pour l'export vers Zbrush, souvent il suffit de faire un retriangulate  )


Vous pouvez aussi doubler l'edge des border ouvertes pour bloquer la forme et éviter le smoothing dans tous les sens dans ZBrush.




Ensuite on exporte en OBJ en forcant l'export en Quad ( cela va re-trianguler certaines faces, mais quelques triangles n'ont jamais tué ZBrush, en tout cas pas quand on a la flemme )



Ensuite dans Zbrush:


onglet Modify Geometry:
- Weld Points ( vérifiez qu'il n'y a pas de trous )
- Optimize Points

- Mesh integrity check


Ensuite Sculptez à votre idée, le long des borders éviter de trop étirer la modé.




Puis retour dans maya :

A l'aide d'un transfert attribute depuis votre shape Marvelous d'origine ou votre Mesh en quad pour réparer les UVs cassées.



jeudi 28 novembre 2013

Marvelous Designer to Cloth - Partie I

     Pour notre projet de film nous avons pris la décision d'utiliser le fameux Marvelous Designer pour faire nos models de vêtements. 

     Les meshs extraits de MD ont un avantage : Les Coordonnées UVs qui sont parfaites (comme un tissu à plat), 
mais deux inconvénients: Les meshs sont en garment (cad. des triangles un peu dans tous les sens, certains plug de simulation s'en sortent très bien avec mais pas tous ), et si vous avez fait des coutures vos meshs peuvent ne pas être weldés au niveau de ces coutures ( gênant pour la simulation ET pour le rendu, pour tout ce qui est displace / sss etc. )

     Mon but personnel étant également de pouvoir resculpter certains plis sous zBrush cela oblige à avoir un model assez propre et tout en quad pour éviter les re-tesselations aléatoires de ce dernier.

    Puis notre Simulation est prévue pour être faite dans maya avec le plug-in Qualoth de FxGear.


PARTIE I : Faire des meshs en Quads (dans Maya 2014):

Voici mon premier exemple : Un vieux en poncho.

       Le poncho est en une seule pièce donc rien de problématique quand aux coutures.
Sur l'image : La modé sortie de MD, (Paramètres d'export : -unweld -unified Uvs -single object)


Voici donc mes mesh après une opération de mesh > separate et un Delete history

La première chose à faire est de vérifier les UVs de l'objet que vous allez convertir en quads.
Celui ci dois rentrer dans le premier UV Tile (coordonnées U=0:1,V=0:1)



En gros à partir de là voici la méthode théorique:
- On vérifie les UVs
- On créé un duplicata de notre objet
- Chacuns des vertex de cet objet vont prendre en World les coordonnées de l'UV.

( y = V, x = U, z = 0 ) ce qui aura pour effet de vous faire un mesh à plat sur le plan XY et n'ayant pas de dimensions excédant 1 unitée.




- On créé un duplicata de notre objet plat
- On créé ensuite un pCube de 1 sur 1  avec beaucoup de subdivision horizontales et verticales
- On extrude notre mesh plat pour qu'il lui rentre dans le cube 
- On fait une opération booléenne d'intersection pour avoir un pochoir de notre forme en quads


- On supprime les faces Inutiles (celles qui ne sont pas en z=0) 






- On créé un blendShape entre notre mesh Marvelous plat et notre mesh d'origine
- Ensuite on fait un transfert attributes des coordonnées d'UV à partir des positions en World des points (mesh MD plat ---> mesh en Quad), on supprime l'historique quand c'est fait.
Maintenant nos deux meshs ont les même UVs sans avoir la même topologie.



- Puis un deuxième transfert attributes, cette fois ci on transfert les positions de points mais en utilisant les UVs ( ce transfert d'attribut aura l'effet d'un wrap )

- En laissant le transfert en place, on active notre blendShape à 1.



       Si tous se passe bien votre mesh en quad vas rester collé à l'autre lors de son interpolation de blendShape, ce qui aura pour effet de le remettre en place sur le mesh d'origine. 




Magique n'est-ce pas ?

Rassurez vous avant de continuer, il y a un script pour ça.

Voici donc le script qui vous permet d'automatiser ces étapes:

Ce script est une version que j'ai remodifiée, et qui vient du tutorial de Adam Vanner:
https://sites.google.com/site/adamvanner/scripts-and-tools/marvellous-designer-quad-mesh-in-maya

Vous pourrez d'ailleurs y télécharger  ces deux autres scripts dont nous avons également besoin:

getUVShells.py

avMergeMeshEdges.py (pour l'étape d'après)


Donc le script se présente comme ceci:

Note : Le script automatise une partie des actions mais vous devez néanmoins vérifier les UVs au préalable. (d'ailleurs sur de petits objets qui ne font qu'un quart d'UV tile je vous conseille de les placer dans le coin en bas à gauche du tile car le script peut échouer dans le cas contraire, pour une raison obscure)


Quad Definition : Cela correspond au nombre de subdivisions de votre plane en quad ( plane créé sur l'UV Tile 1 je le rapelle )

Note : Si pour vos besoin vous devez dépasser une définition de 200 il y a un message d'avertissement de maya qui fait planter le script (message vous prévenant que plus de 200 c'est quand même beaucoup ... )
Du coup c'est simple : Créez un pCube qui ne sert à rien, mettez lui plus de 200 subdiv et quand le message apparait dite lui de ne plus se montrer. Supprimez ce cube et passez à la suite.

Selection to flat QuadMeshes : Cette première fonction vous créé des duplicatas de la shape comme décris dans la méthode ci dessus, ainsi que le node de blendShape:
- Un duplicata de votre shape d'origine en Garment (pour le blendShape)
- Un duplicata de votre Garment à plat (avec les coordonées de l'UV) groupée sous <name>Planar


- Une version en quad de ce mesh plat ( créée par l'opération booléenne ) parenté au World


Selection to Quad Cloth : Cette deuxième fonction s'occupe de faire les opérations de transfertAttribute afin de remettre votre mesh en quad en place sur le mesh d'origine et avec des UVs similaires.

Comme noté sur l'UI du script vous devez sélectionner votre garment plat puis votre mesh en quad plat avant d’exécuter la commande ( sur l'exemple en image ci dessus on selectionne d'abord polySurface2 puis polySurface4 )



       Si tout cela a marché vous pouvez supprimer le group "mdMesh" avec son contenu et renommer la polySurface de votre mesh en Quads.

       Je vous conseille vivement de garder une copie de vos mesh d'origine dans votre scène de travail pour la suite, car plus tard elles peuvent resservir à récupérer les UVs qui pourraient sauter ou partir en sucette au niveau des seams.












dimanche 13 octobre 2013

Selection: Rig / Skin Maya

Projets openSource en developpement:
MetaNode_Editor : un editeur de metaNodes avec un parcours sémantique amélioré des rigs, utile pour le posing et l'automation en général. Permet aussi des scripts dynamiques légers lors de la manipulation des rigs ( ik/fk snap, space switching, switch automatique des gizmos, mise à jour d'interface etc. )

soon ..

AutoRigs Modulaires:

Creatures Rigs: http://creaturerigs.com/modular-rigging-system/#.UlOrY1BminB
Très bon, encore quelques bugs mais deux templates pour un quadrupede et un bipede.

Les bons points :


  • Stretchs ( possibilité de choisir entre scale et translate )
  • SpaceSwitching ( possibilité d’étendre les listes )
  • Knee/Elbow locking,
  • Très bonne spine ( ik/fk hybrid, deformation de courbure ) 
  • Twists personalisables, 
  • Tentacules dynamiques fk (oreilles, queue, zizi ...)
  • FootRoll et pivots plutôt chouettes
  • Animateur Proof
Les moins bons:
  • Pas de snapping pour le space switching ( à scripter )
  • Pas de snapping pour le middle lock ( idem )
  • Idem pour le switch



dpAutoRig: http://nilouco.blogspot.fr/2011/10/dpautorigsystem-v-20.html
Très bon pour des rigs Cartoon

Les bons points: 

  • Bendy limbs avec des ribbons ( comportement ik fk assez cool )
  • Malléable ( simple parenté pendant la phase de placement des modules, proxies un peu complexes mais vous maîtrisez votre placement avec précision ), 
  • Interface simple.

Les moins bons:

  • ik switching sur le root (pas pratique je trouve mais customisable manuellement),
  • pas de snapping ik/fk (blend classique)
  • pas de space switching





AutoRigs Simples:

braveRabbit Quadruped Rigger http://www.braverabbit.de/playground/?p=485
Plutôt cool mais surtout pour les animaux à sabots, à voir avec les félins.

Bons points :

  • Très simple d'utilisation ( pas de pole vector, très peu de controllers )
  • Léger visuellement et en terme de perfs
  • Bon controle des pattes
  • Clean
Moins bons :
  • Tail fk simpliste
  • Neck fk limité


Skin et Deformers:

iSkin suite de braveRabbit: http://www.braverabbit.de/playground/?p=887
iSkin  est un skinDeformer avec glissement de geometry et de texture, tout en préservant le volume.
Il fait aussi les roulements de volumes sous un skin

iCollide : http://www.braverabbit.de/playground/?p=881

transferSkinCluster : http://www.braverabbit.de/playground/?p=915


Animation Scripts:

Extract deltas : http://www.braverabbit.de/playground/?p=443
Aide à la création de morphers pour les pliures de membres

Super Crumbly's : http://www.supercrumbly.com/3d.php
Des scripts pour vous aider avec vos courbes, et faire des poses

Aaron Koressel's scripts :  http://www.aaronkoressel.com/index.php?nav=tools
Encore du traitement de courbes, de tangentes, des outils pour améliorer le graph editor

Delete Flat Keys: http://www.riganimator.com/script-delete-flat-keys/ 

Measure Rig Perfs: http://www.riganimator.com/script-measure-rig-performance/

CharaSetup Scipts : http://www.charactersetup.com/scripts.html
Un Poser un Renamer, un custom PickWalk, des machins comme ça 

Subbu Adanki's : http://www.pythonscripting.com/downloads/1-maya-scripts/
ce mec est très bon, un autorig simple, un nameTracker, un motion trail editor perso. Des truc cools quoi.

Cloth:

km Cloth Gui http://kollaborativemedium.com/blog/2012/07/km-cloth-gui/

Tutos:

Blogs: