Material Remplace , Hiearchy from View Layer ,Select Double

Posted Leave a commentPosted in Blender, Mes Scripts

Présentation des mes scripts

En apprenant blender je me suis dit de faire aussi le saut dans le python.

Belle décision, en production j’ai eu des réels besoins de scripts pour remédier à des problématiques réelles, concrète.

J’ai donc réalisé des choses fonctionnelle en fonction de mes besoin et dans l’optique de réorganiser ça par la suite j’ai pris des notes de l’avancement et des besoins rencontrés au fur et à mesure de mes accomplissement.

MaterialAsignementUtils.py

Ce script permet de remplacer un material par un autre sur tout les objets de la scene. Il le fait en fonctions des slots materials des objets. Ce qui permet de ne pas remplacer d’autres materials asigné à cet objet.

Dans ce cas precis

Material replace = Le matérial que je veux

Material to replace = Le matérial à remplacer

Tout mes Metal_Copper vont se faire remplacer par mon Aeration_grid

Pour choisir des matériaux, tout ces derniers sont organisé par ordre alphabétique dans une liste.

Bonus : J’ai aussi implémenté un bouton qui vas mettre un backface sur tout les matériaux, étant donné que blender l’à retiré de ses options dans le viewport shading dans la version que j’utilise.

Aussi Maintenant il est possible de remplacer les matériaux en passant par l’outliner > blender file et faire un remap, mais ça reste plus de clique à faire. (et à l’époque ou j’ai fait ce script, ça ne marchait pas).

CollectionToHierarchy.py

Attention: Toujours en développement

Collection to hierarchy permet d’organiser avec des empty une hiérarchie similaire à celle faites grâces aux collections. Dans un export vers unity ça reste sympa d’avoir un fichier lisible.

D’ailleur le système de parenté d’objet de blender n’est pas tout à fait au point et c’est pourquoi ce script est un réel time-saver.

Si des objets sont parentés… Pas de soucis seul le parent sera assigné à un nouvel emplacement et ses enfants le suivrons tout en gardant cette parenté.

Attention : toutes les collections doivent être visible, les duplicate-instance vont poser des soucis !

Voilà un exemple avec des cubes :

Dans mon view layer

Dans l’outliner Scène

Exécution du script

Et voilà.

Problème connu :

  • Les instance mesh peuvent poser des problème
  • Si les view layer sont caché alors le script ne fonctionnera pas

SelDoubleMesh.py

Un missclick , une fausse opération, et vos mesh se sont dédoublé, mais superposé vous ne voyez pas qui est qui !

Sel double vient sélectionner tous les malencontreux objets qui serait l’un sur l’autre.

Pour ce faire, Il fait une liste de chaque objets en prenant

  • Le nombre de vertex de l’objet
  • La position par vertex dans un espace world
  • Additionne les position

Si un objet à le même nombre de vertex et la même addition de position de vertex. Alors c’est un double ! Et on le selection, pour le supprimer ou le réorganiser ailleur.

Projet futurs

MaterialAsignementUtilsLinkedMat.py

Si, on ajoute une biliotheque de linked material, et qu’un material-non linked à le même nom que ces dernier alors qu’ils se convertissent en ce denier.

Add-on et UV-Set Utils

Créer une interface pour tous mes scripts dans un panel bien à lui sur un deuxième écrans.

Vérifier que je respecte la convention <Pep8> Partager ça avec la communauté pour quelques retour et publier mon petit add-on.

Avec quelques outils commencé pour les uv, je vais me faire un petit set qui va m’indiquer si mes objets ont des uv set de nom differents. et à quel index pour reorganiser tout ça et garder une belle unité entre les lightmap uv et les uv normaux, ainsi que les pivot-Painter uv