PDA

Voir la version complète : Comment créer des filtres ?



Glloq
27/06/2009, 13h56
Bonjour,



Je cherche à créer un filtre pour des fichiers dont je connais la structure comme ma poche... contrairement à C4D.


Le spécialiste de la question sur ce forum pourrait-il me dire si le module ResEdit (http://www.maxon.net/fr/support/for-developers/sdk-downloads.html) permet ceci ou s'il n'est prévu que pour créer des interfaces aux extensions ?

base80
27/06/2009, 14h15
Filtres?

shtl
27/06/2009, 14h19
Des filtres à ajouter en post effect c'est ça?

Tengaal
27/06/2009, 15h04
je pense qu'il s'agit là des structures de "FilterPlugin", c'est à dire le développement de nouveaux formats d'import/export.

pour cela il faut explorer les docs du SDK COFFEE ou C++ dispo sur http://www.maxon.net/fr/support/for-developers/sdk-downloads.html

Ensuite, en effet si on connais bien la structure de formats de certains types de fichier, il est possible de développer en COFFEE ou C++ de nouveaux imports/exports.

ResEdit est un outil qui sert uniquement à créer une interface aux plugins développés.

Dans la doc COFFEE il y a des exemples avec codes sources de FilterPlugins pour importer de nouveaux formats de fichier non reconnus par C4D.

Glloq
27/06/2009, 17h09
Ça doit être Tengaal le chevronné du coin, alors.

Je parle bien d'un filtre de format de fichier pour l'import/export, oui.


Je connais cette page mais... autant ça va avec le c++, autant l'anglais (qui est pourtant une langue humaine) m'est incompréhensible. La traduction automatique est intéressante pour quelques sites mais pas pour une documentation aussi précise.

Je viens donc trouver mes congénères linguistiques sur ce forum !



J'aimerais comprendre comment je récupère une simple variable, comme la chaîne du nom du premier objet ou son nombre de sommets, par exemple.

Je connais la structure du fichier (la prise du fichier) je connais le c++ (le cordon) mais je ne connais pas la structure de c4d (la prise de c4d).


Mon niveau en c4d se limite à savoir installer un addiciel comme ResEdit. :|

Sir Gong
27/06/2009, 17h18
Ça doit être Tengaal le chevronné du coin, alors.
Le seul qui comprend le martien, oui.

Tengaal
27/06/2009, 18h25
oui, j'avais pris martien en langue vivante 2 à l'école ! :efface:

en effet, je pense qu'il faut déjà que tu te familiarise avec la création d'objet par programmation dans C4D pour pouvoir les générer à partir du contenu de tes fichiers importés.

Savoir créer un objet polygonal, lui insérer le nombre de points adéquat, définir les coordonnées 3D de chacun, puis générer les polygones entre ces points (les polygones sont liés aux index de chaque point de l'objet).

dans la rubrique "programmation" du forum du devrais pouvoir trouver tout ce qu'il faut comme exemple de code source...

Ah oui, également, dans le dossier "plugins" de ton C4D, tu as un "cinema4dsdk" avec dedans les bibliotheques de développement C++ ainsi que des exemples de plugins, notamment dans le repertoire "filterplugin".

Glloq
27/06/2009, 19h32
Je ne trouve pas pour autant la « péritel » de c4d.


Où se trouvent les sorties, les entrées du logiciel, le fichier qu'il faut éditer ?

Je sais pas quoi faire avec ma souris. J'ai c4d d'ouvert et là, je fais quoi pour commencer ? :o



J'ai beau avoir un moteur de Ferrari, sans les roues, je vais moins loin qu'une Lada...

Je voudrais faire autre chose que de vulgaires convertisseurs de formats. Surtout que C4D perd toujours un truc, dans les formats qu'il propose déjà ; quand ce ne sont pas les normales, ce sont les axes, quand ce ne sont pas les matériaux, ce sont les squelettes...

Tengaal
27/06/2009, 20h41
ah... bon alors je vais te donner la base minimum à savoir dans ce cas...

Tu veux développer un plugin ? alors tu as le choix de le développer en :

- C++, donc dans un éditeur externe à C4D et de compiler le code, après compilation tu obtiens un fichier avec extension cdl ou cdl64 (PC 32/64 bit)), ou extension xdl (Mac). Pour développer en C++, le SDK de développement avec les bibliothèques et des exemples de structures de plugins sont fournis avec l'installation de C4D, c'est dans le dossier "plugins/cinema4dsdk/".
Le plugin compilé sur PC ne tournera que sur PC, si il est compilé sur un systeme Mac, alors il ne sera utilisable que sur ce systeme. Ce plugin sera placé dans le dossier "plugins" de C4D pour qu'il soit chargé au lancement du soft.

- COFFEE, un langage interne à C4D, utilisable notamment sous forme de script placé sur un objets du projet 3D pour créer des interactions (clic droit sur l'objet puis "propriété Cinema 4D -> COFFEE", puis double-clic sur le tag créé en forme de tasse à café pour ouvrir l'editeur de script). Mais COFFEE est aussi utilisable pour créer des plugins. Le SDK COFFEE disponible sur le site de MAXON décrit également les foncions du COFFEE ainsi que les structures de plugins possible, il n'y a plus qu'à les remplir avec le code perso...
Le plugin COFFEE peut se coder dans n'importe quel editeur de texte (ou bien dans la propriété COFFEE où on peut sauvegarder/ouvrir). Le plugin sera sauvegardé avec l'extension .cof dans le dossier "plugins" de C4D toujours.
Le COFFEE a comme avantage d'être universel, c'est à dire indépendant du système puisqu'il n'est pas compilé en externe mais interprété directement par C4D, donc le fichier cof est utilisable sur Mac et PC. Il est éventuellement possible de le compiler, toujours en interne par C4D, en fichier d'extension cob, ce fichier n'est donc plus editable en format texte, donc diffusable sans risque d'être bricolé par les utilisateurs...

IMPORTANT: Lorsqu'on créé un plugin, il faut aller sur le site de développement de MAXON pour y obtenir un identifiant unique (un numero de série) qui est à mettre dans le code source du plugin, ça permet d'éviter des conflits entre tous les plugins utilisés par C4D.
http://www.plugincafe.com/developer_plugid.asp


Maintenant à toi de voir vers quel langage tu comptes te diriger pour développer ton filtre, ensuite explore les codes sources des plugins COFFEE et C++ des SDK, c'est le meilleur moyen d'avancer.


Parce que je suis gentil, (et que j'ai dû commencer il y a pas mal d'années en démarrant de zéro à trouver les réponses mois après mois, et sans aucun forum C4D à l'époque...), alors je te donne une piste en plus, un code source d'exemple de plugin COFFEE d'import/export. Ce code est vierge bien sûr, c'est la structure de base... A toi de chercher et travailler maintenant tu as tout ce qu'il faut en main. :wink:



///////////////////
// MyFilterPlugin

class MyFilterPlugin: FilterPlugin
{
public:
MyFilterPlugin();

GetID();
GetName();

Identify(probe,fname);

Load(doc,fname,obj,mat,env,dialog);
Save(doc,fname,obj,mat,env,dialog);

Edit();

GetSuffix();
}

MyFilterPlugin::MyFilterPlugin()
{
// Call the parent constructor
super();

// TODO: Initialize any local variables etc.
}


MyFilterPlugin::GetID()
{
// TODO: Return a unique plugin id from http://www.plugincafe.com
}

MyFilterPlugin::GetName()
{
// TODO: Return the text of the menu entry
}

MyFilterPlugin::Identify(probe, fname)
{
// TODO: Return TRUE if probe is a valid header for your file format or if fname has a valid suffix
}

MyFilterPlugin::Load(doc,fname,obj,mat,env,dialog)
{
// Called when the user wants to load a file that Indentify() said was of this format

// TODO: Load fname to doc, and return FILEERROR_NONE
}

MyFilterPlugin::Save(doc,fname,obj,mat,env,dialog)
{
// Called when the user chooses the filter in the Export menu

// TODO: Save the doc to fname, and return FILEERROR_NONE
}

MyFilterPlugin::Edit()
{
// Called when the user choose the filter in the Import/Export Settings menu

// TODO: Bring up a dialog etc.
}

MyFilterPlugin::GetSuffix()
{
// TODO: Return the default suffix for the format

main()
{
// Register the plugin
Register(MyFilterPlugin);
}

Glloq
27/06/2009, 23h24
Aaahh, ça c'est une réponse d'hétéro ! On avance ! 8)


Le coffee est fort intéressant d'après ce que je déduis de ton message. Est-il aussi riche que le C++ ou bien la similarité de sa syntaxe est trompeuse ?


Je vois dans « Propriété de CINEMA 4D > C.O.F.F.E.E. » qu'il y a un bouton Compiler, j'imagine que de compiler notre code évite une compilation à chaque lancement de C4D.

Cependant, avec le main vide, j'ai pas de compilation qui s'effectue : est-ce normal ?

Et sans compilation, est-ce que je mets directement le .cof dans le dossier plugins ?



Sinon, au risque de paraître ingratement abusif... le fait que ton code d'exemple, et particulièrement les commentaires, soient en anglais, ça n'aide pas beaucoup par rapport au SDK en anglais. Je comprends mieux le code que les commentaires, par exemple.

Après, je sais qu'il s'agit d'un réflexe, que t'es plus à l'aise dans la programmation anglaise (mon prof en C++ était pareil).

Sir Gong
28/06/2009, 10h04
Aaahh, ça c'est une réponse d'hétéro !
Finalement, je crois que je préfère quand je ne comprends pas. :roll:

shtl
28/06/2009, 11h36
C'était pas la Gay pride en plus hier ? :mrgreen:

Tengaal
28/06/2009, 12h01
Aaahh, ça c'est une réponse d'hétéro ! On avance ! 8)
oui alors ce genre de commentaire tu peux éviter... :?



Le coffee est fort intéressant d'après ce que je déduis de ton message. Est-il aussi riche que le C++ ou bien la similarité de sa syntaxe est trompeuse ?

la syntaxe et la structure sont proches en effet, mais plus simplifiées, c'est du langage script donc censé être facilement accessible.



Je vois dans « Propriété de CINEMA 4D > C.O.F.F.E.E. » qu'il y a un bouton Compiler, j'imagine que de compiler notre code évite une compilation à chaque lancement de C4D.

Cependant, avec le main vide, j'ai pas de compilation qui s'effectue : est-ce normal ?

Et sans compilation, est-ce que je mets directement le .cof dans le dossier plugins ?

avant de t'occuper de la compilation, apprends déjà à faire des petits scripts et à comprendre un peu la structure, là tu as l'air de foncer tête baissée dans tous les sens, tu veux tout et tout de suite j'ai l'impression...
Comme je l'ai expliqué dans ma réponse "d'hétéro" et donc que tu as dû bien la comprendre, mais je le redis à nouveau... le fichier texte qui contient le script, est à sauvegardé avec extension .cof dans le dossier plugin, C4D ensuite interprète ce code texte en plugin.
Tu peux compiler en .cob pour diffuser ton plugin et notamment sii tu ne veux pas diffuser ton plugin au format cof donc editable par n'importe qui dans un editeur de texte.
développe d'abord ton plugin en cof, ensuite tu reviendras pour aborder la compilation en cob.




Sinon, au risque de paraître ingratement abusif... le fait que ton code d'exemple, et particulièrement les commentaires, soient en anglais, ça n'aide pas beaucoup par rapport au SDK en anglais. Je comprends mieux le code que les commentaires, par exemple.

Après, je sais qu'il s'agit d'un réflexe, que t'es plus à l'aise dans la programmation anglaise (mon prof en C++ était pareil).

En programmation, c'est clair que si tu n'es pas à l'aise avec l'anglais tu vas ramer, la plupart des bibliotheques de SDK sont en anglais, c'est le langage universel... mais comme tu dis que tu comprends mieux le code que les commentaires, alors ne lis pas les commentaires tout simplement...

tarlack
28/06/2009, 12h02
Cependant, avec le main vide, j'ai pas de compilation qui s'effectue : est-ce normal ?


ben si ton prog ne fait rien ca sert à rien de le compiler, donc il le fait pas :roll: ...

Ah, et un conseil si tu veux continuer dans la prog : commence par apprendre l'anglais technique. Pas besoin de savoir lire du shakespeare, les docs sont souvent écrites en anglais de base. Sans ça, point de salut. Si tu as les bases de la grammaire anglaise, un magnifique site (http://www.wordreference.com) te permettra de tout comprendre "two fingers in the nose". C'est pas pour être pédant que je te dis ca, c'est vraiment le plus urgent pour toi, bien plus important meme que de savoir faire ton plugin en COFFEE.

bon courage en tout cas ;)

EDIT : barbecued by Tengaal

Glloq
28/06/2009, 13h11
Pour le COFFEE, je ne posais pas la quesiton sur sa difficulté mais sur sa richesse, sa puissance par rapport au C++.


Je suis déjà programmeur, j'ai déjà créer des convertisseurs, donc décrypté bon nombres de formats 3D (binaire et texte).

J'ai pas eu besoin de parler l'anglais pour ça. J'ai déjà essayé d'apprendre cette langue à l'école, en méthode et en Angleterre, y a rien à faire, c'est génétique, à croire que mon aire de Broca n'intègre pas la bibliothèque « anglais ».


Et puis en venant sur frenchcinema4d.fr, c'est pour y lire du français, pas pour qu'on me dise d'apprendre l'anglais, sinon, quand on maîtrise l'anglais, on va directement sur c4dcafe.com (mieux documenté, si j'ai bien compris).



Pourquoi je veux compiler ? Bah quand j'écris du COFFEE, j'aimerais bien savoir ce qu'il en est, ce que ce code fait. Comment afficher du texte à l'écran, avec « print("100 % de ce qui est mort n'est plus vivant."); » (ou « println »), j'ignore où ça va, où ça s'affiche...








Aaahh, ça c'est une réponse d'hétéro ! On avance ! 8)
oui alors ce genre de commentaire tu peux éviter... :?
C'est de l'humour, l'inversion de l'expression populaire ; j'aurais pu utiliser la litote « c'est pas une réponse de pédé » mais, j'ai beau être bi qu'on m'aurait traité d'homophobe avec l'ambiance crispée qui règne à notre époque... :lol:

