Dernières actualités
Guide pour enregistrer une vue et capturer la bonne image dans Rhino 8Blender Grease Pencil Line Art : créer des lignes dans des scènes architecturalesComment écrire une extension Python pour Blender ? Créer son premier opérateurAnalyser des vidéos d’architecture avec l’API Gemini : guide pas à pasTripo P2.0 et Astra intègrent la création d’assets 3D au workflow BlenderDes rendus plus propres dans Blender Cycles : échantillonnage et débruitageMSI XpertStation WS300 testé : la puissance du GB300 sur un poste de travailConcours de conception et de supervision des travaux du Limassol Arts Centre annoncéGuide du ray tracing, de Fast GI et des matériaux dans Blender EEVEEPrix européen du logement collectif : deux projets parisiens récompensés
TutorielsBlender

Comment écrire une extension Python pour Blender ? Créer son premier opérateur

Le guide officiel de Blender explique comment transformer un script en opérateur, puis en extension, avec Python. Ce tutoriel présente les étapes essentielles à l’aide d’un exemple qui déplace les objets de la scène sur l’axe X.

Scène évoquant le développement d’une extension Python dans un espace de travail dédié à la visualisation architecturaleImage IA
Image d’illustration générée par IA.Image : 3dsınıfı / FCA AI

En bref

  1. Une extension Blender est un module Python qui contient des informations supplémentaires permettant à l’application de le reconnaître et de l’afficher dans une liste.
  2. L’opérateur d’exemple déplace de 1 unité sur l’axe X tous les objets de la scène active.
  3. L’extension peut être testée dans l’éditeur de texte de Blender et chargée depuis un fichier .py.
  4. Le guide recommande de connaître les bases de Blender et de Python, ainsi que les notions de module et de classe.

Ce que vous allez apprendre dans ce guide

Dans ce guide, vous allez transformer un simple script Python fonctionnant dans Blender en opérateur, puis en extension installable. L’outil présenté déplace tous les objets de la scène active de 1 unité sur l’axe X. L’objectif n’est pas de proposer un outil prêt pour la production, mais d’expliquer pas à pas comment Blender définit, enregistre et exécute les opérateurs.

Une extension est un module Python qui contient les informations supplémentaires nécessaires pour que Blender la reconnaisse et l’affiche dans sa liste. Le dictionnaire bl_info indique notamment le nom et la catégorie de l’extension, ainsi que la version minimale de Blender requise. Un opérateur permet quant à lui d’appeler une action depuis Blender. Dans cet exemple, nous le lancerons depuis la recherche d’opérateurs.

Point important : l’exemple agit sur tous les objets de la scène active, et pas seulement sur les objets sélectionnés. Il est donc plus prudent d’effectuer les premiers tests dans une scène de test ou sur une copie du fichier, plutôt que dans un projet important.

Prérequis

Vous devez connaître les bases de Blender et savoir exécuter un script dans l’éditeur de texte. Il est également recommandé de connaître les types de données Python courants, comme les nombres, les booléens, les chaînes de caractères, les listes, les tuples, les dictionnaires et les ensembles. Le guide conseille aussi d’avoir des notions de base sur les modules et les classes Python.

Dans les métadonnées de l’extension présentée en exemple, la version de Blender est indiquée comme (2, 80, 0). Il s’agit de la version minimale mentionnée dans les métadonnées de l’exemple ; cela ne signifie pas que le code a été testé avec les versions récentes de Blender. Il faut vérifier le comportement de l’API dans la version que vous utilisez. Aucun compte utilisateur, matériel particulier ou abonnement payant n’est indiqué comme prérequis.

Lancer Blender depuis un terminal est une possibilité pour déboguer. Le guide précise également que l’activation des Extras développeur dans les préférences peut faciliter le développement d’extensions.

Étape par étape : écrire son premier opérateur

1. Ajoutez le code dans l’éditeur de texte

Dans l’exemple ci-dessous, la classe ObjectMoveX définit l’opérateur. Lorsque execute() est exécutée, les objets de la scène active sont traités un par un et la valeur de la position X de chacun est augmentée de 1.0. L’option UNDO dans bl_options permet d’utiliser l’opérateur avec la fonction d’annulation.

python
bl_info = {
    "name": "Move X Axis",
    "blender": (2, 80, 0),
    "category": "Object",
}

import bpy

class ObjectMoveX(bpy.types.Operator):
    """My Object Moving Script"""
    bl_idname = "object.move_x"
    bl_label = "Move X by One"
    bl_options = {'REGISTER', 'UNDO'}

    def execute(self, context):
        scene = context.scene
        for obj in scene.objects:
            obj.location.x += 1.0
        return {'FINISHED'}

def register():
    bpy.utils.register_class(ObjectMoveX)

def unregister():
    bpy.utils.unregister_class(ObjectMoveX)

if __name__ == "__main__":
    register()

Cet exemple minimal enregistre la classe de l’opérateur, mais n’ajoute aucun élément à l’interface d’un menu. unregister() supprime également la classe enregistrée. bl_idname définit l’identifiant unique de l’opérateur, tandis que bl_label indique le nom affiché dans l’interface de Blender et dans les résultats de recherche. Lorsque l’action réussit, la fonction execute() renvoie le résultat FINISHED.

2. Exécutez le script et appelez l’opérateur

Collez le code dans l’éditeur de texte de Blender et exécutez-le. Le script enregistre l’opérateur ; il ne déplace pas automatiquement les objets à ce stade. Ouvrez ensuite la recherche d’opérateurs, recherchez Move X by One et lancez l’opérateur. Celui-ci déplace tous les objets de la scène active de 1 unité sur l’axe X.

