From BlenderWiki

Jump to: navigation, search
Blender3D FreeTip.gif
IMPORTANT! Do not update this page!
We have moved the Blender User Manual to a new location. Please do not update this page, as it will be locked soon.

Traduction effectuée d’après cette révision de la version anglaise.

NdT
La page originale souffre de quelques manques et incohérences… Désolé !


Simulation de tissu

Exemple de tissu.
Tissu sur une sculpture d’hommes en bois (réalisé par motorsep).
Exemple de tissu.

La simulation de tissu (cloth) est un des aspects les plus délicats du graphisme par ordinateur (CG), car il s’agit d’une chose qui nous semble acquise dans le monde réel, mais qui est bien plus compliquée qu’il ne le paraît, avec de fort complexes interactions, à la fois internes et avec l’environnement. Après des années de développement, Blender dispose d’un simulateur de tissu très robuste utilisé pour réaliser des vêtements, drapeaux, banderoles, et ainsi de suite. Le tissu interagit avec, et est affecté par, les autres objets en mouvement, le vent et les autres champs de force, ainsi qu’un modèle aérodynamique général, tout cela étant sous votre contrôle.

Description

Mode: Mode Object

Panneau: Contexte Editing → panneau Modifiers

Raccourci clavier: F7 pour passer au contexte Object ; à répéter pour changer de sous-contexte.

Un morceau de tissu est n’importe quel mesh, ouvert ou fermé, qui a été désigné comme Cloth. Les panneaux d’options Cloth sont situés dans le sous-contexte Physics, et sont au nombre de trois. Un mesh tissu, ouvert ou fermé, a une densité (poids par unité de surface) constante sur toute sa surface.

Un cloth est couramment modelé à partir d’une primitive mesh Grid, ou Cube, mais il peut également être, par exemple, un ours en peluche. Cependant, le système de corps souples de Blender fournit une meilleure solution pour la simulation des meshes fermés, massifs ; cloth est une simulation spécialisée dans les tissus !

Cloth est un modificateur dans la pile des modificateurs de l’objet, il peut donc interagir avec d’autres modificateurs, comme Armature et Smooth. Dans ce cas, la forme définitive du mesh est calculée en appliquant les modificateurs dans l’ordre de leur apparition dans la pile. Par exemple, vous devriez lisser (Smooth) le tissu après le calcul de la forme de ce tissu (Cloth).

Vous pouvez appliquer (Apply) le modificateur Cloth pour figer la forme du mesh à celle de l’image actuelle, ce qui enlève le modificateur. Par exemple, vous pouvez étendre un tissu plat au-dessus d’une table, laisser la simulation tourner, puis appliquer le modificateur : de cette façon, vous vous servez du simulateur de tissu simplement pour vous épargner pas mal de temps de modelage…

Les résultats de la simulation sont sauvegardés dans un cache, afin que la forme du mesh, une fois calculée pour une frame donnée de l’animation, n’ait pas besoin d’être recalculée de nouveau. Si des modifications sont apportées à la simulation, l’utilisateur a le contrôle total sur le nettoyage du cache et le re-calcul de la simulation. Le premier calcul de la simulation est complètement automatique, et aucune “cuisson” ou autre étape séparée ne vient interrompre votre processus de travail.

Les calculs de la forme du cloth à chaque image sont automatiques, et effectués en arrière-plan : vous pouvez donc continuer à travailler pendant ceux-ci. Cependant, ils sont gros consommateurs de puissance CPU et en fonction de la puissance de votre PC, et de la complexité de la simulation, l’occupation du processeur peut varier, ainsi que la réactivité de Blender (phénomène de “lag”, de saccades).

N’avancez pas trop vite
Si vous avez réglé une simulation de tissu, mais que Blender n’en a pas encore calculé les formes sur toute sa durée, et si vous avancez d’un coup de beaucoup de frames dans votre animation, le simulateur de tissu pourrait ne pas être capable de calculer ou vous montrer une forme valable du mesh pour la nouvelle frame, s’il n’a pas déjà calculé les formes des images précédentes.


Processus de travail

