Salut salut,
J’essaie d’accéder à l’opacité du canal alpha d’une texture sur un de mes objet avec Python mais je tourne en rond...
Je n’arrive pas à comprendre comment rentrer dans le canal puis ensuite dans l’opacité de la couleur...
Ensuite je voudrais faire varier le paramètre doucement dans le temps, de 0 à 100 et de 100 à 0 en boucle.
Est ce que quelqu’un pourrais m’expliquer comment faire ?
Merci
Envoyé de mon iPhone en utilisant Tapatalk
Bonjour,
Voici comment je procéderais :
- je créé un objet neutre (mon controleur)
- je lui applique un tag Xpresso et j'affiche la fenêtre xpresso
- je vais dans les paramètres Alpha de ma matière
- dans le canal texture je met une "couleur"
- je prend la carré blanc qui représente ma couleur et je le jette dans ma fenêtre xpresso
- En entrée de ce noeud xpresso je choisis "caractéristique de la matière" - "intensité"
Ensuite deux possibiltés pour controler ce paramètre :
- soit tu crées un noeud python dont la sortie est reliée à l'intensité
- soit, plus simple, tu crées une Donnée Utilisateur sur ton neutre, puis tu la relies à ton paramètre intensité. Tu pourras ensuite l'animer avec des images clefs ou autre...
Voilà j'espère que ça t'aide...
Salut Juk,
Merci pour ta réponse, mais je voudrais le faire entièrement en Python, sans passer par Xpresso.
Je cherche le moyen de faire varier l'intensité [c4d.COLORSHADER_BRIGHTNESS] basé sur le temps ou les images clés.
Je vais essayé d'expliqué :
j'ai créer un matériau avec un canal LUMINESCENCE et j'ai ajouté un canal ALPHA de couleur blanc. Je voudrais accéder à l'ENFANT de ce canal, c'est à dire " Alpha > Texture > Intensité " et pouvoir varier l'intensité de 0 à 100 % défini sur un nombre d'image clés par exemple.
En fait l'idée c'est de faire apparaitre et disparaitre un éléments de manière
J'avais un petit bout de code en Coffee qui fonctionné à l'époque mais qui n'est plus fonctionnel aujourd'hui, je penses que ça donnera l'idée...
Mise à part que pour le coup ici on touché à une lumière...
Je suis en train de fouiller mais je galère à trouver la bonne manière d'animer ces paramètres...Code:main(doc,op) { var pp = FALSE; // Progression Allumage var pm = TRUE; // Progression Extinction var mod = 10; // Frequence var period = 4; // Periode var lightMax = 100; // Intensite maximale var t = doc->GetTime(); var f = t->GetFrame(doc->GetFps()); var i; var light = 0; lightMax /= 100.0; for(i=0;i<period;i++) { if((f%mod)%(mod+i)<period) { if(pm) light = lightMax-((f%mod)%(mod+i)*(lightMax/period)); else light = lightMax; } else if(!light) { if(pp) light = ((f%mod)%(mod+i)-period)*(lightMax/(mod-period)); else light = 0; } } op#LIGHT_BRIGHTNESS = light; }
Code:import c4d import random import math def main(): # Objet qui contient le TAG Python (print pour afficher son nom) obj = op.GetObject() print op.GetObject().GetName() # Image active frame = doc.GetTime().GetFrame(doc.GetFps()) # Ici je souhiates accéder ici : obj[c4d.MATERIAL_USE_ALPHA][c4d.MATERIAL_ALPHA_SHADER][c4d.MATERIAL_COLOR_BRIGHTNESS] = 0
Dernière modification par darsanha ; 18/04/2020 à 09h52.
Ha oui d'accord j'avais mal compris.
Bon du coup ça dépasse largement mes connaissances !
Je laisse les vrais répondre !
Ok Juk !
Merci quand même
Envoyé de mon iPhone en utilisant Tapatalk
Re-Salut Juk,
Vue que je n'arrive pas à avoir d'info, je commence à le faire en Xpresso, comme tu me le conseil.
J'ai une petite question supplémentaire, j'utilise donc la couleur de l'alpha pour faire disparaitre l'objet dans ma scène.
Ça fonctionne trés bien dans le viewport, par contre au rendu j'ai toujours mon objet visible... Mais pourquoi ?
Tu as une idée ?
Merci
Ça y est c'est réglé, une petite erreur de ma part...
Désolé
Sinon j'utilise parfois un tag Affichage et je joue sur la propriété "visibilité" pour faire des fondus d'objets, quelle que soit la matière appliquée dessus...
Par contre là ça ne marche que dans le rendu, on ne le voit pas dans le viewport (à part quand la visibilité est à zéro, l'objet disparait)...
Merci Juk !
Je me souvient avoir déjà fais ce que tu me propose. Merci encore pour l’idée mais j’ai entre temps réussi à faire ce que je voulais
Envoyé de mon iPhone en utilisant Tapatalk