Apprendre à créer vos Plugins en Python pour Cinema 4D
Problème de lecture
Cette vidéo ne semble pas disponible
00:00
00:00
Sous-titres non disponibles

TUTO Apprendre à créer vos Plugins en Python pour Cinema 4D

Patrice Weisz
64,99€
3 paiements de 21,33€ avec Klarna. En savoir plus

Téléchargement & visionnage illimité

Satisfait ou remboursé

Paiement 100% sécurisé

Il est très rare de trouver des formations en français sur la programmation en Python dans Cinema 4D.
C'est une personne de chez Maxon qui m'en faisait la remarque il y a bientôt 2 ans. Etant de formation ingénieur en informatique et certifié par Maxon en tant qu'instructeur académique, je me suis dis qu'il était de mon devoir de m'y mettre un jour. Et donc voici, enfin, un cours en français sur le développement détaillé de scripts et de plugins en langage Python pour Cinéma 4D !

Je vous propose ici un atelier de programmation complet avec très peu de théorie et beaucoup de pratique permettant de se former au langage Python et à l’API de programmation de Cinema 4D. C'est donc un tuto plus technique que d'habitude qui vous permettra de découvrir sans doute une nouvelle facette un peu cachée de ce merveilleux logiciel 3D.
 

Le langage Python 

Le Python est devenu ces dernières années un des langages les plus utilisés et les plus polyvalents au monde. Il est très présent dans le domaine de la 3D et de la post-production audio-visuelle, des réseaux informatiques et de la science. Sa simplicité fait qu'il est de plus en plus enseigné comme premier langage informatique. Ce qui ne retire rien ni à sa puissance ni à certains de ses concepts très évolués.
Apprendre un langage de programmation tel que le Python est une expérience enrichissante et ludique qui peut offrir de grandes débouchées professionnelles. L'interpréteur Python fourni dans Cinema 4D est standard (Version 2.7 jusqu'à la S22 et Version 3.7.7 pour R23 et au-delà) donc la maîtrise de ce langage vous servira aussi en dehors de Cinema 4D.
 

L'API de Cinema 4D

Seule l'API (interface de programmation) est spécifique à Cinema 4D pour pouvoir le "piloter", comme elle est spécifique à chaque logiciel (Maya, Blender, DaVinci Resolve, etc.) supportant ce langage. Dans ce tuto vous apprendrez à l'utiliser et surtout à maîtriser les "classes"  et méthodes" nécessaires à la conception de Plugins professionnels pour Cinema 4D. L'API décrite ici est celle du dernier SDK Python pour Cinema 4D, fourni gratuitement par Maxon pour aider les développeurs de plugins.
 

Au programme de ce cours en ligne sur la création de plugins Cinema 4D avec Python

Pour cette formation en ligne, j'ai pris comme thématique pédagogique la résolution et l'animation du fameux Rubik's Cube, si simple à modéliser dans Cinema 4D et si difficile à animer correctement.

Cela a été une aventure passionnante que de réussir à résoudre ce "maudit cube" et d'en faire un plugin.
C'est cette aventure, en plus de ma très bonne connaissance de Cinema 4D, que je souhaite partager avec vous ici. 

J’écrirais donc sous vos yeux le script python complet en expliquant et justifiant absolument toutes les instructions et les techniques que j’utilise.
L'apprentissage par projet, qui consiste à trouver des solutions à des problématiques concrètes, permet de se former beaucoup plus rapidement que les cours théoriques souvent ennuyeux.
Ici, après avoir vu les fondamentaux du langage Python, vous serez très vite confronté à des problématiques réelles et il faudra donc vous jeter à l'eau.
C'est parfois plus difficile, et souvent plus formateur, mais ne vous inquiétez pas, je serai toujours avec vous pour vous accompagner dans cette belle aventure.
 

