PDA

Voir la version complète : Conseil pour bien démarrer



padawa
24/09/2004, 23h08
Salut a tous,

je commence a me mettre au COFFEE, mais y a certains trucs que je pige pas. Par exemple le je voulais un script qui permette de rajouter ou d'enlever des points sur une spline. J'ai lu avec attention les docs de Tengaal, un peu le SDK (mon anglais est un peu juste) et la tout une serie de questions sont apparues :shock:
Donc voici cette petite serie de questions qui m'aideront a éclaircir les idees:
- Quelles différences entre le COFFEE SDK et le C++ SDK?
- Peut on developper du coffee au sein d'un editeur comme visual C++ ou autre?
- La structure du coffee ressemble a celle du C++ (prototypage, heritage, classe...) mais quand definitons celle-ci, ou autrement pour quelles fonctions ai-je besoin de faire de l'heritage ou autre?
- Peut on TOUT faire avec coffee?
- J'ai l'impression que Xpresso est en fait un editeur nodal coffee, qui ne contient pas encore tout le coffee :o Y aura t il un jour toutes les fonctions.
- Pour faire un plug externe faut il le faire en coffee ou c++?
- Enfin, y aura t il un jour une doc en francais sur le coffee? :poucehaut:

Voila, c'est tout ce qui me passe par la tete pour le moment.
Prenez votre temps pour repondre je suis pas trés pressé :odile:

A++

Tengaal
25/09/2004, 00h09
Bon ben je vais essayer de m'y coller...


- Quelles différences entre le COFFEE SDK et le C++ SDK?
Le COFFEE est un langage propre à C4D, C4D est d'une certaine manière un compilateur capable d'interpréter les programmes COFFEE sans que l'utilisateur n'ait besoin de compiler le code en executable. Cela permet de pouvoir faire tourner les plugins COFFEE sur Mac et PC, mais surtout de bricoler du code rapidement et de voir ses effets en temps réel dans C4D. Alors que le C++ nécessite d'utiliser un éditeur externe (Visual C++ ou CodeWarrior) pour compiler le code en fichier exécutable, il est utilisé seulement pour le développement de plugins, donc il faut compiler le C++, on obtient un fichier .xdl (mac) ou .cdl(pc), ensuite il faut recharger le plugin dans C4D. Le C++ oblige de compiler le plugin sur les 2 systèmes séparément si on veux une version PC et une version Mac.


- Peut on developper du coffee au sein d'un editeur comme visual C++ ou autre?
Non, le Coffee est propre à C4D qui sait l'interpréter directement, le SDK C++ contient toutes les commandes équivalentes au Coffee avec une syntaxe légèrement différente.


- La structure du coffee ressemble a celle du C++ (prototypage, heritage, classe...) mais quand definitons celle-ci, ou autrement pour quelles fonctions ai-je besoin de faire de l'heritage ou autre?
En effet, il y a énormément de ressemblance entre le COFFEE et le C++. En ce qui concerne la structure du programme, la boucle principale est "main(..) { code }", placé en général à la fin du listing de code. On créé des classes (class) lorsqu'on souhaite stocker plusieurs types de données dans une même variable. Par exemple, je veux pouvoir mettre en place une classe qui contienne nom, prenom, age, email. Je créé donc une classe que je vais appeler par exemple "perso" et dans laquelle je vais définir les variables nom (string), prenom (string), age (int), email (string). Ensuite dans le code quand j'aurais besoin de créer une variable de ce type il suffira de faire
var invite=new(perso);
pour accéder au valeurs internes:
invite.nom="DUGENOU";
invite.prenom="Robert";
invite.age=58;
invite.email="robert.dugenou@chezlui.com"
En ce qui concerne les déclarations de fonctions, c'est différent, ce sont des petits bouts de programme avec la plupart du temps des paramètres entrants, ces fonctions vont être appelées par le programme simplement par leur nom du genre :
var resultat = MaFonction(parametre1, parametre2, parametre3);
La fonction "MaFonction" est définie comme ça:
MaFonction(p1, p2, p3)
{
ici le programme qui abouti à une valeur "val"

return val; //retourne cette valeur dans "resultat"
}

Pour apprendre précisément comment faire ces déclarations, je te conseille de regarder la doc de base du Coffee qui contient beaucoup d'exemples, mais surtout d'ouvrir des scripts Coffee pour regarder comment ils sont faits. Même chose pour le code C++, il y a plein de sites sur la programmation qui ont de bonnes documentations de base, et en français.



- Peut on TOUT faire avec coffee?
Ca dépend ce que tu entends par "tout"... Non, bien sûr, comparé au SDK C++ qui permet d'aller dans les tripes de C4D mais également dans la machine elle-même, le Coffee reste limité aux fonctions internes de C4D, mais avec un peu d'ingéniosité on peu aller très loin malgré tout, et développer des trucs qui, au premier abord, peuvent sembler impossible avec ce langage considéré comme "simpliste".


