Podcast Python

Voici la vidéo du Podcast Python faite hier soir avec Lapineige comme présentateur.

Voici le lien du script crée lors de la soirée.

https://www.dropbox.com/s/khrk7uvwr5hps3g/script_lepineige_podcast_Python.blend?dl=0

Comme vous avez pu le voir, du moins pour les courageux qui ont regardés la vidéo jusqu’au bout, le code sur Blender n’est pas vraiment compliqué.
Une fois les bases Python apprises, c’est juste une connaissance de l’API.
Lapineige nous a montré comment trouver les bonnes commandes dans la console Python et comment voir les messages d’erreurs dans la console Blender.
A partir de là, il ne tient qu’à vous de tester de petits codes et de progresser.

En complément de cette vidéo, je vais faire un récapitulatif rapide de ce qui a été montré en simili tuto pour garder des traces et pour ceux n’ayant pas le courage de regarder la vidéo.

– Les bases du code sur blender.

Tout d’abord, quand vous débutez en code, il est préférable d’activer le Layout Scripting de Blender.

001_layout

Vous aurez donc ce layout qui présente différentes fenêtres.

002_layout

Pour créer un script, il suffit de cliquer sur « New » en bas de la fenêtre Text Editor et d’ajouter import bpy pour que Blender utilise le code python.

003_new_text

003_import_bpy

A partir de là, vous pouvez commencer à coder !
Pour commencer simplement, vous pouvez copier le code que blender va vous afficher quand vous ferez quelque chose dans le viewport.

Par exemple, on va créer un plan dans le viewport.

004_creer_plan

Si vous regardez dans la fenêtre d’info, vous aurez un code.

004_code_creer_plan

Il vous suffit de sélectionner ce code et de faire CTRL + C et ensuite le coller dans le Texte Editor sous import bpy

004_code_creer_plan1

Vous n’avez pas besoin de tout ce qu’il y a après la parenthèse.

Maintenant, si vous supprimez le plan dans la vue 3D et que vous cliquez sur Run Script, vous aurez un nouveau plan qui aura été crée via votre script.

005_run_script

005_new_plan

Voilà, votre premier script Blender est fait, on peut s’arrêter là ^^

Bon, trêve de plaisanterie, allons plus loin !
Imaginons, que vous vouliez ajouter une subdivision, faire un extrude, en faire un cercle et faire un trou !
Ce que vous allez faire, c’est faire 2 fois la touche A dans la vue info et cliquer sur X pour tout supprimer.
Maintenant, vous pouvez faire les différentes commandes pour faire votre trou.

Edit mode, face mode, inset, sélectionner les faces intérieures, Looptool/Circle et delete.

006_creation_action

Quand on créer du code sur blender, il est bon de décortiquer ce qu’on va faire et là en faisant la manip pour faire ce trou, c’est ce qu’on a fait.

Si vous allez dans la fenêtre d’info, vous allez avoir tous les codes utilisés pour faire cette action.

creer_plan_avec_trou
Vous retrouverez ce code dans la scène donnée en lien plus bas.

Vous allez surement avoir des erreurs en fonction de comment vous créez vos actions, donc recopiez mon code et testez le si c’est le cas.
Vous verrez qu’il crée directement l’objet avec un trou au milieu.

On peut dans le même style, faire un code qui va faire un trou sur des faces sélectionnées.

007_second_code
Vous retrouverez ce code dans la scène donnée en lien plus bas.

Encore une fois, il faudra faire attention à comment on crée le code, par exemple, j’ai eu une erreur si je faisais un extrude et que je faisais une echelle pour le rendre plus petit.
Il fallait découper l’action en 2, Extrude et ensuite Scale.

creer_trous_sur_selections
Vous retrouverez ce code dans la scène donnée en lien plus bas.

Voilà, vous savez comment faire des scripts comme on peut le faire sur photoshop pour automatiser des actions.
Sur la vidéo du Podcast, Lapineige nous montre comment créer un code pour renommer, sur ce tuto, on va rester simple et je vais vous montrer comment en faire un operator et comment l’ajouter dans un menu via un bouton.

D’abord, qu’est ce qu’un operator ?

C’est une classe de type operator, cette classe contient le code qu’on a fait juste au dessus et cette classe peut être appelée via la recherche de Blender, via des pies menus ou encore via un bouton dans une Tab.
Pour créer une classe facilement, il est préférable d’ouvrir le template Operator Simple que vous trouverez dans le menu Template>Python>Operator Simple.

008_operator_simple

Une fois crée, vous aurez ce code.

008_operator_simple_code

Cela fait beaucoup de code quand on débute, mais au final c’est très simple.

008_operator_simple_code_description

Ce qu’on va faire maintenant, c’est modifier tout ça pour lui donner un nom correcte et ajouter notre code.

operator_trou
Vous retrouverez ce code dans la scène donnée en lien plus bas.

Un fois l’operator fini, on va cliquer sur Run Script, ça ne va rien faire, mais si vous avez des faces sélectionnées, il vous suffit d’appeler cet Operator via la recherche de Blender et son Label

