[:arrow_left:](/WQum2tYYSXGaBjnU2wMxzQ) To Pirata Dashboard [:arrow_left:](/FQqugZ49RLOLDOdm0Z1GlQ?both) To TD Dashboard [:arrow_left:](/HBtOe6opROO2deKL9wqT7w) To Modeling Dashboard # **Wiki : Detect Sym Auto** Tool Modeling ###### tags: `TD` `Modeling` `Notice` *Shelf -> MMUTILS -> detect_sym_auto* Détail des fonctions: ![](https://i.imgur.com/d2VHoCl.png) ## 1- Reinit scene Réinitialise la scène: - Enlève les couleurs des meshes - Enleve le smooth - Supprime les sets de sélections :::info ## Il faut systématiquement réinitialiser la scène si vous faites plusieurs fois les opérations, et avant tout publish. ::: ## 2- All functions :::info Cela lance toutes les étapes du script, à savoir: **réinit scene(1), find pairs (3), find self sym (4), rename meshes (5).** ::: Résultat: ![](https://i.imgur.com/d6A7Eli.png) - Les meshes ont été colorisés par catégorie: - Rouge pour symétrique sur lui même détecté par le script (1) - D'une couleur random pour les objets formant une paire détectée par le script (2) - Couleur de base de maya pour les objets étant détectés comme unique (4) par le script (non symétrique, et non inclus dans une paire). - Des sets de sélection ont été crées pour chaque catégorie (voir *lancement des fonctions une à une*). - Des meshes / Groupes ont été renommés par rapport aux résultats énoncés précemment. ::: info ### Suite au run de all functions, il faut analyser les catégories, c'est-à-dire les vérifier grâce aux sets de sélection, et que les nomenclatures sont correctes. ::: ---- # Lancement des fonctions une à une ## 3- Find pairs Permet de relancer la vérification des paires. Compare tous les meshes de la scène afin de vérifier s'ils ont: - Le même nombre de composants (faces, vertex, edges) - La même aire c'est-à-dire la même mesure de surface - Si le centre des deux objets sont identiques (valeur absolue) - Les mêmes angles de vertex (afin de vérifier le maillage) Si tous ces critères sont remplis, les meshes sont teintés de la même couleur, et rajoutés au set de sélection **CTRL_MATCH_SYMETRY**. ## 4- Find self sym Permet de lancer la vérification des meshes qui seraient symétriques sur X. (sur eux-mêmes) . :::warning Il faut que le mesh soit centré en X à 0 en world. ::: - Compare la position des vertex d'un côté positif à un côté négatif (par rapport au world). - Compare les angles des vertex. Si tous ces critères sont remplis, le mesh est **teinté en rouge** et stocké dans un set de selection **CTRL_C**. :::success #### Si à l'issue du test, le script retourne un résultat positif sur un mesh, mais que ce dernier n'est pas nomenclaturé en C_, le mesh est stocké dans un set de sélection **CTRL_POTENTIAL_SELF_SYM**. ::: Exemple: ![](https://i.imgur.com/8CCL9t6.png) *U_Controller01003Msh* Ce mesh n'est pas centré alors qu'il devrait l'être, égalemment nomenclaturé en U_ alors qu'il devrait être en C_. Après correction de la modé, après reinit scene et find self sym, le script le trouve dans la bonne catégorie et le renomera correctement. ## 5- Rename meshes Lance les opérations de rename. Sont nomenclaturé comme suit: - Les meshes uniques en terme de symétrie sont nomenclaturés **U_**. - Les meshes allant par paire en X sont nomenclaturé **L_ et R_**. - Les meshes symétriques sur eux-même en X sont nomenclaturés **C_**. - Les groupes sont nomenclaturés de la même façon mais prennent en compte les nomenclatures des enfants à l'intérieur: - Si un U_ est dans un groupe, le groupe devient automatiquement **U_**. - S'il n'y a que des L_: le groupe est **L_**. - S'il n'y a que des R_: le groupe est **R_**. - S'il y a des R_ + L_ : le group est **C_**. ---- ## *FAQ* ***Que faire si mon mesh n'est pas dans le bon set de sélection?*** Est-il centré? Est-il symétrique? :::danger Vous ne pouvez pas vous fier au visuel, les symétries ne sont pas fiables. Il faut: - Duppliquer le mesh et mettre un scale -1 en X pour vérifier si les vertex sont bien symétriques. - Recentrer l'objet (voir tool recenter object). Ce n'est pas parce que le mesh est freeze transform qu'il est centré, des valeurs en 0.01 (oui oui...) ou 0.5 traînent. ::: Quelques exemples du contenu des scènes: ![](https://i.imgur.com/z6Czzsh.png) ![](https://i.imgur.com/5fkBud7.png) ![](https://i.imgur.com/P2UDwL9.png) ![](https://i.imgur.com/OIhUQXU.png) ***Que faire si ma nomenclature n'est pas correcte?*** L'objet est-il dans le bon set de sélection? - Si oui : - Si le script a été lancé fonction par fonction, la fonction rename ou run all functions le nomenclaturera avec le bon nom. - Si non: - L'objet doit être corrigé pour appartenir à la bonne catégorie. Une fois l'objet corrigé, il faut reinit et relancer run all functions. ***Que faire si le script a renommé mon mesh d'une mauvaise façon?*** Pourquoi l'a-t-il fait? (voir question 1) Si l'objet n'est pas dans la bonne catéogorie, il doit être corrigé et les fonctions relancées. --- *Pour tout report de bug: s.chauvet@millimages.com*