- J'ai l'impression que Xpresso est en fait un editeur nodal coffee, qui ne contient pas encore tout le coffee :o Y aura t il un jour toutes les fonctions.
L'Xpresso c'est en fait une interprétation visuelle des fonctions disponibles en Coffee. Un noeud est une fonction avec des paramètres entrants et des paramètres sortants, sauf que l'Xpresso à l'avantage de cadrer tout ça en proposant dans chaque cas les différents accès possibles par menu (ports d'entrée et de sortie). Alors qu'en coffee, il faut le concevoir en tapant des lignes de codes, avec forcément le risque de faire des fautes de frappes et de perdre du temps à corriger ces erreurs de code. Xpresso cadre tout pour que l'utilisateur ne soit jamais dans ce cas de figure et ne risque pas non plus de faire planter C4D dans le cas d'un développement utilisant des bidouillages non officiels...
Actuellement le Coffee en est resté au niveau des fonctionnalités de C4D 6, sa doc en est restée là également, alors qu'Xpresso, développé pour C4D 8, permet d'aller dans toutes les fonctionnalités de cette version, c'est donc une sort de "nouvelle génération" du Coffee qui semble laissé à l'abandon...


- Pour faire un plug externe faut il le faire en coffee ou c++?
On peut programmer un plugin en Coffee ou en C++. Le Coffee est relativement limité mais il permet malgré tout de répondre à la grande majorité des besoins pour les petits outils pratiques, il a par contre l'avantage de ne pas avoir besoin d'être compilé, c'est à dire que le fichier du plugin avec extension .cof est un fichier texte, et par conséquent comme C4D interprète lui-même ce langage, le plugin tourne aussi bien sur PC que sur Mac. Ce code peut également être compilé, avec le plugin "Compiler" fournit dans la doc SDK Coffee qui permet de rendre inaccessible le fichier du plugin qui cette fois prend l'extension .cob.
Le C++ exige de développer le code à l'extérieur de C4D (Visual C++ pour PC ou CodeWarrior pour Mac). Il utilise les librairies de développement (API) fournies en standard avec chaque version de C4D. Il faut compiler le code avant de recharger le plugin dans C4D pour en voir les modifications. Un plugin développé sous Visual C++ ne tournera pas sur Mac, un plugin compilé avec CodeWarrior ne tournera pas dans le monde PC. Par contre le C++ étant développé en externe, donc au niveau du système de la machine utilisée, il permet d'aller beaucoup plus loin que le coffee en ayant les moyen de lier les fonctions de C4D et les possibilités matérielles de la machine (carte graphique, ressources mémoire, réseau, son...)


- Enfin, y aura t il un jour une doc en francais sur le coffee? :poucehaut:
La doc anglaise actuelle du SDK Coffee est arrêtée à C4D 6, donc, avoir une doc mise à jour pour C4D 8.xx ou mieux C4D 9, ça sera déjà un pas gigantesque !
Mais ça m'étonnerait car apparemment les développeurs de chez Maxon tendent à privilégier désormais le SDK C++ pour les plugins, et donc Xpresso pour les scripts internes.
Donc pour la doc en français, n'y compte pas, surtout que dans le milieu de la programmation, comme les syntaxes sont en majorité anglaises, les doc sont en anglais, ce qui semble logique finallement.

Ouf, je pense que j'ai répondu à tout, et je l'espère de la manière la plus précise et claire...

padawa
25/09/2004, 09h34
C'est on ne peut plus clair :prie:
Merci d'avoir pris le temps de me faire cette réponse qui m'a bien clarifié l'esprit :poucehaut:

Donc je pense que pour les scripts vaut mieux se mettre a fond sur Xpresso et pour du plug il vaut mieux passer aux C++ direct, puisque apparemment le coffee est voué a l'abandon et de toute facon ne contient que les fonctions du 6. Sachant qu'avec la 9 et sont moteur Ngones bon nombre vont passer a la poubelle je pense.

Enfin bref,

Merci bien Tengaal :efface:

Tengaal
25/09/2004, 12h21
Tu peux quand même te pencher sur le Coffee car dans XPresso tu as la possibilité de programmer en Coffee, cela permet d'avoir un ensemble Xpresso-Coffee beaucoup plus performant.
Et puis si ils ont intégrés un noeud Coffee dans Xpresso avec C4D 8 c'est que le Coffee n'est peut-être pas tout à fait mort, on verra ce que l'avenir nous dira là-dessus. :wink:

spigeon29
25/09/2004, 13h31
Salut tous et toutes

Enfin des vrais réponses.

Sinon qu'elle est la vrai doc pour programmer en COFFEE et où peut on la trouver ??

A+

Tengaal
25/09/2004, 13h47
http://www.plugincafe.com , c'est le COFFEE SDK, il contient l'explication de toutes les fonctions actuelles du COFFEE.

padawa
25/09/2004, 14h24
Exact Tengaal :poucehaut:

Je viens de voir ce noeud, et c'est vrai que ca peut etre interressant pour combler ce qui manque dans Xpresso, comme la création d'objet par exemple.

J'ai "feuilleté" un peu le SDK C++ et je crois que de toute facon j'ai pas encore un niveau suffisant pour ca :?

Je pense que quand j'aurais explorer tout le coffee je pourrais plus facilement au C++.
Faut dire que le C++ c'est le seul langage que j'ai étudié (en autodidacte) et qu'aprés avoir lu un gros bouquin sur les bases tu sais toujours rien faire :coup:

J'ai peut etre vu un peu gros, :oops: ne mettons pas la charue avant les boeufs.
:odile: