PDA

Voir la version complète : Changer le matériau d'une propriété Texture en Coffee



César Vonc
05/03/2011, 17h42
Bonjour.

Pour récupérer le matériau de la propriété Texture d'un objet, je fais :


main(doc,op)
{
var propTex = op->GetFirstTag();
var mat = propTex#TEXTURETAG_MATERIAL;

println(mat->GetName()); // J'affiche son nom
}

Tout marche bien, le nom du matériau est bien affiché, mais dès que je lance un rendu dans le visualisateur, ça merde !
L'erreur « Invalid description ID for object » s'affiche dans la console, concernant la 4ème ligne...


Quelqu'un a-t-il une idée pour résoudre ce curieux problème visiblement lié au rendu ?


J'opère dans C4D 11.5.

oli_d
05/03/2011, 18h21
Il me semble déjà avoir eu ce genre de problème, c4d fait un clone du doc pour le rendu, et il doit rajouter un ou des tags sur les objets.

Quoi qu'il en soit c'est toujours mieux de vérifier le type avant d'aller chercher une donnée, ce code devrait mieux fonctionner, il parcourt tous les tags de l'objet et imprime que s'il tombe sur un tag de type texture :


main(doc,op)
{
var tg = op->GetFirstTag();
while(tg)
{
if( instanceof(tg,TextureTag))
println(tg#TEXTURETAG_MATERIAL->GetName());
tg = tg->GetNext();
}
}

César Vonc
05/03/2011, 19h05
Parfait, merci !