tarlack
28/06/2009, 13h33
sur frenchcinema4d.fr on parle francais effectivement, mais je doute que quelqu'un veuille bien te traduire toutes les docs dont tu pourrais avoir besoin si celles-ci ne sont pas déjà en francais...ce n'est pas lié à c4d, mais lié à la programmation. Que tu n'aies pas eu besoin de l'anglais jusqu'à maintenant est un peu un miracle, la majorité des bibliothèques que j'utilise (Qt, des bibliothèques de parallèlisme, ...) n'ont pas de docs en francais. Et pourtant elles sont très pratiques (surtout Qt, super bien foutue et très généraliste). Donc on ne te dis pas d'apprendre l'anglais pour faire joli, on te donne juste un conseil. Que tu aies essayé par beaucoup de moyens ne fait que renforcer ton mérite de faire de la programmation ;) Ah aussi concernant l'anglais, j'ai pas trouvé mieux que lire des plein plein de trucs qui m'interessaient en anglais (forums, doc, papiers de recherche, bouquins...), meme si on comprend pas grand chose au départ. Et puis si au moins ce que tu lis t'interesse, ca marchera peut-etre mieux, on sait jamais....Après, peut-etre que ton cas est effectivement exceptionnel, et qu'aucun moyen classique ne te permettra d'y arriver....

