Créer des plugins Python pour Cinema 4D

Ce cours aborde les différentes manières dont Python a été intégré à Cinema 4D depuis la sortie des versions R12 et R13. Le professeur Michael Auerswald examinera ses fonctionnalités du point de vue d'un artiste et d'un technicien, en utilisant des exemples pratiques. Seront abordés l'objet Python Generator, les effecteurs Python, les nœuds Xpresso et l'éditeur d'expressions. Étant donné qu'il s'agit d'un cours basé sur Python, il impliquera une certaine programmation. Python est un langage relativement facile à apprendre, donc même si vous n'êtes pas encore familier avec, tant que vous possédez des connaissances de base en programmation, vous devriez pouvoir suivre sans problème. Nous travaillerons avec la version R13 Studio dans ce cours, cependant, la plupart des éléments fonctionneront de la même manière dans la version précédente R12.

Michael Auerswald est un artiste 3D freelance et TD basé à Berlin, en Allemagne. Il est un intervenant régulier chez 908video et travaille également comme TD pour Pixomondo. Il a étudié les sciences informatiques et l'animation de personnages, mais s'est orienté vers le domaine du motion design et des effets visuels. Son outil de prédilection est Cinema 4D, mais il a également un faible pour Houdini.

Photographie de Michael Auerswald

Introduction à Python dans Cinema 4D

Configuration de l'environnement de développement

Nous aborderons la configuration de votre environnement pour le développement Python, ainsi que comment et où trouver des informations sur le SDK. Cela inclut un aperçu de Python dans Cinema 4D.

Les bases de la programmation Python

La seconde moitié du cours est entièrement dédiée à la création des premiers scripts Python pour modifier et animer des objets, via une interface utilisateur simple. Nous utiliserons l'objet Python Generator pour générer de nouveaux objets à partir de zéro et modifier leurs points.

Schéma illustrant l'objet Python Generator dans Cinema 4D

Comprendre les API de Cinema 4D pour les Plugins

Développement avec C++ et Python

