PDA

Voir la version complète : Comment créer un addiciel en C++ ?



Glloq
29/10/2010, 22h42
Bonjour,


Je voudrais créer un filtre d'import/export pour un format de fichier 3d dont j'ai déjà codé toute la lecture de sa structure en C++.

J'utilise Dev-C++, C4D 11.5 et prévois de coder pour Windows dans un premier temps.



À partir de là, quelqu'un sait-il ce que je dois faire pas-à-pas pour installer la bibliothèque de C4D et compiler mon premier *.CDL ?

(En comptant sur le courage de celui qui répondra par une réponse française et non par un lien vers le SDK C++...)

genghiskhan
30/10/2010, 02h11
Tiens un Glloq

c'est le nom du clan Battlefield que j'ai crée :D

j'ai deux ailes au Q aussi

oli_d
30/10/2010, 07h39
Salut,

J'ai complètement laissé le C++, pour passer au Python qui est justement beaucoup moins contraignant au niveau compilation.

Le plus simple je pense que c'est d'utiliser Visual Studio et d'ouvrir le projet qui est dans ...\MAXON\CINEMA 4D R11.5\plugins\cinema4dsdk et il y a même un exemple de plug d'import/export du format STL

Je n'ai jamais réussi à compiler avec Visual C++ 2008 express, j'ai toujours dû passer par la version 2005 et je ne sais pas si elle est encore disponible ...

Sinon la bibliothèque est sous ...\MAXON\CINEMA 4D R11.5\resource il y a le dossier _api et _api_lib pour le projet Visual Studio

Je pense que si XsYann ou Valkaari passent par ici ils pourront probablement t'en dire plus.

Mais je te conseillerai quand même le python,( Py4d pour la r11.5) ton plug sera directement utilisable mac/pc 32 et 64 bits ...

Glloq
30/10/2010, 20h34
Le Python de c4d n'est pas plus limité que le C++ ?


De ce que j'ai compris, à l'instar du coffee, il a le défaut de ne pas gérer tout ce que fait le logiciel contrairement au c++.

oli_d
30/10/2010, 20h58
Le Python de c4d n'est pas plus limité que le C++ ?


De ce que j'ai compris, à l'instar du coffee, il a le défaut de ne pas gérer tout ce que fait le logiciel contrairement au c++.

En fait il fait quasiment tout ce que fait le C++ à part quelques rares méthodes que le développeur(Sebastian Rath), qui est redoutable d'efficacité, n'a pas encore eu le temps d'adapter, mais ce qui ne saurait tarder.

Tout est basé sur le SDK en C++. Je n'ai pas encore testé un plugin d'import mais regarde dans la doc python du côté de c4d.plugins.SceneLoaderData et c4d.plugins.SceneSaverData qui correspondent aux classes similaires en C++

Glloq
30/10/2010, 21h37
J'essaie avec l'exemple de cinema4dsdk, mais c'est bourré, moi qui suis habitué à apprendre avec Hello word...

J'imagine mal tous les créateurs d'addiciels démarrer leur nouveau projet en chargeant cinema4dsdk. Y a pas un code minimum à faire dans main ?


Pour le Python, je verrais sûrement ça après avoir échoué pendant des mois sur le c++ dans la mission d'afficher un vulgaire petit message de rien du tout.

oli_d
30/10/2010, 21h52
J'essaie avec l'exemple de cinema4dsdk, mais c'est bourré, moi qui suis habitué à apprendre avec Hello word...

Si tu en es là, je te conseille le python parce que tu peux justement commencer à faire ceci dans le Gestionnaire de scripts python. En C++ tu dois commencer par compiler un plugin avant de ne faire apparaître la moindre lettre dans la console...

Glloq
30/10/2010, 23h11
Oui mais je voudrais comprendre C4D en C++, langage auquel je suis déjà habitué, alors je pourrais y passer des heures et des mois pour finir par comprendre les codes sources d'exemple dans cinema4dsdk.

Mais c'est con de perdre tout ce temps si quelqu'un l'a déjà fait avant moi !


Quand je vois la simplicité pour faire un filtre dans 3ds max...

Le sdk a l'air d'avoir beaucoup d'infos mais rien pour débuter, seulement des références.



Il y a des gens de la communauté française de c4d qui ont déjà fait des filtres pour c4d ?

valkaari
31/10/2010, 19h22
http://www.microbion.co.uk/graphics/c4d/create_plugins1a.htm

Cette page m'a pas mal aidé pour compiler le sdk sous windows. Sur mac c'est un peu plus simple mais ça reste un peu le merdier.


Pour ce qui est du programme, tu peux t'appuyer sur le sdk. Il te faut le main.cpp qui contient l'appel aux fonctions d'enregistrement des plugins.

Ces fonctions sont dans les autres .cpp comme par exemple dans le répertoire filter tu as des exemples pour importer ou exporter des scènes.

sinon tu as le forum et des infos ici
http://www.maxon.net/index.php?id=157&L=0


Les sdk de la R12 sont complet et à jours. Il faut aussi savoir que les plugins R11.5 ou R11 ne sont plus compatible avec la R12, donc tu devrais commencer par la R12 directement.

tu as des IDs de test si tu veux sinon tu vas les chercher directement pour ton plug.
http://www.plugincafe.com/forum/developer.asp


IDs de test de 1000001-1000010 à ne surtout pas laisser sur une release.


Sinon bon courage.

Glloq
31/10/2010, 23h06
Comment ça.. incompatible ? Avec tous les addiciels qui existent pour les versions antérieures...

Admettons que j'ignore ce bordel pour l'instant, il serait trop compliqué d'adapter un code version 11 pour la version 12, ensuite ?



Parce que j'aimerais commencer, là ; ça me gonfle depuis des mois, on dirait la maison des fous dans Les douze travaux d'Astérix.

Moi qui pensais que savoir programmer pouvait m'aider à faire un filtre pour c4d mais en fait, c'est à croire qu'il serait moins laborieux de lire le code en hexadécimal et reproduire chaque point et polygone à la main.

valkaari
01/11/2010, 09h03
La R12 a fait l'objet d'une refonte du code. Donc certaines fonctions ont changées. C'est pas vraiment plus compliqué ni très long d'adapter. Parfois un simple rechercher/remplacer suffit. Parfois non.

C'est valable pour le c++ donc les .cdl .cdl64 et dylib
Pour les .cob et .cof (Plugin Coffee) c'est à pile ou face. Tout dépends des fonctions utilisées.

Après pour ce qui est de savoir programmer ou pas, que tu sois un pro en python, en c++ ne t'empêchera pas de passer par l'étape, "j'apprends le sdk et j'apprends à parler à cinema4D". Autrement dit, faire bouger un cube en X demande plus de connaissance du sdk que de connaissance c++. Bien que plus tu as de connaissance en c++ et plus tu apprendra vite le sdk :p

Pour le fitre, tu as la chance d'avoir un exemple dans le sdk comme je le disais, profites en, c'est pas le cas pour toutes les possibilités de cinema4D

Aurety
01/11/2010, 09h30
C'est quoi un addiciel ? un plugin ??

Glloq
01/11/2010, 13h16
C'est quand même drôlement bizarre ; j'ai recherché, dans tout le projet, la chaîne avec « STL » pour la modifier pour voir si les changements sont pris en compte, mais non. Aucun changement dans le menu d'exportation de c4d qui conserve « C++ SDK - STL ».

Est-ce l'édition des menus qui serait séparée du cdl ?



PS : Aurety, addi- comme addition et -ciel, logiciel ; tout ce qui s'ajoute à un programme (extension, script, habillage, etc).

oli_d
01/11/2010, 14h45
Oui la gestion des menus est séparée du cdl . Il y a un fichier texte "c4d_strings.str" sous "....cinema4dsdk\res\strings_us"

Glloq
01/11/2010, 16h13
Ah oui !

J'ai toujours programmé en console alors je suis peu familier avec les ressources.


Je vais voir ça, merci !