le COFFEE est moins puissant que le C++, meme s'il contient la majorité des mécanismes Objet de base : héritage, etc. Pas de template par contre, mais pas besoin de typage non plus, un simple "var f = 0.1;" suffira.

Concernant la compile, je me doute bien que tu veux compiler à un moment ou un autre :lol: Le problème venait juste de compiler un "main" vide...

Glloq
28/06/2009, 14h16
En effet, Tarlack, ne pas être aimé de l'anglais est un handicape en programmation mais comme la plupart des handicapes, il est possible de le compenser. J'ai déjà touché aux bibliothèques Qt et WinAPI, aussi, c'est toujours peu documenté en français, tout ça.


Cela dit, je crois que c'est mon c4d qui est handicapé ; j'ai pas de console qui s'affiche quand je compile/exécute... j'ai dû virer trop de module pour le rendre moins lourd. :o

xs_yann
28/06/2009, 14h54
Pour la console Window>Console (Shift+F10).

C'est dans cette console que s'affichent les erreurs et les sorties (print, println...).



ou extension xdl (Mac).


L'extension pour Mac est maintenant dylib.

Glloq
28/06/2009, 16h10
Très bien, tout ça !


Merci Xs_yann, j'ai enfin des yeux, à présent.

Valkaari, c'est bon à savoir, en effet.