Voici les étapes générales pour travailler avec Cloth :

  1. Modélisez l’objet tissu dans sa forme générale de départ.
  2. Désignez l’objet comme Cloth, dans le sous-contexte Physics du contexte Object (F7).
  3. Modélisez les autres objets déflecteurs (obstacles) qui interagiront avec le cloth. Assurez-vous que le modificateur Deflection est le dernier dans la pile des modificateurs, après tout autre modificateur déformant le mesh.
  4. Éclairez la scène, assignez matériaux et textures (avec dépliage/placage UV si désiré).
  5. Si vous le souhaitez, vous pouvez donner à l’objet des particules, par exemple de la vapeur (tissu qui sèche, …).
  6. Lancez la simulation et ajustez les options pour obtenir des résultats satisfaisants. Les contrôles “magnétoscope” de la fenêtre Timeline sont très pratiques pour cette étape.
  7. De façon optionnelle, vous pouvez utiliser la forme du mesh dans une frame donnée comme nouvelle forme de départ pour la simulation.
  8. Effectuez de petites modifications sur le mesh, image par image,pour corriger les quelques petits problèmes qui pourraient subsister.


Options des panneaux “Cloth”

Panneau Cloth.
Panneau Cloth Collision.
Panneau Cloth Advanced.

Le tissu est contrôlé par les trois panneaux montrés ci-dessus. Chacune de leurs options (contrôles) est précisément décrite dans les références (en). Cette page discute de l’utilisation de ces options pour obtenir l’effet que vous souhaitez.

Activation du tissu

D’abord, activez Cloth. Réglez-le pour le type de tissu que vous voulez simuler. Vous pouvez choisir l’un des pré-réglages comme point de départ (Silk : soie ; Cotton : coton ; Rubber : caoutchouc ; Denim : jean ; et Leather : cuir).

Comme vous pouvez le constater, plus l’étoffe est lourde, plus elle est raide, moins elle s’étire, et moins elle est affecté par l’air ambiant.

Ensuite, positionnez et “épinglez” (“to pin”) le tissu aux positions désirées. Le pinning (épinglage) est décrit plus loin. Notez que si vous déplacez l’objet tissu après que vous avez lancé la simulation, vous devrez dé-protéger et nettoyer le cache ; sinon, Blender utilisera la position des vertices du mesh mis en cache quand il essayera de les afficher. Modifier la forme du mesh, après la simulation, est également décrit plus loin. Vous pourriez désactiver le cloth et éditer le mesh de façon classique.

Pour finir, utilisez le bouton de lecture de la Timeline, ou tapez AltA dans une vue 3D, pour prévisualiser la simulation. Votre tissu tombera et interagira avec les objets déflecteurs, comme il le ferait dans le monde réel.

Utiliser la simulation pour former/sculpter un Mesh

Vous pouvez appliquer (Apply) le modificateur Cloth à n’importe quel moment pour “geler”, figer le mesh dans sa forme à la frame courante. Vous pouvez ensuite ré-activer le tissu, en réglant les images de début et de fin pour couvrir le laps de temps à simuler.

Un autre exemple de ce “vieillissement” artificiel : un drapeau. Créez-le comme une simple grille (primitive Grid), et épinglez-en un côté à son mât. Lancez la simulation sur 50 images par exemple, et le drapeau se retrouvera tombant, dans sa position de repos. Appliquez le modificateur Cloth. Si vous voulez ensuite que votre drapeau s’anime dans le vent, réactivez sa simulation sur la durée où il se trouve dans le champ de la caméra.

Collisions

Dans la plupart des cas, un morceau de tissu ne flotte pas simplement comme ça, dans l’espace, il entre en collision avec d’autres objets de son environnement. Pour assurer une simulation correcte, il y a un certains nombre d’éléments qui doivent être réglés et travailler ensemble :

  1. L’objet cloth doit être réglé pour participer aux collisions.
  2. Éventuellement (mais c’est recommandé), réglez le tissu pour entrer en collision avec lui-même.
  3. Les autres objets doivent être visibles de l’objet cloth (via un calque commun).
  4. Les autres objets doivent être des meshes.
  5. Les autres objets peuvent se déplacer, ou être eux-même déformés par d’autres objets (armature, clefs de forme).
  6. Les autres objets doivent être réglés comme déflecteurs de tissu.
  7. Le fichier .blend doit être enregistré dans un dossier, pour que les résultats de la simulation puissent être sauvegardés.
  8. Vous pouvez alors “cuire” (Bake) la simulation. Le simulateur calcule la forme du mesh pour un ensemble de frames.
  9. Vous pouvez ensuite éditer les résultats de la simulation, ou réaliser des ajustements sur le mesh tissu, à des images précises.
  10. Vous pouvez aussi modifier l’environnement ou les objets “obstacles”, puis re-lancer la simulation de tissu à partir de l’image courante.


Collision de tissu

Panneau Cloth Collision.

Vous devez maintenant indiquer à l’objet cloth que vous voulez qu’il participe aux collisions. Pour cela, localisez le panneau Cloth Collision montré ci-contre :

Enable Collisions
Activez ce bouton pour indiquer à l’objet tissu qu’il doit entrer en collision avec les obstacles qu’il rencontre.
Min Distance
Dès qu’un autre objet s’approche plus du tissu que cette limite (valeur en Unités Blender), la simulation commencera à écarter le tissu de cet obstacle.
Collision Quality
Un réglage général de la qualité souhaitée des collisions dans la simulation. Un nombre plus haut réclame plus de temps de calcul, mais produira moins d’intersections et déchirures dans le tissu.
Friction
Le coefficient de friction du tissu, quand il entre en collision avec d’autres objets mesh. Par exemple, la soie glisse mieux que le coton : elle a donc une Friction plus faible.


Auto-collisions

Un vrai tissu ne peut se recouper lui-même, vous souhaiterez donc normalement activer la détection des auto-collisions.

Enable Selfcollisions
Activez ce bouton pour indiquer à l’objet cloth qu’il ne devrait pas se recouper. Cela allonge le temps de calcul, mais donne des résultats plus réalistes. Un drapeau vu de loin n’a pas besoin de cette option, mais un plan rapproché d’une cape ou d’un chemisier porté par un personnage devrait en bénéficier.
Min distance
Si vous rencontrez des problèmes, vous pourriez également modifier ce réglage (qui est l’équivalent pour l’auto-collision de son éponyme pour les collisions “extérieures” décrit précédemment). La meilleure valeur tourne autour de 0.75, pour accélérer les choses vous pouvez choisir 1.0. Une valeur de 0.5 est assez risquée (probablement beaucoup de recoupements) mais accélère également les calculs.
Selfcoll Quality
Pour une meilleure auto-collision, augmentez simplement ce réglage, et plus d’auto-collisions seront détectées/résolues. Gardez à l’esprit que ce réglage ne devrait pas dépasser la valeur de Collision Quality.

Fichier .blend de régression (de test) : auto-collisions de tissu.

Calques communs

Par exemple, supposons que vous ayez deux objets : un pantalon sur les calques 2 et 3, et votre personnage sur les calques 1 et 2. Vous avez activé le pantalon comme cloth, comme décrit ci-dessus. Vous devez maintenant rendre votre personnage “visible” par votre pantalon, de façon que quand le premier plie une jambe, il pousse, déforme le tissu du second. Ce principe est le même pour toutes les simulations : elles ne travaillent qu’avec les objets situés sur un même calque. Dans notre exemple, les deux objets partagent le calque 2.

Pour voir/modifier les calques d’un objet, cliquez RMB Template-RMB.png pour le sélectionner (en mode Object, dans une vue 3D). Faites M pour afficher le dialogue de déplacement des calques, qui vous montre tous les calques sur lesquels se trouve votre objet. Pour le (dé)placer sur un seul calque, cliquez simplement LMB Template-LMB.png sur le bouton correspondant. Pour le (dé)placer sur plusieurs calques, cliquez ⇧ ShiftLMB Template-LMB.png sur les boutons-calques souhaités. Pour enlever un objet d’un calque, cliquez de nouveau ⇧ ShiftLMB Template-LMB.png sur le bouton idoine.

Seuls les objets “mesh” participent aux collisions

Si un de vos objets déflecteurs n’est pas un mesh (c’est une surface NURBS, un objet texte, …), vous devez le convertir en un objet mesh. Pour ce faire, sélectionnez-le (en mode Object), et dans l’en-tête d’une vue 3D, faites Object → Convert Object Type... (AltC), et choisissez Mesh dans le menu qui apparaît.

Collisions Tissu – Objet

Réglages de collision.

L’objet cloth doit interagir avec d’autres objets déflecteurs. Afin de faire d’un objet un obstacle tangible pour un cloth, vous devez activer chez cet objet la collision avec les tissus : il doit devenir “collisionneur” (comme avec les corps souples).

Dans la fenêtre Buttons, contexte Object, sous-contexte Physics, localisez le panneau Collision montré ci-contre. Il est ici important de noter que ces réglages font de cet objet un déflecteur pour les objets du même calque, dans plusieurs simulations (particules, corps souples, et tissu).

Attention
Il y a trois panneau Collision différents, tous situés dans le sous-contexte Physics. Le premier (par défaut), en onglet sous le panneau Fields, est celui qui nous intéresse ici. Le second panneau, un onglet du groupe Soft Body, concerne les corps souples (et n’a donc rien à voir avec les tissus). Et nous avons déjà abordé le dernier, par défaut en onglet sous le panneau Cloth.


Pile des modificateurs de l’objet “obstacle”

Collision dans la pile.

C’est la forme de l’objet qui sert à déformer le tissu, la simulation de celui-ci doit donc avoir accès à la “vraie” forme du mesh obstacle à la frame courante. Cette vraie forme est construite à partir de la forme de base, modifiée par des clefs de formes, une armature… En conséquence, le modificateur Collision doit être placé après tous ceux-ci. L’image ci-contre vous montre le panneau Modifiers du mesh personnage (l’obstacle, pas l’objet tissu).

“Cuire” la simulation

Après “cuisson”.

Une fois que vous avez réglé le(s) mesh(es) déflecteur(s) (y compris son(leur) animation) pour l’ensemble d’images sur lequel vous avez l’intention d’effectuer la simulation, vous pouvez lancer celle-ci. Sélectionnez l’objet tissu et, dans les boutons Object → Physics, réglez les frames de début et de fin de la simulation, puis cliquez sur le bouton Bake.

Start
L’image de l’animation à laquelle vous voulez que la simulation démarre.
End
L’image de l’animation à laquelle vous voulez que la simulation s’arête. Le tissu restera “gelé” à partir de ce moment.
Bake
Démarre le pré-calcul (la “cuisson”) de la simulation.

Vous ne pouvez plus ensuite changer Start ou End sans nettoyer le cache de la simulation. Quand la “cuisson” de la simulation est terminée, vous noterez que vous pouvez la nettoyer, l’éditer et la re-lancer :

Free Bake
Efface la simulation, vous permettant de la modifier, avant de la re-lancer.
Bake Editing
Vous permet de protéger le cache et d’éviter que la simulation ne recalcule la forme du mesh (???). Vous pouvez ensuite éditer celle-ci manuellement.
Rebake From Current Frame
Vous permet de re-lancer la simulation de tissu à partir de l’image courante, jusqu’à End (en conservant les résultats du début, jusqu’à la frame actuelle).
Un tissu avec des réglages standards entrant en collision avec une sphère.


Modifier la simulation mise en cache

Le cache contient la forme du mesh pour chaque image. Vous pouvez éditer cette forme, une fois que vous avez “cuit” la simulation, et cliqué sur le bouton Bake Editing. Allez simplement à la frame où se situe l’erreur que vous voulez corriger, et passez en mode Edit (⇆ Tab). Vous pouvez alors déplacer les vertices, avec tous les outils que Blender met à votre disposition. Quand vous quittez le mode Edit, la nouvelle forme du mesh est enregistrée dans le cache pour cette image de l’animation. Si vous voulez que Blender relance la simulation à partir de cette forme corrigée, cliquez sur Rebake From Current Frame.

Éditez manuellement le mesh pour corriger les petites déchirures et les emplacements où les objets obstacles ont percé le tissu.

Si vous ajoutez, supprimez ou extrudez des vertices dans le mesh, Blender prendra ce nouveau mesh comme forme de départ, depuis l’image de départ jusqu’à celle où vous vous trouvez actuellement. Donc, si vous modifiez ainsi un mesh, quand vous quittez le mode Edit, vous devriez vider le cache pour que Blender puisse faire une simulation cohérente.

Problèmes

