A- Avertissement. sur les numéros de versionsVersion pré 180 et CkeyB- Présentation E- Comment Cela marche-t'il?- Lancer l'exécution du scriptF- Bibliothèques d'Extension.(à lire impérativement si on veut utiliser un script d'import/export) ![]() ATTENTION:
Depuis la version 1.8a, blender n'est plus bridé par la Ckey.
La version 1.8a se reconnait à cette bague verte dans le coin droit
de l'écran:
ATTENTION ENCORE: De la version 2.10 à la version 2.12 Blender Python n'est plus compatible avec l'ancienne API python, ni avec la nouvelle (y compris la 2.25 et suivantes). En particulier, cette API suppose l'utilisation de Python 2.0 à la place du Python 1.5x ou de toute autre version du python plus récente. De plus, mais cela n'a rien à voir avec les extensions de la version intégrale, les modules définis dans le paragraphe suivant n'existent pas. Donc si vous utilisez cette version du logiciel n'espérez pas faire fonctionner les scripts écrits pour l'API 1.80 ou l'API 2.14 et suivantes. Une certaine forme de compatibilité a été conservé entre ces deux versions car un certain nombre de scripts d'importation sont basés sur l'API Blender 2.10 voir la page cohabr2pyt.htm pour le détail des opérations à effectuer. Avec Blender 2.14 et jusqu'à Blender 2.26, l'API python est restée relativement stable. A partir de Blender 2.28, une réforme en profondeur a supprimés toute les possibilités d'utilisation des anciennes fonctions de l'API210 ainsi qu'un certain nombre de fonction dans le module IPO. Complete Blender est équipé d'un langage de programmation, le Python, qui donne accès aux différents objets qu'il contient. C'est un langage
interprété
à mi-chemin entre le Basic, le C++ et le Modula, c'est-à-dire
qu'il est constitué d'un noyau auquel sont ajoutés des éléments
que l'on peut charger en fonction de besoin et des objectifs que doit atteindre
le script .
Il fonctionne sur les principaux systèmes d'exploitation dont toutes les variantes de Windows et d'Unix, mais aussi: NeXt, BeOS, Mac. Il est gratuit et peut être redistribué. Il est suffisamment simple pour être
maîtrisé rapidement si on a quelques notions indispensables:
Autant dire qu'il est facile à apprendre si on a déjà de bonnes notions de programmation, surtout de programmation orientée objet. L'objectif de ce didactitiel, cependant, n'est pas de faire comprendre ce qu'est la programmation mais de fournir à n'importe qui (et pas spécialement à des élèves ingénieurs, on excusera le coté un peu trivial des informations) la possibilité d'apprendre à utiliser cet outil dans Blender. Notons au passage qu'il existe d'excellents sites consacrés à la programmation de scripts Python pour Blender où l'on pourra trouver des exemples plus élaborés mais en anglais, hélas. La description du langage lui-même peut être obtenu à cette adresse: http://www.python.org .Pour les francophones . Differences
entre Fenêtre de script Avant toute chose, comment se présente matériellement l'outil lui-même? Extérieurement (sous windows) c'est une DLL, une bibliothèque dynamique de fonction qui se trouve dans le même répertoire que le fichier binaire de Blender. Au niveau de l'interface graphique il y a deux icones qui ouvrent deux fenêtres consacrées au python:
Alt-S:
Sauvegarder le fichier ( les versions récentes posent problème
en première sauvegarde, préférer le menu File)
Alt-A: Selectionne tout le texte
Alt-C: Copier la sélection
Ctrl-C
: (B2.3) Copier la sélection.
Ctrl-Shif-V
(B2.27
et sous win32 uniquement) Copie le contenu du presse papier dan sla fenêtre
de traitement de texte de Blender.
Alt-U:
(undo) Annuler.
Alt-Shift-S
: Menu (Select) Selection dont Jump vers ligne, très interessant
pour déboggage de code.
à une animation en général, donc à la scene, le script s'exécute image par image en utilisant quelques constantes indiquants le numéro de l'image ou le temps écoulé,soit : à un objet en particulier, objet 3D ou lampe ou camera ...On peut utiliser le python pou reffectuer l'opération de manière automatique voir les pages : cpl_LOD.htm#LierunscriptalascenePour charger un script : Avant d'écrire ses propres scripts il sera peut-être plus simple d'utiliser ceux qui existent déjà. Encore faut-il savoir les mettre au bon endroit. Aller dans la fenêtre de texte ![]() 1. cliquer le bouton
d'ouverture de bloc de données 2. choisir OPEN NEW,
ce qui ouvre une fenêtre sur le répertoire courant pour charger
un fichier ".py".
Pour comprendre ce qui se passe réellement
un exemple sera plus éloquent.
ou bien sous linux :
Ce script fait un appel au module Blender
pour obtenir le contenu d'un objet. La fonction qui permet d'effectuer
cette opération est la fonction Blender.Object.Get().
Ce n'est pas une fonction standard du langage python. Le python, en effet,
peut être complété par une serie de modules contenants
de nouveaux objets. Pour rappel: un objet en programmation orienté
objet est un ensemble formé de méthodes ( en fait la fonctions,
Get()
est une méthode du sous-module Object qui est
contenu par le module Blender) et de données. Il faut
donc commencer le script par une ligne demandant à l'interpréteur
de charger le module contenant cette fonction . Si aucun nom d'objet n'est
fourni à la fonction d'appel (on pourrait écrire Get('Plane')
),elle
renvoie la totalité de la liste des objets qui existent actuellement
en mémoire sans différencier l'appartenace à telle
ou telle scène .
C'est la combinaison de touche Alt-PKEY qui va activer le script dans l'exemple qui est utilisé ici. Il est indispensable que la fenêtre de script soit active, c'est à dire que le pointeur souris soit à l'intérieur. On notera au passage que ce n'est pas la seule façon. En effet, un script peut être lié à l'execution d'une animation ou à un objet en particulier Dans ce cas, c'est le déclanchement de l'animation, ou le déplacement de l'objet (qui oblige Blender à re-dessiner la fenêtre) qui lancera l'exécution du script. Evidemment si on s'attend à voir s'afficher cette liste dans la fenêtre courante on a de forte chance d'être déçu. Par contre le contenu de la "console" a été modifié. Il suffit donc de cliquer le bouton pour voir son contenu: Une alternative consisterait à lancer Blender avec les parametres suivants: blender -p 0 200 640 480 (une astuce empruntée à l'article de Strubi et Cartsen qui se trouve à cette adresse: http://www.blenderbuch.de/tutor/python1/python1_eng.html )
Attention
aux erreurs de traitement de texte:
Il est important de garder l'ordre des lignes du modèle car le python les exécute l'une après l'autre. Les indentations et tabulations indiquent au langage qu'il doit regrouper les instructions dans un sous-programme; donc, le texte:
est exécuté
sans erreur; alors que le texte (l'espace indenté est noté
en rouge):
engendrera une erreur d'exécution: ![]() Les espaces en fin de
ligne sont aussi à proscrire.
Augmenter les possibilités en utilisant les bibliothèques d'extension du langage Python . Malgré cet ajout, les nouveaux utilisateurs de scripts, le plus souvent parce qu'ils veulent utiliser un script d'importation ou d'exportation particulier, peuvent être confrontés à l'erreur: ![]() Comme il a été indiqué plus haut, sous Windows, Blender est accompagné d'un fichier nommé 'python23.dll', c'est le minimum nécessaire pour travailler en "scripting" dans un logiciel. Mais on peut tirer profit de bibliothèques de fonctions supplémentaires qui accompagnent la version complète du python. Pour cela, il faut installer le langage lui-même dans un répertoire de son disque dur. Peu importe le nom. Il y a cependant une règle à respecter pour ne pas avoir de problème: le nom complet du répertoire ne doit pas contenir d'espace vide. Par exemple: "C:\Program Files\python" ne sera pas trouvé, alors que "C:\ProgramFiles\python", oui. Ce problème est lié à l'obligation de définir une variable d'environnement dans son fichier autoexec.bat, or il se trouve que l'espace vide est interprété par le MSdos comme une limite de commande.
Pour quelques renseignements sur l'environnement
Linux voir: Python,
corriger le Path...
Une autre méthode consiste à indiquer le chemin dans Blender même. En effet, il y existe un bouton "Python:" dans la fenêtre Info. ![]() Il est indispensable d'y indiquer au moins
l'adresse des librairies, exemple: "C:\PROGRAMSFILES\PYTHON\LIB"
.
Nouvelle interface graphique pour le lancement des scripts Dans les dernières versions du logiciel, il est possible de lancer les script à partir de menus . Ces menus sont dispercés dans l'ensemble du logiciel mais il toujours possible de passer par un menu principal qui les regroupe tous . Ce menu principal est disponible dans la fenêtre Scripts. Il est encore assez variable . D'une version à l'autre, des entrées apparaissent ou disparaissent, ou encore sont transférées dans d'autres sous menus Attention à ne pas comettre de confusion : ce menu lance les scripts mais ne les charge pas nécessairement dans la fenêtre de traitement de texte. Ce qui peut porter à confusion car tous les sscripts ne sont pas obligatoirement préparés pour être lancés par menu. Toutes ces notions sont nécessaires
à la maîtrise matérielle de l'outil mais ne sont pas
spécialement intéressantes pour la productions de formes
ou d'images. La page suivante explique comment utiliser le python pour
modifier les positions des sommets d'un réseau carré de polygones.
Les questions concernant cette page peuvent
être posées sur :
|