Blenderplugin aus Pythoncode erstellen
Archivierte Anleitung
Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.
Achtung!
Die Verwendung dieses Howto geschieht auf eigene Gefahr. Bei Problemen mit der Anleitung melde dies bitte in der dazugehörigen Diskussion und wende dich zusätzlich an den Verfasser des Howtos.
Hinweis:
Diese Howto-Anleitung wurde zuletzt von Vej am 17.08.2016 unter Ubuntu 16.04 und Blender 2.76b erfolgreich getestet.
Problembeschreibung¶
Blender lässt sich mittels Skripten in der Skriptsprache Python erweitern. Um umfangreichere Skripte, die sich womöglich über zahlreiche Module erstrecken, besser einbinden zu können, kann man diese als Plugin zusammenfassen. Dieses Howto erklärt die Schritte die dazu notwendig sind. Es geht nicht auf die Erstellung der Python-Skripte selber ein.
Anleitung¶
Init-Script erstellen¶
Damit ein Plugin eingebunden werden kann, muss ein gültiges Python-Modul vorliegen. Beim Laden eines Plugins wird das Hauptskript namens __init__.py
aufgerufen. Dieses muss alle anderen Module nachladen. Außerdem muss es über die Funktionen register()
und unregister()
verfügen, die beim Laden bzw. Entladen des Plugins aufgerufen werden. Obwohl sie beliebigen Code enthalten dürfen, werden sie in der Regel dazu verwendet, plugineigene Datenstrukturen und Klassen zu registrieren.
Ein minimales Beispiel für eine __init__.py
am Ende dieses Abschnittes könnte so aussehen:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | import bpy class Testklasse(bpy.types.Operator): """Tooltip""" bl_idname = "object.nutzlos" bl_label = "Tut nichts" @classmethod def poll(cls, context): return true def execute(self, context): return {'FINISHED'} def register(): bpy.utils.register_class(Testklasse) def unregister(): bpy.utils.unregister_class(Testklasse) |
Header hinzufügen¶
Ein Plugin in Python benötigt einige Informationen am Beginn der __init__.py
. Diese werden in der folgenden Form angegeben:
1 2 3 4 5 6 7 8 9 10 | bl_info = { "author": "Max Mustermann", "name": "Plugin von Max", "description": "Beschreibungstext", "warning": "", "version": (0, 0), "blender": (2, 72, 0), "support": 'TESTING', "category": 'Kategoriename' } |
Die Bedeutung der einzelnen Einträge ist dieser Tabelle zu entnehmen:
Headerinformationen | ||
Schlüsselwort | Format | Bedeutung |
author | String | Der Name des Autors bzw. der Autorin |
name | String | Der Anzeigename des Plugins |
description | String | Eine Beschreibung, die an bestimmten Stellen der Blenderoberfläche angezeigt wird. |
warning | String | Hier kann vor irgendetwas gewarnt werden. Dies wird vor der Installation grafisch hervorgehoben. |
version | Tupel oder Tripel | Eine zwei- bis dreistellige Versionsnummer für das Plugin. |
blender | Tripel | Die dreistellige Versionsnummer von Blender, unter der das Plugin laufen soll. |
support | String | Ein Eintrag aus 'OFFICIAL' ,'COMMUNITY' und 'TESTING' , der den Supportstatus angibt. Neu erstellte und unveröffentlichte Plugins sollten 'TESTING' angeben. |
category | String | Eine Kategorie (siehe untenstehende Liste). |
Bei den Kategorien hat man die Wahl zwischen den folgenden dreiundzwanzig Einträgen:
'3D View'
'Add Mesh'
'Add Curve'
'Animation'
'Developement'
'Game Engine'
'Import-Export'
'Lighting'
'Material'
'Mesh'
'Node'
'Object'
'Physics'
'Pyconstraint'
'Pydriver'
'Pynode'
'Paint'
'Render'
'Rigging'
'System'
'Text Editor'
'UV'
'User Interface'
Einbinden¶
Das so erhaltene Plugin umfasst neben der Headerdatei alle geladenen Module, die nicht von Python oder Blender bereitgestellt werden. Es kann entweder über die graphische Oberfläche installiert oder händisch in einen beliebig benannten Unterordner des Pluginordners ~/.config/blender/<Versionsnummer>/scripts/addons kopiert werden.
Links¶
http://wiki.blender.org/index.php/Dev:2.5/Py/Scripts/Guidelines/Addons 🇬🇧 – Eine ausführliche Anleitung für die Pluginerstellung
http://wiki.blender.org/index.php/Dev:Doc/Process/Addons 🇬🇧 – Wie Addons für Blender veröffentlicht werden
Howto - Übersicht aller Howto-Artikel