Les défis qu'il faudra relever :

  • Le premier défi que nous relèverons est de trouver un rig permettant de modéliser et d'animer facilement les rotations du Rubik's Cube avec des effecteurs héritage et un clôneur, à partir d'une chaîne de caractères codifiant des rotations des faces tirées au hasard. 
  • Le second est d'implémenter en python un algorithme de résolution du Rubik's Cube. Cela sera l'occasion de découvrir 2 méthodes : la méthode débutant de résolution la plus courante mais aussi la méthode avancée Fridrich que l’on utilisera pour la résolution de la dernière face du cube.
    Vous trouvez en pièces jointes les PDF contenant leurs descriptifs. Beaucoup de sites de "cubeurs" passionnés décrivent en détail ces méthodes et leurs variantes.
  • Le troisième et dernier défi sera d’apprendre à transformer le script python obtenu en un plugin distribuable qui s'installe automatiquement au démarrage de Cinema 4D. 
     

Un atelier permettant de découvrir l'API de Cinema 4D :

Cet atelier ambitieux sera donc pour vous l'occasion de découvrir la bibliothèque des "classes" et des "méthodes" Python de Cinema 4D et bien sûr la puissance du langage Python dans celui-ci. 

Nous réviserons ensemble les bases de ce langage polyvalent et irons jusqu'à l'apprentissage avancée de la programmation orientée objet, indispensable pour pouvoir programmer de façon professionnelle et comprendre l'API Cinema 4D.

Tout est expliqué pas à pas, chaque ligne de programme et écrite et commentée sous vos yeux.
L'API de Cinema 4D est expliquée et détaillée pour chaque "classe", "méthode" et "instance" utilisées.

Ce dont je suis convaincu, c'est qu'après ces 20h passées ensemble, vous serez en mesure d'améliorer vous-même la méthode de résolution proposée ici, car elle est largement perfectible. Vous pourrez même à titre d'exercice, avec un peu de réécriture, augmenter la compatibilité du plugin avec les versions antérieures à la version 20. Vous serez donc parfaitement en mesure d'écrire aussi vos propres plugins.

Les acquis de cette formation :

A l'issue de cette formation en ligne et en vidéo vraiment complète, vous pourrez facilement programmer vos scripts python et concevoir des plugins pour Cinema 4D permettant d'ajouter de nouvelles fonctionnalités à votre logiciel de modélisation préféré. 
 

Composition du tutoriel :

Ce tutoriel est décomposée en 75 vidéos cumulant plus de 20h de cours !

Des dizaines d'instructions python, de classes et de méthodes de l'API de Cinema 4D seront testées sous vos yeux et leur utilisation expliquée de façon pédagogique.

Vous apprendrez aussi à écrire du code lisible, à structurer et commenter vos programmes correctement, à vous organiser en utilisant des façons de faire éprouvées afin de passer le minimum de temps en "débugage" et de travailler comme un professionnel.

Le script final fourni, qui comprend toute la modélisation et la résolution du Rubik's Cube ainsi que l'implémentation de l'interface utilisateur et l'enregistrement du plugin, fait environ 1400 lignes de programme toutes commentées.

Un fichier étape par étape est fourni pour chacune des vidéos afin de pouvoir coder et tester vous-même le programme dans votre logiciel 3D en suivant les explications.

A l'issue de cette formation vraiment complète de plus de 20h de cours pratique, vous serez en mesure de programmer vos scripts python et vos plugins avec facilité et efficacité.

Alors n’hésitez pas : lancez-vous 😉

Qu’allez-vous apprendre dans ce cours ?

Plan de cours
Chapitre 1
Les bases du Langage Python
Chapitre 2
Programmation Orientée Objet en Python
Chapitre 3
Modélisation des cubes du Rubik
Chapitre 4
Gestion des rotations du Cube avec les effecteurs
Chapitre 5
Sauvegarde des données dans un SubContainer
Chapitre 6
Création de notre dict modèle en mémoire
Chapitre 7
Implémentation de la méthode Simple pour les 2 layers

Plan détaillé du cours

Chapitre 1 : Les bases du Langage Python
2h41
 
Leçon 11.1 - Découverte du Python dans Cinema 4D
Leçon 21.2 - Sites pour apprendre le langage Python
Leçon 31.3 - Configuration de notre espace de travail
Leçon 41.4 - Premiers pas en Python : l'interpréteur dans la console
Leçon 51.5 - Variables, Affectations et Manipulation de données
Leçon 61.6 - Manipulations des Listes et Indexation
Leçon 71.7 - Manipulation des dictionnaires, utilisation des paires Clés -Valeurs
Leçon 81.8 - Programmation Structurée : Boucles For et While
Leçon 91.9 - Premiers Scripts en Python : Tests Logiques OR et AND
Leçon 101.10 - Fonctions Anonymes Lambda
Leçon 111.11 - Ecrire vos propres Fonctions avec 'def'
Leçon 121.12 - Les modules standards en Python
Leçon 131.13 - Créer vos propres modules - Chemins d'accès
Chapitre 2 : Programmation Orientée Objet en Python
1h23
 
Leçon 12.14 - Débuter en Programmation Orientée Objet Python
Leçon 22.15 - Variables de Classe - Classe dérivées - Héritage
Leçon 32.16 - Découverte de l'API de Cinema 4D le SDK et les Classes
Leçon 42.17 - Création d'Objets c4d, Manipulation de la Hiérarchie
Leçon 52.18 - Accès aux Attributs d'Objets : le BaseContainer
Chapitre 3 : Modélisation des cubes du Rubik
3h57
 
Leçon 13.19 - Création du Cloneur, class BaseObject()
Leçon 23.20 - Création des 27 Petits Cubes, class BaseDocument()
Leçon 33.21 Transformation des cubes, Méthode SetSelection()
Leçon 43.22 Création des matériaux des faces
Leçon 53.23 Création des propriétés Sélection et Matériaux
Leçon 63.24 Attribution des sélections aux Tags
Leçon 73.25. Nouveau cloneur Mecanique
Leçon 83.26 Paramétrage de la Boite d'Atténuation de l'Effecteur
Leçon 93.27 La class NeutresRotation() des Axes des Faces
Leçon 103.28 La class c4d.CTrack - Ajout d'Images clés (class c4d.CKey)
Leçon 113.29 Dict. des Tailles et Décalage des Boites d'Atténuations
Leçon 123.29bis Mise à jour R20+ : remplacement des atténuations par des champs
Leçon 133.29ter Mise à jour 20+ champs et valeurs par défaut
Chapitre 4 : Gestion des rotations du Cube avec les effecteurs
2h36
 
Leçon 14.30. Premières rotations du cube
Leçon 24.31. Création d'une fenêtre de dialogue utilisateur
Leçon 34.32. Gestion du dialogue - Class Gedialog()
Leçon 44.33. Paramétrage des effecteurs à partir de la chaine de mélange
Leçon 54.34. Création d'un noeud expresso GvNode en Python
Leçon 64.35. Ajout dans le dialogue de l'inversion
Leçon 74.36. Méthode de Classe Inversion du mélange
Chapitre 5 : Sauvegarde des données dans un SubContainer
1h24
 
Leçon 15.37. Création du BaseContainer de sauvegarde de nos données
Leçon 25.38.Gestion de la sauvegarde des données
Leçon 35.39. Class Contenant suite
Leçon 45.40. Gestion des lectures et écritures dans notre SubContainer
Chapitre 6 : Création de notre dict modèle en mémoire
1h01
 
Leçon 16.41. Création du dict modèle du cube en mémoire
Leçon 26.42. Insertion des spins de cubes et affichage
Leçon 36.43. Méthode de Classe Rotate du Modèle Cube.posi
Chapitre 7 : Implémentation de la méthode Simple pour les 2 layers
21m01
 
Leçon 17.44 Présentation de la méthode résolution débutant du Rubik
Leçon 27.45. Sérialisation du modèle avec Pickle
Chapitre 8 : Faire la croix blanche Méthode Simple
1h26
 