La création de plugins pour Cinema 4D peut être réalisée avec C++ ou Python. Inévitablement, les choses évoluent et avec la version R20, MAXON a introduit une nouvelle API qui a été complétée et affinée depuis. Cela a signifié que les plugins compilés dans les versions R19 ou antérieures ne fonctionnaient pas dans les versions R20 ou ultérieures sans être recompilés (bien que certains puissent fonctionner avec l'aide du plugin INSYDIUM Bridge).

Cela implique que les tutoriels écrits pour les versions R19 ou antérieures peuvent ne pas être applicables aux versions R20 ou ultérieures. Pour cette raison, les tutoriels originaux ont été déplacés vers une page séparée. Pour les versions R20 et ultérieures, un nouvel ensemble de tutoriels sera disponible.

L'API Python : flexibilité et accès

Python est le second langage de programmation/scripting de C4D. Python offre beaucoup plus d'accès que l'ancien langage COFFEE de Maxon, mais pas autant que C++. Python s'exécute instantanément sur n'importe quelle plateforme disponible. Python dispose de nombreuses ressources sur Internet, ce qui en fait le premier choix pour tout ce qui concerne les bases de données ou le web.

L'API C++ : puissance et contrôle

Notre SDK C++ offre la suite d'outils la plus puissante. C'est le bon choix si vous avez besoin de vitesse, d'un accès complet à toutes les parties de l'application et que vous souhaitez créer des projets complexes. Il prend en charge Xcode pour Mac et Visual Studio pour PC. La documentation de l'API ne laisse rien à désirer.

Le SDK Cineware : pont et rendu

Cineware est une bibliothèque C++ qui peut créer un pont de flux de travail entre votre application et Cinema 4D. Elle vous permet de construire, charger et sauvegarder des fichiers C4D - sans avoir besoin d'une installation de C4D. Si une installation de C4D est présente, vous pouvez également rendre à l'aide de Cineware. Le rendu sera effectué en arrière-plan, comme s'il faisait partie intégrante de votre application. Cineware est la bibliothèque d'échange de fichiers et de connexion de rendu de Maxon.

Schéma comparatif des API C++ et Python dans Cinema 4D

Structure d'un atelier de programmation Python pour Cinema 4D

Un ingénieur en informatique et instructeur académique certifié par Maxon propose 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.

Pourquoi apprendre Python pour Cinema 4D ?

Python est devenu ces dernières années l'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 audiovisuelle, des réseaux informatiques et de la science. Sa simplicité fait qu'il est de plus en plus enseigné comme premier langage informatique. Apprendre un langage de programmation tel que Python est une expérience enrichissante et ludique qui peut offrir de grandes perspectives professionnelles.

Cinema 4D, l'un des logiciels de modélisation et d'animation 3D les plus utilisés, propose une large gamme d'outils pour les créateurs, mais pour ceux qui veulent aller plus loin dans la personnalisation et l'automatisation des tâches, Python est un atout indispensable.

L'API Cinema 4D : la clé du contrôle

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.

Programme détaillé du développement de plugins Python

Ce programme couvre les aspects fondamentaux de Python, l'API Cinema 4D, et des applications pratiques pour la création de plugins.

Module 1 : Fondamentaux de Python

  • Découverte du Python dans Cinema 4D
  • Sites pour apprendre le langage Python
  • Configuration de notre espace de travail
  • Premiers pas en Python : l'interpréteur dans la console
  • Variables, Affectations et Manipulation de données
  • Manipulations des Listes et Indexation
  • Manipulation des dictionnaires, utilisation des paires Clés - Valeurs
  • Programmation Structurée : Boucles For et While
  • Premiers Scripts en Python : Tests Logiques OR et AND
  • Fonctions Anonymes Lambda
  • Écrire vos propres Fonctions avec 'def'
  • Les modules standards en Python
  • Créer vos propres modules - Chemins d'accès

Module 2 : Programmation Orientée Objet et API Cinema 4D

  • Débuter en Programmation Orientée Objet Python
  • Variables de Classe - Classe dérivées - Héritage
  • Découverte de l'API de Cinema 4D : le SDK et les Classes
  • Création d'Objets c4d, Manipulation de la Hiérarchie
  • Accès aux Attributs d'Objets : le BaseContainer

Module 3 : Création d'objets et manipulation avancée

  • Création du Cloneur, class BaseObject()
  • Création des 27 Petits Cubes, class BaseDocument()
  • Transformation des cubes, Méthode SetSelection()
  • Création des matériaux des faces
  • Création des propriétés Sélection et Matériaux
  • Attribution des sélections aux Tags
  • Nouveau cloneur Mécanique
  • Paramétrage de la Boîte d'Atténuation de l'Effecteur
  • La class NeutresRotation() des Axes des Faces
  • La class c4d.CTrack - Ajout d'Images clés (class c4d.CKey)
  • Dict. des Tailles et Décalage des Boîtes d'Atténuations
  • Mise à jour R20+ : remplacement des atténuations par des champs
  • Mise à jour 20+ champs et valeurs par défaut
  • Premières rotations du cube

Module 4 : Interfaces Utilisateur et Nœuds Xpresso

  • Création d'une fenêtre de dialogue utilisateur
  • Gestion du dialogue - Class Gedialog()
  • Paramétrage des effecteurs à partir de la chaîne de mélange
  • Création d'un nœud expresso GvNode en Python
  • Ajout dans le dialogue de l'inversion
  • Méthode de Classe Inversion du mélange

Module 5 : Sauvegarde et gestion des données

  • Création du BaseContainer de sauvegarde de nos données
  • Gestion de la sauvegarde des données
  • Class Contenant suite
  • Gestion des lectures et écritures dans notre SubContainer

Module 6 : Modélisation et optimisation

  • Création du dict modèle du cube en mémoire
  • Insertion des spins de cubes et affichage
  • Méthode de Classe Rotate du Modèle Cube.posi

Module 7 : Résolution du Rubik's Cube (Application pratique)

Le second objectif est d'implémenter en python un algorithme de résolution du Rubik's Cube. Vous trouverez en pièces jointes les PDF contenant leurs descriptifs. 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.

  • Présentation de la méthode de résolution pour débutants du Rubik
  • Sérialisation du modèle avec Pickle
  • Codage des arrêtes blanches et des orientations
  • Localisation des cubes après mélange
  • Spins d'orientation et formules de placement
  • Finalisation de la croix blanche
  • Méthode de Test des formules
  • Modification du codage des orientations
  • Implémentation des formules de Rotation
  • Résolution d'un coin blanc
  • Résolution finale face blanche
  • Présentation algorithmes du 2ème layer
  • Rotation du cube de 180°
  • Transposition des formules pour les 4 côtés
  • Implémentation des dictionnaires de formules
  • Résolution du 2ème layer méthode simple
  • Présentation méthode Fridrich et codage des patterns
  • Implémentation des 57 OLL
  • Codage des patterns jaunes
  • Implémentation algorithme Step5
  • Création des 3 rotations centrales MSE
  • Codification des PLL
  • Algorithme de force Brute pour la résolution finale

Module 8 : Compatibilité et bonnes pratiques

  • Compatibilité Python 2.7 et Python 3.7.7 pour R23

Rubik's Cube with Python and OpenCV

Ressources pour les développeurs de plugins Cinema 4D

Maxon propose de nombreuses options pour les développeurs de plugins. Que vous développiez pour Mac, PC, Linux ou que vous souhaitiez mettre à jour un plugin existant, vous trouverez tout ce dont vous avez besoin sur notre page dédiée aux développeurs de plugins (lien vers developers.maxon.net). Si vous souhaitez aller plus loin, rejoignez notre groupe Maxon Registered Developer et accédez au support de nos spécialistes SDK qui vous aideront à démarrer rapidement.

Capture d'écran de la page développeurs de Maxon

Conclusion : Maîtriser Python pour Cinema 4D

L'apprentissage de Python dans Cinema 4D ouvre un monde de possibilités en matière d'automatisation et de personnalisation. Bien que les premiers pas puissent sembler intimidants, la maîtrise de ce langage dans l'environnement C4D vous apportera une flexibilité inégalée et un gain de temps considérable dans vos projets.

tags: #comment #creer #plugin #phyton #c4d

Articles populaires: