morphMap

0 Par arketip le 21 Jan 2009 - 19:18.

morphMap < télécharger > version 0.49b

Ce script a été téléchargé 4798 fois.

morphMap vous aide à mapper vos objets. Il peut suivre automatiquement des surfaces déformées, appliquer un face mapping sans erreurs et bien entendu modifer de nombreuses façons vos coordonnées de mapping UVW. Ses nombreuses fonctions en font un moyen idéal pour créer plus rapidement vos UVs, en particulier pour les modèles temps réel pour le jeu vidéo.

Il fonctionne avec des objets de type poly ou mesh.
Il est multi-selection: vous pouvez selectionner plusieurs objets simultanément ou même plusieurs groupes de faces dans un même objet (c'est la nouvelle option 'cluster').
L'interface est dockable à gauche et à droite.

Il est composé de 3 modules principaux :

  • la fonction 'morphMap'
  • la fonction 'Face Map' : une fonction évoluée de face mapping
  • un ensemble de fonction pour manipuler les UVs

Module morphMap

A l'origine ce module est la raison d'être de ce script: il est capable de placer une image sur un objet déformé en suivant son contour. Les coordonnées calculées se trouvent entièrement entre 0 et 1. Les UVWs résultants sont parfaitement carrés quelque soit la forme.

morphMapDemo1

Est-ce mathématiquement exact ?
Cela dépend de votre surface:

  • Si votre surface est plate et convexe, alors oui.
  • Si votre surface est non plate, le résultat sera une projection et seuls les contours seront exacts.
  • Si votre surface est concave, il existe des astuces pour contourner ce problème.

Avec une surface concave, c'est à dire une surface dont un des bords forme un 'Z' ou un 'S', il y a toujours moyen de la découper en plusieurs surfaces convexes et donc d'éviter le problème. Par exemple, une route en S pourra être mappée en plusieurs parties (voir exemples).

Visuellement vous voyez immédiatement si le résultat est correct ou pas. En cas de doute, vous pouvez également afficher la grille (show grid): si elle ne présente pas d'overlapping la solution devrait être valable.

Au départ, morphMap n'a pas été concu pour mapper des volumes. Cependant je me suis rendu compte qu'un petit nombre de surfaces présentant un volume particulier pouvaient également être mappées avec morphMap. Il s'agit des formes dont les bords sont identiques 2 à 2 (voir les exemples).

Module Face Mapping

Contrairement à la fonction de face mapping intégré au logiciel, morphMap mappera les faces d'une façon bien plus précise: il supporte parfaitement les faces à plus de 4 points et suit leur contour; et vous ne passerez plus du temps à réorienter les faces car il oriente les mappings dans des directions cohérentes !

Voici un exemple de Face Mapping sur une forme complexe.

  • Au dessus, le 'mauvais' résultat avec l'option standart 'Face' du modificateur de l'UVWmapping. Tout est en désordre... Les faces à plus de 4 points sont ne sont même pas mappées avec une technique de face mapping mais avec une simple projection dont l'orientation semble sans logique.
  • Au centre à droite vous pouvez voir le maillage que j'ai utilisé.
  • En dessous, le résultat en utilisant morphMap. Sur un mesh au centre. En bas à gauche encore un mesh mais en utilisant la visibilité des edges pour le considérer comme un poly (je vous conseille d'utiliser ça).
  • Et puis en bas à droite, c'est un véritable poly.

 

Face Mapping

Un mesh peut être mappé soit comme un ensemble de faces triangulaire, soit en le considérant comme un poly grâce à la visibilité des edges.

Il y a quelques options supplémentaires :

  • La capacité de tourner l'edge invisible de vos quads.
  • Pour les faces triangulaires, la fonction sk U/V (skew) permet de déplacer le sommet des triangles qui sont décallés.
  • La fonction T (turn) permet une rotation des UV sur les faces à 3 et 4 points


morphMapUtilisation:

  1. Sélectionnez la surface à mapper (un objet ou une sélection de faces).
  2. Quand c'est fait, cliquez sur 'morphMap' ou sur "Face Map".

Limitations connues:

  • Seuls les objets de type poly et mesh sont supportés.

Description des options:

General Properties

  • work on channel : le channel UV sur lequel le script agit.
  • use previous unwrap: lorsque c'est possible, il réutilisera le modifier unwrap déja présent en haut de la pile.
  • convert to polys: convertit les objets en editable poly. Pas d'undo.

Selection Level

  • selection level : le script agit soit sur l'objet soit sur une sélection de faces. En mode 'Auto', le script choisira le mode face si vous êtes en mode face. L'option 'Clusters' permet de travailler avec des groupes de faces.

morphMap

  • corners recognition: en mode automatique, le script cherchera lui-même les 4 coins de la surface. S'il se trompe vous pouvez selectionner ces 4 points à la main. Ces points doivent se trouver sur le bord du contour sélectionné.
  • show corners/show grid/nothing to show : par défaut le programme entoure les 4 coins d'un cercle. Vous pouvez également demander d'afficher la grille.
  • aspect : gère le tilling automatique des uvw. 'full UV': pas de tiling. 'square UV': garde un aspect carré à votre mapping. 'whole square UV' : garde un aspect carré mais s'arrange pour ne créer que des uv entier.
  • morphMap : lance la routine pour créer les coordonnées de mapping.

Faces Manipulation

  • Face Map : mappe chaque face séparément
  • poly (on/off) : permet de traiter un mesh au niveau polygonal. Cette option n'a pas d'effet sur un poly.
  • Proj (on/off) :  si actif les faces arrières auront la même orientation que les faces avants. C'est une projection.
  • "T" (turn) : tourne le tableau des coordonnées de mapping des faces à 3 ou 4 points.
  • quadE 'S' (show) : montre/cache les edges invisibles.
  • quadE 'Turn' : tourne les edges invisible des faces sélectionnées.

UVW Modifications

  • 0-1 : normalise les UVs entre 0 et 1. C'est la bounding box des UVs qui sera normalisée, pour une réelle déformation il faut utiliser morphMap.
  • oundoff : arrondi les UVs non-entiers de façon à ce que le tiling devienne une valeur entière. Par ex. si votre image se répète 2.8 fois, il arrondira à 3
  • one : modifie le tiling du plus petit axe à 1 tout en gardant l'aspect des UVs.
  • W=0 : met la coordonnée W des UV à zéro.
  • Tile (U,V) : modifie le tiling de vos UVs. 1.0 = 100%, 2.0=200%, 0.5=50%
  • Tile (U,V) : '2' et '3' sont des valeurs prédéfinies.
  • offset (U,V) : déplace vos UVs
  • Flip (U,V) : crée un mirroir sur l'axe souhaité.
  • axis : vous pouvez fixer l'axe au point zéro ou au centre de la selection.
  • rotations : +30, +45, -90,+90,180, +20, +10, free : fait une rotation de vos Uvs.
  • UVWmap : ajoute un modificateur UVWmapping.
  • Unwrap : ajoute un modificateur Unwrap.
  • collap : collapse la pile des modificateurs.

Historique des versions:

0.49b - accepte les primitives (sans garanties) / accepte les mesh illégaux pour la fonction 'Face Map'
0.48b - multiselection / interface dockable / face mapping évolué / ....
0.28b - interface plus compacte / l'option "convert to" s'adapte au type d'objet ( évite un bug de convertion avec 3DSmax 8 si vous partez d'un mesh ) / pas d'action si aucune face n'est selectionnée en mode face
0.25b - si "convert to polys" est coché alors morphMap retourne en mode face quand c'est nécessaire
0.24b - le symbole " ° " des functions de rotation est enlévé
0.23b - ajout d'un undo utilisable.
0.22b - ajout d'un avertissement s'il n'y a aucun contour.
0.21b - première version.

Installation du macroscript:

L'installation est identique à celle conseillée dans la documentation pour tout macroscript. Procédez comme suit:

  1. Cliquez sur MAXScript dans le menu principal, choisissez 'Run Script'...
  2. Cherchez et sélectionnez le script et appuyez sur 'Open'
  3. Allez dans Customize > Customize User Interface et sélectionnez la catégorie désirée (Clavier, Barre d'outil, Quad ou menu)
  4. Trouvez la catégorie 'UVWtoolBox' dans le group 'Main UI'
  5. Cherchez dans cette catégorie après le nom 'morphMap'
  6. Faites Glisser le script vers une barre d'outils, un Menu, un QuadMenu ou assignez un raccourci clavier

Exemple de formes acceptées:

morphMapDemo2

Les formes courantes tels que les carrés, les rectangles déformées, les anneaux ouverts sont acceptés sans problème.

Chose amusante, le script fonctionne aussi avec un cercle. Dans l'espace UV le cercle est déformé régulièrement jusqu'à devenir un carré sur les bords.

La surface verticale montre un cas où le script fonctionne avec un volume. Le mur possède deux bords opposés semblables. C'est le seul cas où cela peut fonctionner correctement avec un volume.


Exemple des limitations actuelles sur les volumes:

morphMap-volumeError

La grille uv est crée en utilisant les bords, pas la surface. C'est pourquoi cela ne donne pas un résultat idéal avec un volume.


Exemple avec une forme concave : une route

morphMapDemo03

A priori cette forme présente 2 bords en S et ne peut donc être mappée directement avec morphMap. Si vous affichez la grille, elle présente de l'overlapping. L'astuce consiste à mapper la route en 4 parties :


morphMapDemo3steps

Chaque tournant est mappé séparément. Il sera sans doute néccessaire de tourner certains mapping pour l'unité de l'ensemble. Utilisez les fonctions de rotations. (astuce: forcez le mode face, c'est plus facile)


morphMap-steps

Cette dernière image montre pourquoi la route doit être mappée en plusieures étapes.


Si vous rencontrez des erreurs ou des problèmes qui m'ont échappés, laissez-moi un commentaire ou envoyez-moi un message via la page de contact.
Toutes les suggestions seront les bienvenues.

 

retour au blog


line


Vos commentaires:


Write a comment

  • Required fields are marked with *.

If you have trouble reading the code, click on the code itself to generate a new random code.
Security Code: