Se faire un Tool
Vous savez comment faire une macro-commande, un Panel, voyons maintenant comment créer un outil, que l'on nomme aussi Tool, ou Operator. Ces outils peuvent se trouver dans le panneau des Tools, que l'on appelle avec la touche T depuis la fenêtre 3D.
L'avantage de programmer son script comme un Operator est qu'il peut être facilement retrouvé en utilisant le petit moteur de recherche présent dans la liste des Add Tools du Tool Shelf. Créez donc un nouveau script, et tapez les lignes suivantes :
class Singe(bpy.types.Operator):
bl_idname = "Singe"
bl_label = "Singe Transform"
bl_description = "Remplacer objet courant par un Singe"
bpy.types.register(Singe)
Lancez votre script et, dans la vue 3D, ouvrez le panneau des Tools (T).
Dans la liste Add Tools, tapez « Singe » dans la zone de recherche. Le Tool
nommé « Singe Transform » apparaît, et en cliquant dessus, vous avez un nouveau Tool qui apparaît en haut du Tool Shelf. Notez que quand vous passez votre souris sur cet outil, Blender indique qu'il s'agit de « bpy.ops. Singe() » : c'est un nouvel opérateur de Blender à part entière...
Des actions pour votre opérateur
Pour que l'opérateur fasse quelque chose, il faut lui définir une fonction nommée « invoke ». Tapez les lignes suivantes, avant la ligne de register :
def invoke(self, context, event):
ob = context.active_object
bpy.ops.object.editmode_toggle()
bpy.ops.mesh.delete(type='VERT')
loc = (ob.location[0], ob.location[1], ob.location[2])
bpy.ops.mesh.primitive_monkey_add(location=loc)
bpy.ops.object.editmode_toggle()
return{'ok'}
Relancez votre script, et cette fois en cliquant sur « Singe Transform », tout objet sélectionné se transforme en Singe !
Prenez encore le temps de bien regarder ce script, qui vous donne les informations de base pour créer un opérateur, avec son label, et qui ici fait la bascule en mode Edit pour les objets, efface un objet par ses sommets, et place un objet en fonction des paramètres de location.