Il est important d’utiliser le paramètre context dans execute(self, context). Blender peut exécuter les opérateurs dans un contexte spécifique. C’est pourquoi le guide recommande d’utiliser la valeur context transmise à l’opérateur, plutôt que de faire directement référence au contexte global.

3. Enregistrez le fichier et chargez-le comme extension

Enregistrez le script testé dans un fichier. Choisissez un nom compatible avec un module Python et ajoutez l’extension .py. Dans les préférences de Blender, ouvrez l’option de chargement dans la section Extensions, sélectionnez le fichier et activez l’extension dans la liste. Pour qu’elle reste activée après un redémarrage, vous pouvez utiliser l’option Enregistrer par défaut mentionnée dans le guide.

L’activation de l’extension permet à Blender d’exécuter le module et d’effectuer les opérations d’enregistrement dans register(). Lorsque vous désactivez l’extension, Blender appelle cette fois la fonction unregister() ; dans cet exemple, la classe de l’opérateur est alors supprimée. Les dossiers source et cible peuvent s’afficher dans la console pendant l’installation. Le guide explique également comment afficher les chemins des extensions dans la console Python à l’aide de addon_utils.paths().

Utilisation dans un flux de travail d’architecture et de visualisation

Cet exemple présente le principe de base : transformer des tâches répétitives en opérateurs Blender, une approche utile aux artistes techniques et aux développeurs. Dans une scène architecturale, une méthode similaire peut servir de point de départ à la création d’outils dédiés aux opérations clairement définies et répétées. Toutefois, ce code n’est pas un outil prêt à l’emploi pour une scène de production ou un bureau : il modifie la position de tous les objets de la scène active.

Pour les premiers tests, utilisez une copie de la scène et vérifiez quels objets sont affectés par l’opérateur. Avant de partager l’extension avec une équipe, vérifiez également la version de Blender ciblée et la compatibilité des éléments de l’API utilisés. La source ne précise aucune exigence matérielle ; il n’est donc pas possible d’en déduire des recommandations à ce sujet. Les conditions de licence et la compatibilité des versions doivent aussi être évaluées avant la distribution.

Erreurs fréquentes

  • S’attendre à ce que les objets bougent dès l’exécution du script : la première exécution enregistre l’opérateur. Pour modifier les objets, il faut sélectionner Move X by One dans la recherche d’opérateurs.

  • Négliger le périmètre d’action : le code ne se limite pas aux objets sélectionnés ; il traite tous les objets de la scène active.

  • Oublier le format du fichier : enregistrez le fichier de l’extension avec l’extension .py et choisissez un nom compatible avec un module Python.

  • Confondre l’enregistrement du fichier et l’activation de l’extension : enregistrer le fichier ne suffit pas à activer l’extension. Il faut la charger depuis les préférences, puis l’activer dans la liste.

Pour aller plus loin

Commencez par exécuter l’exemple dans une scène de test et observez le résultat de l’opérateur. Examinez ensuite séparément le rôle de bl_info, de la classe de l’opérateur, de execute() et des fonctions d’enregistrement. Pour la suite, vous pouvez étudier comment remplacer les valeurs fixes par des propriétés d’opérateur configurables par l’utilisateur ; la suite du guide Blender aborde ce sujet, ainsi qu’un autre exemple de création de copies d’objets liés.

En cas de message d’erreur, consulter la sortie de la console Blender peut aider à déterminer à quelle étape le problème se produit. La vue d’ensemble de l’API Blender et la documentation de bpy.context et de bpy.types.Operator font également partie des ressources de référence indiquées dans le guide pour approfondir les notions utilisées.

Source et licence

Ce guide est une adaptation en turc fondée sur le document officiel « Add-on Tutorial » de Blender et son exemple d’extension et d’opérateur. La source est sous licence CC BY-SA 4.0.

Sources

1 source
D(
docs.blender.org (CC BY-SA 4.0)docs.blender.org/manual/en/latest/advanced/scripting/addon_tutorial.html
Résumé

Les textes sources ne sont pas republiés ; les courtes citations sont signalées, le reste est notre propre résumé et commentaire.

L’avis de 3dsınıfı
3dL’analyse de la rédaction

Transformer des opérations de scène répétitives en petits outils Blender constitue un bon point de départ pour les équipes des bureaux d’architecture en Turquie qui maîtrisent Python, ainsi que pour les artistes techniques. Toutefois, cet exemple a un effet étendu : il déplace tous les objets de la scène. Il faut donc d’abord le tester sur une copie et définir soigneusement le périmètre de l’opérateur avant de l’adapter à un véritable projet.

La source n’indique aucune exigence matérielle ou payante ; les principaux points de vigilance sont la version de Blender ciblée par l’extension, la compatibilité de l’API et les modalités de distribution au sein de l’équipe. Pour les étudiants, l’essentiel est de comprendre comment un script Python est enregistré et appelé comme opérateur dans Blender.

Questions fréquentes

Comment exécuter une extension Python dans Blender ?

Exécutez le code dans l’éditeur de texte pour enregistrer l’opérateur. Recherchez ensuite son libellé dans la recherche d’opérateurs et lancez-le.

Comment installer une extension Python pour Blender ?

Enregistrez le fichier avec l’extension `.py`, chargez-le depuis la section Extensions des préférences de Blender, puis activez-le dans la liste.

Quels objets l’extension Blender d’exemple déplace-t-elle ?

L’opérateur d’exemple déplace de 1 unité sur l’axe X tous les objets de la scène active ; il ne se limite pas aux objets sélectionnés.

Les commentaires et le forum sont en turc.Rejoindre la discussion
+

À lire aussi