Script Cycle pour changer la couleur d'un objet dans le Viewport
Touriste
Inscrit:
05/07/2017 10:23
Post(s): 13
Bonjour,

Je suis nouveau sur le Blender Clan, je suis actuellement en stage pour mes études d’informatique, et je cherche à créer des scripts sur Blender qui permettent de simplifier des tâches répétitives.
Je suis bloqué sur un script.
L’objectif est le suivant :

-Dans cycle, on sélectionne un objet possédant un matériel avec une couleur (Celle dans surface, qui ne s’affiche pas dans le viewport)



-Puis en lançant le script cette couleur va être assigner à la « Viewport Color »



Je ne sais pas comment m’y prendre pour le réaliser, je cherche donc des pistes.

Merci d’avance !

Contribution le : 06/07/2017 16:46
Créer un fichier PDF de la contribution Imprimer


Re: Script Cycle pour changer la couleur d'un objet dans le Viewport
OverdOzed
Inscrit:
08/10/2003 09:20
De Annecy
Post(s): 2825
Salut,

Dans blender, tout est accessible par un "import bpy" en première ligne.
Si tu passes ta souris par dessus la couleur viewport, tu verras l'input python associé.

La doc python indispensable:
https://docs.blender.org/api/blender_python_api_2_78c_release/bpy.types.Material.html#bpy.types.Material


Tu as aussi l'en tête qui affiche les commandes exécutés par l'utilisateur: tire la barre supérieure (File, Render, Window, Help) vers le bas.

import bpy

mat = bpy.context.object.active_material
mat.diffuse_color = [0.5,0.5,0.5]

Contribution le : 06/07/2017 17:43
_________________
lucky
www.lucky3d.fr
Auto-Rig Pro Addon: Blender Market - GumRoad
Créer un fichier PDF de la contribution Imprimer


Re: Script Cycle pour changer la couleur d'un objet dans le Viewport
Touriste
Inscrit:
05/07/2017 10:23
Post(s): 13
Je vous remercie pour votre réponse mais je n'ai pas encore trouvé la solution,


Lorsque je change la couleur du viewport, l'entête m'affiche :

bpy.context.object.active_material.diffuse_color = (0.5,0.5,0.5)

et lorsque je change la couleur de la surface (Diffuse BSDF) l,'entête m'affiche:

bpy.data.node_groups["Shader Nodetree"].nodes["Diffuse BSDF"].inputs[0].default_value = (0.0517146, 0.8, 0.0176235, 1)


Il y a donc 4 valeurs au lieu de 3, je cherche donc a sortir les 3 premières valeurs afin de les assigner à la diffuse_color

Je ne vois pas comment y parvenir,

merci pour votre aide !

Contribution le : 07/07/2017 13:55
Créer un fichier PDF de la contribution Imprimer


Re: Script Cycle pour changer la couleur d'un objet dans le Viewport
OverdOzed
Inscrit:
08/10/2003 09:20
De Annecy
Post(s): 2825
Par le bpy.context, tu dois pouvoir accéder au node de l'objet sélectionné:
https://docs.blender.org/api/blender_python_api_2_78c_release/bpy.context.html?highlight=context#module-bpy.context

Pour récupérer seulement les 3 première valeurs (et pas la channel alpha qui est la 4ème, non utilisée pour la couleur viewport) tu peux utiliser cette syntaxe:
color_viewport = [color_node[0], color_node[1], color_node[2]]

Pas le temps de tester dans l'immédiat désolé mais ça devrait fonctionner.

Contribution le : 07/07/2017 15:15
_________________
lucky
www.lucky3d.fr
Auto-Rig Pro Addon: Blender Market - GumRoad
Créer un fichier PDF de la contribution Imprimer


Re: Script Cycle pour changer la couleur d'un objet dans le Viewport
Touriste
Inscrit:
05/07/2017 10:23
Post(s): 13
J'ai essayé le code suivant :


import bpy

mat = bpy.context.object.active_material
color_viewport = [color_node[0], color_node[1], color_node[2]]
mat.diffuse_color = color_viewport


ai-je oublié quelque chose d'important?

Il m'affiche les 2 erreurs suivantes :

Traceback (most recent call last):
File "<blender_console>", line 1, in <module>
NameError: name 'color_node' is not defined

ou

Traceback (most recent call last):
File "<blender_console>", line 1, in <module>
NameError: name 'color_viewport' is not defined

Contribution le : 07/07/2017 16:12
Créer un fichier PDF de la contribution Imprimer


Re: Script Cycle pour changer la couleur d'un objet dans le Viewport
OverdOzed
Inscrit:
08/10/2003 09:20
De Annecy
Post(s): 2825
Alors, voilà le code qui marche:

import bpy

print('\nAssign viewport color')

mat = bpy.context.object.active_material# recupere le materiaux actif dans la variable 'mat'
nodes = mat.node_tree.nodes#acces au nodes du materiaux

for node in nodes:#on va cherche le node diffuse dans les nodes
    if 'Diffuse' in node.name:        
        print(node.inputs[0])
        material_color = node.inputs[0].default_value#on recupere la couleur de l'input[0] dans une variable

mat.diffuse_color = (material_color[0], material_color[1], material_color[2])
        

        

Contribution le : 07/07/2017 16:22
_________________
lucky
www.lucky3d.fr
Auto-Rig Pro Addon: Blender Market - GumRoad
Créer un fichier PDF de la contribution Imprimer


