PDA

Voir la version complète : [mni-tut] Du café dans XPresso



Steph3D ::.
13/12/2003, 17h36
Bon je test comment marche le COFFEE dans XPresso pour pouvoir mélanger les 2 techniques.
Alors au passage, je ne sais pas si ça vous intéresse ? mais je vous passe mon fichier de test
http://annur.free.fr/XPresso/Sliders.rar
Ce sont des Sliders, ça peu servire pour faire des commandes dans la vue 3d par exemple.
Alors il y a 2 exemples l'un en COFFEE pur et l'autre avec le script COFFEE exploiter par XPresso

J'ai tout commenté ligne par ligne, c'est donc un mini tut simple à comprendre :-)

Par contre je n'ai pas bien capté la nuance de la variable doc dans main (doc, op) car je ne trouve pas de corespondance quand je veux rééxploité un script dans XPresso. Il suffit qu'un script utilise la variable doc pour que je n'arrive plus à l'adapter à XPresso :? :cry:

Tengaal
13/12/2003, 17h56
Ah un peu de COFFEE ! :D

Les scripts COFFEE (expressions standards) utilisent comme paramètres entrants "doc" et "op" fournis par défaut par C4D. (main (doc, op) )
"doc" permet d'acceder au fonctions et paramètres du document actuel (scène)
"op" correspond à l'objet sur lequel est placé le script, il permet donc d'accéder aux fonctions et paramètres de cet objet.

En ce qui concerne le noeud COFFEE dans le système Xpresso, comme il s'agit d'une expression COFFEE encapsulée dans Xpresso, et donc sensée recevoir et envoyer des paramètres d'autres noeuds, les paramètres entrants "doc" et "op" sont absents.

Simplement dans ce cas là pour accéder au document, si besoin, il suffit d'utiliser :
var doc=GetActiveDocument();
dans le script COFFEE, ainsi on obtient également le fameux pointeur "doc"

En ce qui concerne maintenant le pointeur sur l'objet, Xpresso n'est pas associé directement à l'objet sur lequel il est placé, un Xpresso peut être placé sur n'importe quel objet de la scène, son action est uniquement définie dans sa zone XGroup où les objets concernés sont placés et repérés de manière absolue, et non relative comme le "op" du COFFEE.
Donc, il suffit de définir un port d'entrée de type "Lien" (pour connecter un objet) pour le noeud COFFEE, avec un nom identifiable comme par exemple "mon_objet", ainsi dans le code COFFEE, il suffira simplement d'utiliser la variable "mon_objet" pour accéder aux fonctions et paramètres de l'objet connecté à ce port. On peut donc ainsi fournir au script plusieurs éléments en paramètres entrants.

Même chose pour faire sortir un paramètres du COFFEE vers un autre noeud, à la fin du code, il suffit de donner la valeur résultante dans la variable qui porte le nom du port de sortie (par exemple "Output"), avec bien sûr le même type de donnée (Lien, Texte, Reel...)

Floby
13/12/2003, 18h39
pfiou lala tu t'y connais en COFFEE toi!!

d'ailleurs le projet de l'initiation sur ton site en francais, c'est tombé a l'eau, moi je suis sur ma faim, je suis en train de les relires ces fameuses pages, tout les soirs...

tu continuerai rien que pour moi? :bave:

merci d'avance, et puis je viens deja d'apprendre plein de trucs maintenant

Steph3D ::.
13/12/2003, 19h03
Merci pour les explications Tengaal :-)
En fait, c'est bien ce que j'avais déjà compris, d'après ton tut sûr ton site 3dweave
Et pour la fonction var doc=GetActiveDocument(); ben j'avais aussi trouvé, là aussi en regardant un de tes scripts ;-)
Mais en fait j'etait pas sur d'avoir compris car après une adaptation d'un de mes scripts, le résulta etait différent. Mais j'ai dû me tromper autre par alors, je vais voir ça !

Steph3D ::.
13/12/2003, 19h47
Rah ! comment que c'est génial :-P ça marche ! :poucehaut: j'avais fait une connerie hors code
C'est fou comme on peut booster C4d à coup de script, je sens que ça va fritté :-)

Par contre j'ai un truc qui coince :? j'utilise la fonction findobject ("ma_cible") qui marche bien dans le code. Mais en fait, je voulais exploiter ça par le code xpresso avec un noeu de type lien vers l'objet ma_cible, je pensai utiliser une variable objet<>lien nomé par exemple cible comme ceci findobject (cible) mais le debugger de C.O.F.F.E.E. me dit : Erreur : Incompatible values... OBJET / STRING

Question bonus de newb :oops: je sens que je vais dire une bêtise, mais bon... peut-on recompilé un code à base d'xpresso pour en faire un vrai plug, ce n'est pas les idées qui me manquent ;-)

parksto
13/12/2003, 20h56
tu peux grouper ton xpresso en xgroupe et le "protéger" avec un mot de passe

Steph3D ::.
13/12/2003, 21h59
C'est t'y bon, j'ai résolu mon probleme, c'est une variable de type text qu'il faut mettre, mais pas de type Lien, qu'elle banane :oops:

Oui, ta raison parksto, mais je pensai surtout pour obtenir plus de posibilité ou de confor avec des trucs plus intégrés, mais bon je vais un peu vite en besogne ;-)

Tengaal
13/12/2003, 23h35
pfiou lala tu t'y connais en COFFEE toi!!
Non, si peu... :roll:


d'ailleurs le projet de l'initiation sur ton site en francais, c'est tombé a l'eau, moi je suis sur ma faim, je suis en train de les relires ces fameuses pages, tout les soirs...

tu continuerai rien que pour moi? :bave:
Pourquoi que pour toi ?
Si je n'ai pas continué cette doc c'est d'une part que je n'ai plus eu de temps dispo car malheureusement ça ne se fait pas en claquant des doigts ! :wink:
Mais également parce que la version 7 est sortie entre temps et que j'avais interrompu cette doc en pensant que des modifs dans le COFFEE auraient été apportées, même chose avec l'arrivée de C4D 8.


merci d'avance, et puis je viens deja d'apprendre plein de trucs maintenant
C'est l'essentiel ! Tu sais Floby, le COFFEE, je l'ai appris sans doc mais simplement en regardant les scripts des expressions qui circulent (voir rubrique "Xpressions" du site ), puis en en m'y mettant et en faisant des erreurs qui permettent d'avancer. :prie:

Steph3D ::.
13/12/2003, 23h49
C'est l'essentiel ! Tu sais Floby, le COFFEE, je l'ai appris sans doc mais simplement en regardant les scripts des expressions qui circulent (voir rubrique "Xpressions" du site ), puis en en m'y mettant et en faisant des erreurs qui permettent d'avancer. :prie:
Exactement comme moi, je me suis mis à la prog 3d, il y a peine plus de 2 semaines et je peux déjà faire des trucs de fout. Mais au début faut séré un peu les dents et mettre les mains à fond dans la patte. Bon, j'ai quand même une expérience en prog de site PHP et un des tentatives en Delphi vieux comme 1997 ;-) Dison que j'ai les bases pour les conditions, les variables te les fonctions, etc... qui fonctionnent un peu pareil dans tous les langages