PDA

Voir la version complète : Nœud Coffee pour les nuls



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)

proparjak
07/03/2004, 00h13
:shock: Merci beaucoup Majoul ! :D

Ça offre énormément de perspectives cette interaction Xpresso/COFFEE.
Je me mets petit à petit à Xpresso (que j'aime par son interface visuelle) et ce que tu montres (à des débutants comme moi) ouvre bien des horizons !

Encore merci. :prie:
Ça serait pas mal dans la partie "Articles ", non ?

Majoul
07/03/2004, 00h23
Ça donne accès aux paramètres ultérieur a la V6.3 , puisque la doc de Maxon pour le Coffee n’a pas été mise à jours depuis .

Aurety
07/03/2004, 09h53
Mercii beaucoup MAJOUL, trés utile et surtout trés astucieux...

Pepsee
07/03/2004, 09h54
merci pour la communaute, mais là, c'est un autre monde pour moi

:poucehaut:

genghiskhan
07/03/2004, 12h15
pareil pour moi, l'xpresso c'est comme le php ca me file des boutons tout partout :cry2:

tabou
07/03/2004, 12h59
Très astucieux :poucehaut: merci Majoul

Floby
07/03/2004, 14h36
super, majoul! :poucehaut:

j'ai honte de profiter maintenant. il fallait trouver! ça me redonne un coup de fouet pour la prog