009_operator_fini
Vous retrouverez ce code dans la scène donnée en lien plus bas.

Voilà, maintenant, vous avez un operator fonctionnel que vous pourrez appeler.
Ce qu’on va faire maintenant, c’est l’ajouter à un Panel.

Pour cela, il vous faut ouvrir un template UI Panel Simple.

10_UI_panel_simple

Vous vous retrouvez avec un code qui ressemble à l’Operator, à la différence qu’il est de type Panel.

10_UI_panel_simple_code

Si vous cliquez sur run Script, ce Panel apparaitra dans la vue Properties et dans l’onglet Object, celui avec un cube orange. Vous le trouverez tout en bas.

11_hello_world_panel

Par rapport à la classe Operator, la classe Panel nous demande des info en plus du bl_idname et du bl_label.
Vous devez indiquer le bl_space_type, bl_region_type et bl_context. En fonction de ce que vous allez mettre, cela va placer votre Panel où vous voulez sur l’interface de Blender.
Imaginons que nous voulions ce Panel dans l’onglet Tools de nos Tabs.

Il suffirait donc d’indiquer les bons mots.

12_choisir_emplacement

Vous aurez donc votre Panel au bon endroit.

12_emplacement_tools

Maintenant, ce que nous allons faire, c’est copier le code de notre Operator dans le code du Panel.
On met en général les Operators en premier.

UI_panel_fini
Vous retrouverez ce code dans la scène donnée en lien plus bas.

Une fois notre code fini, nous avons ce nouveau Panel dans l’onglet Tools.

13_panel_fini

Si on sélectionne des face et qu’on active le bouton, cela nous crée notre trou ! Yeah !

Au niveau du code, j’ai mit :

layout.operator("object.creeruntrou")

Précédemment, il y avait plein de codes, mais celui là est suffisant pour ajouter un bouton avec comme Operator, notre classe CreerUnTrou qui a été appelée par son bl_idname object.creeruntrou.

Comme vous avez pu le voir, c’est tout sauf super compliqué.
Vous pouvez créer des colones, ajouter des labels etc.
Pour cela, je vous conseille de regarder le template UI_Panel qui vous donne plusieurs exemples de codes pour paramétrer vos panels comme bon vous semble.

Pour finir, nous allons en faire un Addon !

Pour cela, c’est relativement simple !
Nous allons ouvrir le Template Addon Add Object et nous allons récupérer la partie bl_info que l’on va recopier tout en haut de notre code.

14_bl_info

addon_final
Vous retrouverez ce code dans la scène donnée en lien plus bas.

Une fois votre code finalisé, enregistrez le sur votre PC et installez le via l’onglet des Addons, activez le et vous verrez que le Panel « Créer des Trous » est bien affiché dans votre Tab Tools.

Et voilà, vous savez maintenant comment créer un code simple, en faire un Opérator, le mettre dans une Tab ou autre part et en faire un Addon.
Sur la vidéo, Lapineige va bien plus loin, donc regardez là, c’est vraiment instructif.
Ce tuto est le plus simple possible, normalement, vous saurez vous débrouiller en le suivant.

Voici la scène contenant tous les codes montrés sur ce tuto.

https://www.dropbox.com/s/yoix7vn7eo434wn/tuto_podcast_python.blend?dl=0

Pour aller plus loin, il est bien sur préférable d’apprendre le Python, et pour celà, je vous conseille les vidéos de Mattereal.


Voici aussi différents liens pour apprendre le code 😉

http://www.blender.org/documentation/blender_python_api_2_69_8/info_tutorial_addon.html
http://wiki.blender.org/index.php/Dev:2.5/Py/Scripts/Cookbook
http://wiki.blender.org/index.php/Dev:2.5/Doc/How_to/Add_an_icon
http://blenderscripting.blogspot.de/
http://cgcookie.com/blender/category/tutorials/scripting/
http://blenderdiplom.com/en/tutorials/scripting.html
https://github.com/scorpion81/blender-voro/blob/master/doc/python_api/rst/info_tutorial_addon.rst
https://docs.python.org/3/tutorial/
http://michelanders.blogspot.nl/p/creating-blender-26-python-add-on.html#operatorproperties
http://www.tutorialspoint.com/python/python_strings.htm

Des Addons pour le développement sur Blender :

https://github.com/chichige-bobo/BlenderPython/blob/master/AddonTemplateGenerator.py < pour ajouter des bouts de code automatiquement. Genre une classe, bam, tu as la classe. - http://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/Development/Display_All_Icons
http://blenderartists.org/forum/showthread.php?323754-Addon-Edit-Addon-Sources-Operator

Softs :

http://notepad-plus-plus.org/
http://www.sublimetext.com/ < j'adore ce soft ! http://www.jetbrains.com/pycharm/ < comme sublime text, mais avec une fenêtre de commande intégrée, très pratique.

TwitterFacebookGoogle+