Leçon 18.46 Codage des arrêtes blanches et des orientations
Leçon 28.47. Localisation des cubes après mélange
Leçon 38.48. Spins d'orientation et formules de placement
Leçon 48.49. Finalisation de la croix blanche
Leçon 58.50 Méthode de Test des formules
Chapitre 9 : Orienter les angles de la face blanche
59m19
 
Leçon 19.51 Modification du codage des orientations
Leçon 29.52 Implémentation des formules de Rotation
Leçon 39.53. Résolution d'un coin blanc
Leçon 49.54 Résolution finale face blanche
Chapitre 10 : Ordonner le 2e niveau méthode Simple
1h14
 
Leçon 110.55 Présentation algorithmes du 2e layer
Leçon 210.56. Rotation du cube de 180°
Leçon 310.57 Transposition des formules pour les 4 côtés
Leçon 410.58. Implémentation des dictionnaires de formules
Leçon 510.59. Résolution du 2e layer méthode simple
Chapitre 11 : Résolution de la face jaune, OLL Méthode Fridrich OLL
1h10
 
Leçon 111.60 Présentation méthode Fridrich et codage des patterns
Leçon 211.61. Implémentation des 57 OLL
Leçon 311.62. Codage des patterns jaunes
Leçon 411.63 Implémentation algorithme Step5
Leçon 511.64 création des 3 rotations centrales MSE
Chapitre 12 : Finalisation du Cube avec les PLL , méthode Fridrich
45m21
 
Leçon 112.65 Codification des PLL
Leçon 212.66. Algorithme de force Brute pour la résolution finale
Chapitre 13 : Transformation de notre script en plugin distribuable
2h08
 
Leçon 113.67. Compatibilité Python 2.7 et Python 3.7.7 pour R23
Leçon 213.68. Association de l'icone à notre Plugin
Leçon 313.69 Enregistrement du Plugin CommandData
Leçon 413.70 Création de la classe dérivée de c4d.plugins.CommandData
Leçon 513.71 Création de l'interface user PyRubikDialog()
Leçon 613.72 Optimisation de la chaine de rotations de la solution
Leçon 713.73 Ajouts de Sliders dans l'UI
Leçon 813.74 Finition de l'interface utilisateur et FIN

Aperçus

Avis des apprenants

Détail des avis
88
Apprenants
2
Commentaires
5/5
Note moyenne
5/5
2
4/5
0
3/5
0
2/5
0
1/5
0
Réjean Tremblay
Réjean Tremblay
Publié le 11/10/2020
Un excellent tuto. Pour apprendre à naviguer dans la doc SDK de MAXON, interpréter les informations qu'on y trouve et finalement les utiliser dans un script, c'est le tuto qu'il faut. De plus, le projet est très amusant.
Frédéric Woehl
Frédéric Woehl
Publié le 30/09/2020
Enfin un vrai tuto pour programmer dans cinema4D en français ! Ca ouvre tellement de perspective ! J'adore !

Vos questions sur le cours

Quel est le niveau requis pour suivre ce tuto ?

intermédiaire

Que contient le fichier source ?

tous les scripts python pas à pas en suivant chaque vidéos ; des pdf avec les méthodes de résolution du rubik's cube que l'on utilise ; le dossier du plugin final à installer dans cinema 4D

Quelle version de python est couverte par ce tuto ?

Ce tuto vous montre comment écrire un plugin compatible à la fois avec la version python 2.7 (C4d jusqu'à S22) et aussi avec la version python 3.7.7 (à partir de la version 23)

Payer plus tard ou en 3x

Prix d'achat : 64,00 €
Pour payer plus tard ou en plusieurs versements échelonnés, sélectionnez Klarna comme moyen de paiement lors du règlement.

Ajoutez des articles à votre panier

Sélectionnez Klarna lors du règlement

Recevez une autorisation

Payez plus tard ou en plusieurs fois

3 paiements de 21,33 €
tous les mois, sans intérêts
Total : 64,00 €
Afficher les conditions : Klarna
Klarna : conditions d'utilisation du paiement différé en 3 échéances.

Attendez ! 🤗

Accédez à plus de 1426 tutos gratuits

Notre politique de protection des données