Et Tengaal, ton intervention m'a bien aidée (sauf les commentaires en anglais :lol:), je vais aussi profiter de tes pdf sur ton site.

Merci beaucoup !



Comme j'ai bien été servi, je vais revenir vous emmerder avec mes questions dès la première occasion. :)

cinekd
29/06/2009, 15h51
Aaahh, ça c'est une réponse d'hétéro ! On avance ! 8)

D'accord mais... si tu avances quand on recule, comment veux-tu qu'on te congratule? :boss:

Glloq
01/07/2009, 23h15
Lorsque que je fais clic droit > Propriétés CINEMA 4D > C.O.F.F.E.E. sur un objet et que je compile, j'ai aucun fichier qui se crée quelque part.

Comment fait-on pour compiler et comment fait-on pour exécuter un code sans passer par le clic droit ?

Tengaal
02/07/2009, 23h31
Lorsque que je fais clic droit > Propriétés CINEMA 4D > C.O.F.F.E.E. sur un objet et que je compile, j'ai aucun fichier qui se crée quelque part.

Comment fait-on pour compiler et comment fait-on pour exécuter un code sans passer par le clic droit ?


Pour la Nieme fois, si tu code en COFFEE tu n'as pas besoin de compiler, ton code editable sauvegardé en "mon_plugin.cof" par exemple, et placé dans le dossier plugin, sera chargé au démarrage de C4D.
Si ce n'est pas le cas c'est que tu as une merdouille dans ton code, pour savoir ou exactement fenetre -> console et tu lis le message d'erreur et sa position dans ton code.

Que ton plugin soit compilé ou pas il fonctionne exactement de la même façon, c'est C4D qui interpréte ce langage à lui.

Tengaal
03/07/2009, 00h32
il ne faut pas confondre le langage COFFEE et le SDK C++, ce n'est pas la même programmation, et la création d'objet se fait avec new en COFFEE et Alloc en C++ en effet.

xs_yann
03/07/2009, 01h36
Alors en COFFEE faudrait mettre quoi et ou trouver la liste des objects ? :calim:


SDK>Reference>BaseObject>AllocObject()

oli_d
03/07/2009, 08h44
Salut,

Fais peut-être un tour dans la section programmation du forum il y a plein d'exemples.

par exemple : http://www.frenchcinema4d.fr/forum/index.php?topic=21933.0. Le premier module sert à importer des modèles de terrain au format ascii, ce qui ressemble un peu à ce que tu veux faire , non ? Le code est visible et (un peu) commenté. Je n'ai pas utilisé la structure de plugin d'import de C4D mais un plugin menu (avec un plug import tu peux ouvrir un fichier directement via le menu ouvrir).

Pour le COFFEE tu as en gros trois manières de procéder, soit par une propriété COFFEE (voir par un noeud COFFEE dans Xpresso), soit par un script via le Gestionnaire de scripts (menu "Fenêtre") soit encore par un plugin en externe.

La première méthode est vite limitée car les appels de commande ne fonctionnent pas, ni les boites de dialogues. La seconde est très pratique car tu peux rapidement créer des scripts dans Cinema 4D et l'appel de commande fonctionne très bien (voir exemple dans l'aide sous Gestionnaire de scripts). La troisième permet de créer de véritables plugins qui sont facilement instalables sur n'importe quelle machine.

