Majoul
06/03/2004, 22h41
Salut à tous
Voici un petit astuce pour les débutants comme moi qui veulent accéder au paramètres des objets C4D avec un nœud coffee.
Comment accéder à ces paramètres sans être obliger de passer par la documentation du Coffee, qui pour la majorité des utilisateurs est un casse tête.
L’astuce c'est qu'on accéde aux paramètres par l’intermédiaire d’une simple expression Xpressso.
Le fichier ci joint ici (http://perso.wanadoo.fr/archizone/DIVERS/coffee1/parametres.c4d)
Les données utilisateur de l’xpresso :
http://perso.wanadoo.fr/archizone/DIVERS/coffee1/ima1.jpg
Le principe est très simple :
on place un objet dans le lien objet « ici comme exemple une primitive cube » et on observe :
http://perso.wanadoo.fr/archizone/DIVERS/coffee1/ima2.jpg
donc pour L’id = 0 on accède à la Taille du cube
maintenant par exemple on va chercher l’id qui correspond à la segmentation en X, on donne une valeur segments x = 3 et on défile les valeurs de « mon Id » dans les DU de l’Xpresso on aperçois qu’ à la valeur de « mon Id » = 4 l’index data = 3, pour faire une vérification modifier la valeur segments x du cube et voir ci la valeur de l’index data change.
http://perso.wanadoo.fr/archizone/DIVERS/coffee1/ima3.jpg
donc l’Id = 4 correspond bien à la segmentation x.
Remarque pour une valeur d’Id supérieur a 7 l’info id marque « l’id n’existe pas » c’est normal puisque notre cube n’a que 8 Id de 0 à 7
http://perso.wanadoo.fr/archizone/DIVERS/coffee1/ima4.jpg
Le but de cette manipulation.
Créer un objet neutre et placer un tag Xpresso.
http://perso.wanadoo.fr/archizone/DIVERS/coffee1/ima5.jpg
double click sur le tag de l’Xpresso, et dans l’éditeur Xpresso placer un nœud coffee
http://perso.wanadoo.fr/archizone/DIVERS/coffee1/ima6.jpg
sélectionner le nœud coffee et dans les Attributs on remarque le bouton d’accès a l’éditeur coffee et les entrées Input1 et Input2 .
http://perso.wanadoo.fr/archizone/DIVERS/coffee1/ima7.jpg
supprimer les entrées et les sorties du nœud coffee on faisant un double click sur les points bleus et rouges, ouvrer l’éditeur coffee et supprimer la ligne « Output1 = Input1 + Input2 »
http://perso.wanadoo.fr/archizone/DIVERS/coffee1/ima8.jpg
Maintenant on va éditer le code et les entées de notre nœud coffee qui permets de modifier les paramètres de notre cube qu'on a identifié un peut plus haut par leurs id . Pour cela on a besoin de trois entrées :
1) Une entrée de type lien pour notre cube.
2) Une entrée de type vecteur pour la taille de notre cube.
3) Une entrée de type entier pour la segmentation X de notre cube.
On créé une entrée de type lien et on la nomme objet :
- cliquer sur le carre bleu et choisir lien
- click droit sur le nom du port et choisir renommer le port
http://perso.wanadoo.fr/archizone/DIVERS/coffee1/ima9.jpg
on peut remarquer dans les attributs du nœud qu'il y a maintenant un champ lien nommer objet
http://perso.wanadoo.fr/archizone/DIVERS/coffee1/ima10.jpg
faite la même manipulation pour la taille du cube et la segmentation et les nommer respectivement taille et seg_x par exemple.
Maintenant on a définie nos entrées .
http://perso.wanadoo.fr/archizone/DIVERS/coffee1/ima11.jpg
passant maintenant au script coffee
http://perso.wanadoo.fr/archizone/DIVERS/coffee1/ima12.jpg
pour notre script on a besoin de quatre fonctions
la première pour identifier que notre objet est bien une primitive cube.
« if (!instanceof(objet,CubeObject)) return ; »
http://perso.wanadoo.fr/archizone/DIVERS/coffee1/ima13.jpg
la deuxième pour accèder au container du cube avec la fonction :
« Objet -> GetContainer() ; »
pour cela on va définir une variable que l’on nomme bc
http://perso.wanadoo.fr/archizone/DIVERS/coffee1/ima14.jpg
la troisiéme pour modifier les paramètres avec la fonction :
« bc->SetData(Id du paramètre, la valeur) »
http://perso.wanadoo.fr/archizone/DIVERS/coffee1/ima15.jpg
http://perso.wanadoo.fr/archizone/DIVERS/coffee1/ima16.jpg
et on termine par redonner à notre cube les nouveaux paramètres du container avec la fonction :
« Objet -> SetContainer (bc) ;»
http://perso.wanadoo.fr/archizone/DIVERS/coffee1/ima17.jpg
le script
main()
{
if (!instanceof(objet,CubeObject)) return ;
var bc = objet->GetContainer() ;
bc->SetData ( 1100 , taille ) ;
bc->SetData ( 1102 , seg_x ) ;
objet->SetContainer(bc) ;
}
IMPORTANT : respecter les majuscules et les minuscules dans le script.
Pour plus d’information sur les containers consulter la documentation
réalisée par Tengaal . Le lien
http://tengaal.art.chez.tiscali.fr/Pages/Astuces/Prog/coffee.htm
le fichier (http://perso.wanadoo.fr/archizone/DIVERS/coffee1/exo1.c4d)
Voici un petit astuce pour les débutants comme moi qui veulent accéder au paramètres des objets C4D avec un nœud coffee.
Comment accéder à ces paramètres sans être obliger de passer par la documentation du Coffee, qui pour la majorité des utilisateurs est un casse tête.
L’astuce c'est qu'on accéde aux paramètres par l’intermédiaire d’une simple expression Xpressso.
Le fichier ci joint ici (http://perso.wanadoo.fr/archizone/DIVERS/coffee1/parametres.c4d)
Les données utilisateur de l’xpresso :
http://perso.wanadoo.fr/archizone/DIVERS/coffee1/ima1.jpg
Le principe est très simple :
on place un objet dans le lien objet « ici comme exemple une primitive cube » et on observe :
http://perso.wanadoo.fr/archizone/DIVERS/coffee1/ima2.jpg
donc pour L’id = 0 on accède à la Taille du cube
maintenant par exemple on va chercher l’id qui correspond à la segmentation en X, on donne une valeur segments x = 3 et on défile les valeurs de « mon Id » dans les DU de l’Xpresso on aperçois qu’ à la valeur de « mon Id » = 4 l’index data = 3, pour faire une vérification modifier la valeur segments x du cube et voir ci la valeur de l’index data change.
http://perso.wanadoo.fr/archizone/DIVERS/coffee1/ima3.jpg
donc l’Id = 4 correspond bien à la segmentation x.
Remarque pour une valeur d’Id supérieur a 7 l’info id marque « l’id n’existe pas » c’est normal puisque notre cube n’a que 8 Id de 0 à 7
http://perso.wanadoo.fr/archizone/DIVERS/coffee1/ima4.jpg
Le but de cette manipulation.
Créer un objet neutre et placer un tag Xpresso.
http://perso.wanadoo.fr/archizone/DIVERS/coffee1/ima5.jpg
double click sur le tag de l’Xpresso, et dans l’éditeur Xpresso placer un nœud coffee
http://perso.wanadoo.fr/archizone/DIVERS/coffee1/ima6.jpg
sélectionner le nœud coffee et dans les Attributs on remarque le bouton d’accès a l’éditeur coffee et les entrées Input1 et Input2 .
http://perso.wanadoo.fr/archizone/DIVERS/coffee1/ima7.jpg
supprimer les entrées et les sorties du nœud coffee on faisant un double click sur les points bleus et rouges, ouvrer l’éditeur coffee et supprimer la ligne « Output1 = Input1 + Input2 »
http://perso.wanadoo.fr/archizone/DIVERS/coffee1/ima8.jpg
Maintenant on va éditer le code et les entées de notre nœud coffee qui permets de modifier les paramètres de notre cube qu'on a identifié un peut plus haut par leurs id . Pour cela on a besoin de trois entrées :
1) Une entrée de type lien pour notre cube.
2) Une entrée de type vecteur pour la taille de notre cube.
3) Une entrée de type entier pour la segmentation X de notre cube.
On créé une entrée de type lien et on la nomme objet :
- cliquer sur le carre bleu et choisir lien
- click droit sur le nom du port et choisir renommer le port
http://perso.wanadoo.fr/archizone/DIVERS/coffee1/ima9.jpg
on peut remarquer dans les attributs du nœud qu'il y a maintenant un champ lien nommer objet
http://perso.wanadoo.fr/archizone/DIVERS/coffee1/ima10.jpg
faite la même manipulation pour la taille du cube et la segmentation et les nommer respectivement taille et seg_x par exemple.
Maintenant on a définie nos entrées .
http://perso.wanadoo.fr/archizone/DIVERS/coffee1/ima11.jpg
passant maintenant au script coffee
http://perso.wanadoo.fr/archizone/DIVERS/coffee1/ima12.jpg
pour notre script on a besoin de quatre fonctions
la première pour identifier que notre objet est bien une primitive cube.
« if (!instanceof(objet,CubeObject)) return ; »
http://perso.wanadoo.fr/archizone/DIVERS/coffee1/ima13.jpg
la deuxième pour accèder au container du cube avec la fonction :
« Objet -> GetContainer() ; »
pour cela on va définir une variable que l’on nomme bc
http://perso.wanadoo.fr/archizone/DIVERS/coffee1/ima14.jpg
la troisiéme pour modifier les paramètres avec la fonction :
« bc->SetData(Id du paramètre, la valeur) »
http://perso.wanadoo.fr/archizone/DIVERS/coffee1/ima15.jpg
http://perso.wanadoo.fr/archizone/DIVERS/coffee1/ima16.jpg
et on termine par redonner à notre cube les nouveaux paramètres du container avec la fonction :
« Objet -> SetContainer (bc) ;»
http://perso.wanadoo.fr/archizone/DIVERS/coffee1/ima17.jpg
le script
main()
{
if (!instanceof(objet,CubeObject)) return ;
var bc = objet->GetContainer() ;
bc->SetData ( 1100 , taille ) ;
bc->SetData ( 1102 , seg_x ) ;
objet->SetContainer(bc) ;
}
IMPORTANT : respecter les majuscules et les minuscules dans le script.
Pour plus d’information sur les containers consulter la documentation
réalisée par Tengaal . Le lien
http://tengaal.art.chez.tiscali.fr/Pages/Astuces/Prog/coffee.htm
le fichier (http://perso.wanadoo.fr/archizone/DIVERS/coffee1/exo1.c4d)