Re: Script Cycle pour changer la couleur d'un objet dans le Viewport
Touriste
Inscrit:
05/07/2017 10:23
Post(s): 13
Genial ! Merci beaucoup !

Contribution le : 07/07/2017 16:28
Créer un fichier PDF de la contribution Imprimer


Re: Script Cycle pour changer la couleur d'un objet dans le Viewport
OverdOzed
Inscrit:
08/10/2003 09:20
De Annecy
Post(s): 2825
N'oublie pas les balises [ code ]le code ici[ /code ] (sans les espaces entre les crochets et code), c'est indispensable pour voir les indentions correctement.

Contribution le : 07/07/2017 16:28
_________________
lucky
www.lucky3d.fr
Auto-Rig Pro Addon: Blender Market - GumRoad
Créer un fichier PDF de la contribution Imprimer


Re: Script Cycle pour changer la couleur d'un objet dans le Viewport
Touriste
Inscrit:
05/07/2017 10:23
Post(s): 13
Vous m'avez sauvé mon week-end merci beaucoup !

et d'accord merci !

Contribution le : 07/07/2017 16:35
Créer un fichier PDF de la contribution Imprimer


Re: Script Cycle pour changer la couleur d'un objet dans le Viewport
OverdOzed
Inscrit:
08/10/2003 09:20
De Annecy
Post(s): 2825
Pas de soucis! Bon week end alors.

Contribution le : 07/07/2017 16:57
_________________
lucky
www.lucky3d.fr
Auto-Rig Pro Addon: Blender Market - GumRoad
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
Compte*
Nom   Mot de passe   Authentification
Message:*



[Recherche avancée]



Sujets récemment répondus
Forums Sujets Réponses Lus Dernières contributions
[WIP] et travaux terminés [terminé] Chaussures Très Réalistes (.bend disponible) 3 38 Aujourd'hui 05:00:16
moonboots 
Mes premières images sous Blender (débutants) Première réalisation    [1][2] 15 8882 Aujourd'hui 02:13:26
Talason 
The Blender Clan 'tchat Addon convertisseur d'images en courbes 2 34 Hier 20:29:31
Rimpotche 
[WIP] et travaux terminés [WIP] Scène de Pti dej à la Française - EVEE a donf - 2.9 Blender 4 69 Hier 19:55:33
meltingman 
The Blender Clan 'tchat Pour les arboriculteurs 3D 1 39 Hier 18:05:18
moonboots 
Hors Sujet !! Faire parler son personnage en 5 minutes - tutoriel Francais - Blender 2.9 4 78 Hier 13:03:28
meltingman 
GIMP Faire un drégradé selon la forme sous gimp 9 68 Hier 12:49:57
Thewada 
Questions & Réponses [résolu] Perte des Vertex lors d'un Separate 7 69 21/10 21:45:05
debutant 
[WIP] et travaux terminés [terminé] Pantin articulé    [1][2] 12 6696 21/10 18:53:51
meltingman 
Questions & Réponses hdri en mode ombrage 1 66 20/10 21:14:15
moonboots 
[WIP] et travaux terminés Moderno 404    [1][2] 11 403 20/10 15:53:21
Rimpotche 
Hors Sujet !! Une citrouille en 13 clics - Tutoriel - Blender 2.9 2 136 19/10 23:40:15
meltingman 
Hors Sujet !! un banc de dauphin - tutoriel - workflow sculpte > bake - 2.9    [1][2] 12 410 19/10 23:36:41
meltingman 
Questions & Réponses [résolu] Particule réaliste pour un sprite    [1][2] 12 639 19/10 13:39:34
Redstar 
Questions & Réponses Eevee : chevauchements en profondeur 4 167 19/10 11:46:51
meltingman 
Questions & Réponses Dans Blender 2.9, rendre une animation avec seulement la réflexion    [1][2] 16 548 19/10 11:08:45
ludo66 
Questions & Réponses Besoin de vos retours ici sur les changements 2.9    [1][2][3] 20 583 18/10 16:02:23
meltingman 
The Blender Clan 'tchat Moniteur endommagé 2 347 18/10 11:59:42
Rimpotche 
The Blender Clan 'tchat Architecture / squelette du futur BC2.0    [1][2][3]...[5] 42 1137 18/10 10:38:14
WinZs 
Moteur de jeu GameBlender et alternatives [WIP] Jeu "Iron Man Collapsing"    [1][2][3][4] 30 12288 17/10 16:05:54
timeman13 

Qui est en ligne
155 utilisateur(s) en ligne (dont 80 sur Forums)

Membre(s): 0
Invité(s): 155


plus...
Nouveaux membres
BeatrizSol 23/10/2020
JorjaArred 23/10/2020
MatthiasHo 23/10/2020
Talason 23/10/2020
KrystynaKr 23/10/2020
Romaine198 23/10/2020
MerryMeado 22/10/2020
VonB53421 22/10/2020
MarjorieCa 22/10/2020
Latisha86Z 22/10/2020
Dernier Ajout
mirages-preview~0.jpg

Evènements à venir
Nov 18
Anniversaire de RichDeg
Dec 29
Anniversaire d'ebrain
Jan 9
BUG de Lyon
plus 264 plus d'élément(s)
 Par Mickaël Guédon [ebrain] © 2003-2020 The Blender Clan - hébergé par TuxFamily - Site déclaré à la CNIL sous le numéro 1155445