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...
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;
}
Je suis en train de fouiller mais je galère à trouver la bonne manière d'animer ces paramètres...
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