Si vous rencontrez des problèmes avec la détection de collision, il y a deux façons de les régler :

  • La solution la plus rapide serait d’augmenter le réglage Min Distance dans le panneau Cloth Collisions. Ce serait la façon la plus simple de résoudre le problème, mais ça donnerait des résultats moins précis, et moins “agréables”. Cette méthode tend en effet à faire “gonfler” le tissu, comme s’il était sur un coussin d’air…
  • La deuxième méthode est d’augmenter le réglage Quality (dans le panneau Cloth). Cela réduit la taille des étapes de la simulation et augmente donc la probabilité de capturer les collisions rapides. Vous pouvez aussi augmenter la Collision Quality pour effectuer plus d’itérations pour résoudre les collisions.
  • Si aucune des méthodes ne fonctionne, vous pouvez toujours aisément éditer les résultats mis en cache, en mode Edit.
  • Mon tissu est déchiqueté par un mesh déflecteur – il est transformé en épave…: Augmentez fortement la raideur structurelle (Structural Stiffness) du tissu, par exemple à 1000.
Modificateur Subsurf
Un cache est créé pour chacun des niveaux de subdivision, alors par pitié, utilisez le même niveau de subdivision pour le rendu et la prévisualisation.


Exemples

Pour débuter avec la simulation de tissu, la première chose dont vous ayez besoin, c’est évidemment de tissu ! Commencez donc par supprimer le cube par défaut, et ajoutez un plan. J’ai étiré le mien sur l’axe Y, mais vous n’êtes pas obligé d’en faire autant. Afin d’obtenir une étoffe bien flexible et souple, vous devrez le subdiviser plusieurs fois. Je l’ai fait huit fois pour notre exemple. Donc, passez en mode Edit (⇆ Tab), puis faites W → Subdivide multi, et réglez le nombre de subdivisions à 8. Nous allons maintenant faire de ce plan un tissu,en allant dans le contexte Object (F7), sous-contexte Physics. Cherchez le panneau Cloth, et activez le bouton Cloth. Un grand nombre de réglages apparaissent alors, nous en ignorerons la plupart pour l’instant.

C’est tout ce que vous avez à faire pour activer votre tissu à l’animation, mais si vous faites AltA, votre étoffe se contentera de tomber, de manière fort peu spectaculaire. Ce sont les points que nous allons couvrir dans les deux paragraphes suivants : épinglage et collisions.

Épinglage du tissu

Tissu en action.

La première chose dont vous ayez besoin quand vous voulez épingler (“to pin”) un tissu, c’est d’un groupe de vertices. Il y a différentes façons d’en créer, citons ici la peinture de poids (outil Weight Paint), pour peindre les zones que vous voulez épingler.

Une fois que vous avez créé votre vertex group, les choses sont assez simples, tout ce que vous avez à faire est de presser le bouton Pinning of cloth du panneau Cloth, et sélectionner le groupe de vertices que vous voulez utiliser, ainsi que la “raideur” de l’épinglage (Pin Stiff). Vous pouvez laisser ce dernier réglage à sa valeur par défaut, elle convient la plupart du temps.

Lissage de tissu

Maintenant, si vous avez suivi depuis le paragraphe précédent, votre tissu est probablement quelque peu anguleux. Afin qu’il soit (paraisse) bien lisse, doux, comme dans l’image, vous devez lui ajouter un modificateur Smooth et/ou Subsurf (panneau Modifiers, dans le contexte Editing F9). Puis, toujours dans le contexte Editing, cliquez sur le bouton Set Smooth (dans le panneau Links and Materials, le même que vous avez utilisé pour définir les groupes de vertices).

Maintenant, si vous tapez AltA, les choses commencent à être assez chouettes, non?

Tissu sur une armature

Un tissu déformé par une armature, et respectant en plus une collision supplémentaire avec un objet : fichier .blend de régression.

Utiliser du tissu comme corps souple

Utilisation de tissu comme corps souples.

Le simulateur de tissu peut aussi être utilisé pour simuler des corps souples. Ce n’est certes pas sa fonction première, mais cela fonctionne. L’image d’exemple ci-contre utilise les réglages Rubber (caoutchouc) standards, pas de “trucs” magiques, juste CtrlA.

Fichier .blend de l’exemple : Utilisation de tissu comme corps souples.

Tissu dans le vent

Drapeau claquant au vent.

Fichier .blend de régression (de test) pour le tissu avec vent et auto-collisions (ainsi que le .blend de l’image ci-dessus) : Drapeau de tissu, avec vent et auto-collisions.

Référence

Pour plus d’informations, consultez la page principale sur le développement du tissu dans Blender (en).