Pour aller encore plus loin il faut ensuite passer au C++ qui ouvre évidemment plus de possibilités mais qui est plus compliqué. Par exemple la gestion des ngons n'est pas (encore?) supportée en COFFEE.

En espérant avoir été utile...

Tengaal
03/07/2009, 09h00
Reste que dans un coffee tag, un allocObject(Ocube) fonctionne ...

Ah oui c'est vrai, les développeurs avaient revu un peu le COFFEE avec C4D 10.5, ils conseillent d'utiliser AllocObject en priorité plutôt que le fameux new, pour une question de gestion des objets créés en mémoire il me semble.
Mais le new fonctionne toujours très bien, même sur C4D 11.

Glloq
03/07/2009, 19h48
En effet, ce petit code du tutoriel appelle la compilation de C4D, j'ai pu faire un .cob mais j'imaginais plutôt générer les mêmes fichiers que ceux utilisés par le module Riptide. Il n'y a ni .cob ni .cof dans ce dernier.

Est-ce parce que son auteur (Keith Young, si je ne m'abuse) n'utilise pas le coffee mais code en C++ ?



Tu réponds à ma question en suspens, Oli_D ; le coffee a donc des limites par rapport au C++ avec C4D.

Dans ce cas, comment ça marche avec le C++ pour que C4D charge notre travail ?

Tengaal
03/07/2009, 20h35
En effet, ce petit code du tutoriel appelle la compilation de C4D, j'ai pu faire un .cob mais j'imaginais plutôt générer les mêmes fichiers que ceux utilisés par le module Riptide. Il n'y a ni .cob ni .cof dans ce dernier.
heu... en quoi le type de fichier est important là, je comprends pas... si tu fais un plugin en COFFEE qui fonctionne, il fonctionnera pareil si il est adapté en C++, le type de fichier ne change absolument rien au fonctionnement du plugin... :o
Explique moi pourquoi c'est mieux de faire des fichiers cdl ou xdl plutôt que des fichiers cob ? :shock:
Au contraire même comme je l'expliquais http://www.frenchcinema4d.fr/forum/index.php?topic=24500.msg456124#msg456124
le COFFEE a comme avantage d'être multiplateforme, un plugin cob tourne de la même façon sur PC que sur mac, alors qu'en C++ il faut que tu compile ton code 2 fois, sur les 2 systeme pour générer 2 fichiers compilés...



Est-ce parce que son auteur (Keith Young, si je ne m'abuse) n'utilise pas le coffee mais code en C++ ?
tu avais lu mon explication ou pas ? car ça fait plusieurs messages ou tu poses des questions dont les réponses étaient déjà donnée... :roll: Tu disais toi-même pourtant que c'était pas une réponse de (BIIIP ! ) Alors lis la attentivement au moins...
http://www.frenchcinema4d.fr/forum/index.php?topic=24500.msg456124#msg456124
COFFEE ça génère du cof ou du cob
C++ ça génère du cdl (PC) ou xdl (mac)



Tu réponds à ma question en suspens, Oli_D ; le coffee a donc des limites par rapport au C++ avec C4D.

Dans ce cas, comment ça marche avec le C++ pour que C4D charge notre travail ?

comme pour les plugins en COFFEE, tu compile ton code, tes fichiers générés sont dans le dossier "plugins" de C4D, tu redémarre ton C4D il va donc charger les plugins au démarrage, et après, bah tu vas chercher ton plugin là ou tu l'as créé (menu plugin, ou alors un tag, ou alors un shader, ou alors dans les import/export), là ça dépend de ce que tu as codé comme type de plugin.

mais bon, ça ne fait que la 3 ou 4e fois que c'est répété... :deal: :wip:

Glloq
03/07/2009, 22h11
Si le coffee ne fait pas les ngons, y a peut-être d'autres choses qu'il ne permet pas, particulièrement sur la manipulation des fichiers.

Y en a parmi vous qui codent en C++ ; qui sauraient me dire par quoi commencer pour arriver à compiler un .cdl ?

Glloq
04/07/2009, 22h07
C'est pas que c'est compliqué, c'est surtout que c'est pauvrement documenté.


Je vois rien dans ce merdier anglais du sdk sur maxon.net qui expliquerait clairement comment inclure la bibliothèque, comment compiler le .cdl...

Une fois qu'on a réussi à inclure la bibliothèque, ça doit être aussi simple qu'avec le coffee.


En attendant, j'arrive pas à comprendre comment créer un projet pour c4d...

Est-ce qu'il y en a dans la communauté francophone qui ont déjà réussi ça ?

bricoman
04/07/2009, 23h07
... et t'arrives à voler ?

Tengaal
05/07/2009, 21h02
C'est pas que c'est compliqué, c'est surtout que c'est pauvrement documenté.


Je vois rien dans ce merdier anglais du sdk sur maxon.net qui expliquerait clairement comment inclure la bibliothèque, comment compiler le .cdl...

Une fois qu'on a réussi à inclure la bibliothèque, ça doit être aussi simple qu'avec le coffee.

Je croyais que tu avais un prof de programmation, donc que tu savais déjà un minimum te servir du C++... apparemment non...
Dans les sources SDK, tu as déjà, pour PC et Mac les fichiers projet incluant déjà les bibliothèques (API), tu n'as rien d'autre à faire que d'ajouter à ce document projet ton source C++ de plugin, puis tu compiles (le cdl ou xdl est déjà défini dans les réglages du projet, le fichier généré sera déjà au bon format)



En attendant, j'arrive pas à comprendre comment créer un projet pour c4d...

Est-ce qu'il y en a dans la communauté francophone qui ont déjà réussi ça ?

Oui, il y en a, dont moi par exemple, j'ai déjà développé des filtres comme par exemple un import de trajectoires de caméra réelle (Motion Control : l'Elicon http://www.yannminh.com/french/IndElicon010.html ), utilisé pour générer une caméra animée 3D depuis une prise vue réelle.
Mais j'ai également développé des plugins "classiques" tels que Dpi2Pix (conversion de dimensions pixels/cm/mm/pouces) ou encore BusinessGraphs qui importe/exporte des fichiers Excel par exemple pour générer des graphiques 3D automatiquement d'après des tableaux de valeurs...

Mais bon, j'ai commencé petit à petit, d'abord avec de petits scripts simples, ensuite j'ai travaillé de plus en plus pour connaitre le fonctionnement interne de C4D ainsi que sa gestion des objets et leurs paramètres, bref ça ne s'apprend pas en un claquement de doigt, il faut bosser un minimum sans griller les étapes...
Je n'avais pas plus de doc que toi, et pas de forum pour m'aider à l'époque, donc le secret... c'est de regarder les scripts existants, les plugins cof existants (car lisibles dans un editeur de texte), bref de bosser en épluchant les codes sources qui existent déjà...

maintenant si tu es allergique à l'anglais et que tu n'es pas plus motivé que ça pour franchir cette barrière de la langue, ben tu vas galérer ça c'est sûr...

Allez, c'est à toi de jouer, commences déjà par faire des petits progs simples qui fonctionnent en coffee ou C++ dans un premier temps, ensuite quand tu aura bien compris le processus de création de plugin, là tu pourras t'attaquer à ton projet de filtre.

bon courage. :wink:

oli_d
05/07/2009, 21h06
Personnelement j'ai commencé le C++ avec ce tutoriel sur les conseils de XS-Yann http://www.astrofish.com/tutorials/c4dtagplugin/index.html Même moi qui suis une grosse bille en english, j'ai réussi à comprendre

Ensuite une fois que tu arrives à compiler dans Visual C++, épluche les exemples qui sont fourni avec C4D (Cinema4DSDK dans le dossier plugin), il y a un exemple pour créer un plug d'import. Si tu es déjà programmeur cela ne devrait pas te poser trop de problème.

Sinon pour compléter la question de l'avantage du C++ par rapport au COFFEE, je ne peux évidemment pas tout énumérer, mais en gros en C++ tu as plus de fonctions et classes déjà à disposition (gestion des collisions par exemple) , tu peux créer tes propres objets de type primitives et tu peux également utiliser des bibliothèques externes, comme STL par ex (parait-il parce que je n'ai pas encore vraiment réussi essayé !).