Zum Inhalt springen

Blender Dokumentation: Python in Blender

Aus Wikibooks
<<<Zurück
Python Scripting
Inhaltsverzeichnis

Handbuch durchsuchen

Weiter>>>
Ein Beispielscript in Python


Diese Seite bezieht sich auf Blender v2.42a

Einleitung

[Bearbeiten]

Blender hat ein sehr mächtiges, oft übersehenes, Feature. Es bringt nämlich einen völlig integrierten Pythoninterpreter mit. So kann jeder Benutzer mit einem Pythonscript neue Funktionen hinzufügen.

Python ist eine interpretierte, interaktive, objektorientierte Programmiersprache. Sie enthält Module, Exceptions, dynamische Typisierung, sehr hohe dynamische Datentypen und Klassen. Python kombiniert bemerkenswerte Stärke mit einer sehr klaren Syntax und wurde als Erweiterungssprache für Programme, die ein progammierbares Interface benötigen, entworfen - und genau darum benutzt Blender es.

Pythonscripting ist mächtiger, vielseitiger und einfacher zu verstehen als binäre Plugins, die andere Möglichkeit, Blender zu erweitern. Deshalb sollte Pythonscripting dem Schreiben eines Plugins immer vorgezogen werden.

Die Funktionalität von Pythonscripting ist aktuell nicht mehr so begrenzt wie noch in Blender 2.25. Als Blender Open Source wurde, begannen viele neue Entwickler, die sich um die Foundation versammelten, am Pythonscripting zu arbeiten. Zusammen mit den Änderungen an der Benutzeroberfläche (UI), ist die Python API wahrscheinlich der Teil, in den am meisten Entwicklungsarbeit gesteckt wurde. Alles was bisher existierte erfuhr eine komplette Neuorganisierung und viele neue Module wurden hinzugefügt.

Diese Entwicklung schreitet ständig voran und es kann mit einer besseren Integration in den kommenden Versionen gerechnet werden.

Sollten Sie einmal Hilfe brauchen, können Sie in der Blender Python API nachschlagen. Dort sind alle Module genauer beschrieben.

Blenders Textfenster

[Bearbeiten]

Blender hat ein Textfenster unter seinen Fenstertypen, welches durch den Button im Fenstertypmenü (Window type menu) oder mittels Shift-F11 auswählbar ist.

Das sich nun öffnende Textfenster ist grau und leer, und mit einer sehr simplen Toolbar (Abbildung 1) ausgestattet. Von links nach rechts finden Sie dort den üblichen Fenstertypauswahlbutton und das Fenstermenü. Außerdem den Button für Vollbild, gefolgt von den Umschaltbuttons zum Ein/Ausblenden der Zeilennummern und dem Syntaxhighlighting und dann dem normalen Menübutton. Die beiden letzten Buttons sind für die Schriftgröße und die Breite der Einrückung bei der Verwendung von Tabs zuständig.

Abbildung 1: Die Toolbar des Textfensters






Mit dem Menü Button () können Sie den Textbuffer auswählen, der angezeigt werden soll. Außerdem können Sie einen neuen Buffer erzeugen oder eine Textdatei laden.

Wenn Sie eine Textdatei laden, wechselt das Textfenster kurzzeitig in einen Dateiauswahldialog mit den üblichen Funktionen. Ansonsten verhält sich das Textfenster wie ein sehr simpler Texteditor. Tippen auf der Tastatur erzeugt Text im Textbuffer. Durch Drücken, Ziehen und Loslassen von LMT markieren Sie Text. Hier noch ein paar Tastaturkürzel mit ihren Bedeutungen:

  • Alt-N - Ein neuer Text wird erzeugt
  • Alt-O - Lädt einen Text, ein Dateiauswahldialog erscheint
  • Alt-S - Speichert den Text als eine Textdatei, ein Dateiauswahldialog erscheint
  • Alt-R - Text neu laden, funktioniert nur wenn die Textdatei auf der Festplatte gespeichert ist
  • Alt-C oder Strg-C - Kopiert den ausgewählten Text in die Zwischenablage von Blender
  • Alt-X der Strg-X - Schneidet den markierten Text aus und kopiert ihn in die Zwischenablage von Blender
  • Alt-V oder Strg-V - Fügt den Text aus der Zwischenablage an der Cursorposition im Textfenster ein
  • Strg-Shift-C - Kopiert den ausgewählten Text in die Zwischenablage des Betriebssystems
  • Strg-Shift-V - Fügt den Text aus der Zwischenablage des Betriebssystems an der Cursorposition im Textfenster ein
  • Alt-U oder Alt-Z oder Strg-Z - Rückgängig
  • Strg-Shift-Z - Rückgängig gemachte Aktion wieder herstellen
  • Alt-Strg-F - Die Suchbox poppt auf
  • Alt-F - Weitersuchen
  • Alt-J - Ein Popup erscheint mit dem Sie den Cursor auf eine bestimmte Zeile setzen können
  • Shift-Alt-F oder RMT - Das Filemenü des Textfensters poppt auf
  • Alt-P - Führt den Text als Pythonscript aus
  • Alt-M - Konvertiert den Text im Textfenster in einen 3D Text (max. 100 Buchstaben)


Noch einmal zur Sicherheit: Blenders Zwischenablage ist separat von der Windows Zwischenablage. Deshalb können Sie normalerweise nicht in und aus Blender heraus kopieren, ausschneiden und einfügen. Um auf die System Zwischenablage zugreifen zu können, müssen Sie Shift-Strg-C und Shift-Strg-V benutzen.

Um einen Textbuffer zu löschen, klicken Sie auf das neben dem Namen das Buffers, wie es auch bei Materialien und ähnlichem üblich ist.

Der Shortcut Alt-P soll nochmal extra hervorgehoben werden. Mit ihm können Sie den Buffer direkt von Blenders internen Pythoninterpreter parsen lassen.

Im nächsten Abschnitt wollen wir uns ein Beispiel in Python ansehen. Bevor es nun aber richtig los geht soll noch erwähnt werden, dass Blender, neben ein paar Blender spezifischen Modulen, nur mit einem einfachen Pythoninterpreter ausgestattet ist. Diese sind in **REF** beschrieben.


Andere mögliche Verwendungen für das Textfenster
Das Textfenster ist auch nützlich, wenn Sie Ihre .blend Dateien mit der Community oder Freunden teilen möchten. Mit dem Textfenster können Sie so eine README schreiben, welchen den Inhalt Ihrer Blenderdatei erklärt. Dies ist viel praktischer als dazu noch ein anderes Programm zu benutzen. Vergewissern Sie sich, dass das Textfenster zu sehen ist, wenn sie speichern!

Wenn Sie Ihre Dateien unter einer bestimmten Lizenz weitergeben wollen, dann schreiben Sie einfach die Lizenz in das Textfenster.



Um auf die Standard Pythonmodule zugreifen zu können, müssen Sie ein komplettes Python installieren. Die jeweils aktuelle Version können Sie unter http://www.python.org herunterladen. Um Inkompatibilität zur vermeiden, schauen Sie auch auf http://www.blender.org um zu erfahren, welche exakte Pythonversion in Blender läuft.

Außerdem muss Blender wissen wo Python installiert ist. Dies wird über die PYTHONPATH Umgebungsvariable definiert.

In den folgenden Beispielen gehen wir davon aus dass Sie Ihr Python unter C:\PYTHON22 installiert haben (ausser bei den UNIXen, da ist Python schon dabei ;-)).


Setzen der Umgebungsvariable PYTHONPATH unter Win95, 98, Me

Öffnen Sie nun die Datei C:\AUTOEXEC.BAT mit Ihrem bevorzugten Texteditor und fügen Sie ans Ende folgende Zeile hinzu:

SET PYTHONPATH=C:\PYTHON22;C:\PYTHON22\DLLS;C:\PYTHON22\LIB;C:\PYTHON22\LIB\LIB-TK 			

Starten Sie Ihren Rechner neu.


Setzen der Umgebungsvariable PYTHONPATH unter WinNT, 2000, XP

Klicken Sie mit der RMT auf das Arbeitsplatz Icon auf Ihren Desktop und wählen Eigenschaften aus. Dort wählen Sie den Erweitert Tab und klicken unten auf den Umgebungsvariablen Button.

Unter dem Feld Systemvariablen (der untere Bereich), klicken Sie auf Neu. Dies ist nicht möglich, wenn Sie nicht die Rechte des Systemadministrators haben. In diesem Fall klicken Sie im Feld Benutzervariablen für Administrator (oberer Bereich) auf Neu.

Geben Sie nun PYTHONPATH als Variablennamen ein. Als Wert geben Sie

C:\PYTHON22;C:\PYTHON22\DLLS;C:\PYTHON22\LIB;C:\PYTHON22\LIB\LIB-TK			

ein. Klicken Sie nun in jedem Dialog auf OK. Ob ein Neustart notwendig ist hängt vom Betriebssystem ab.


Setzen der Umgebungsvariable PYTHONPATH unter Linux und anderen UNIXen.

Normalerweise ist Python hier schon installiert und wird von Blender automatisch gefunden. Prüfen Sie ob Python bei Ihnen installiert ist. Geben Sie dazu in die Konsole python ein. Dann sollte eine Ausgabe wie diese kommen:

Python 2.4.3 (#2, Oct  6 2006, 07:52:30) 
[GCC 4.0.3 (Ubuntu 4.0.3-1ubuntu5)] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>>

Sollte Python nicht gefunden werden, müssen Sie es installieren. Das können Sie über die Paketverwaltung Ihrer Distribution tun oder indem Sie sich das Paket von http://www.python.org herunterladen und installieren. Um nun herauszufinden wo Python installiert wurde, öffnen Sie eine Konsole und starten eine interaktive Pythonshell, indem Sie wieder python in die Konsole eingeben. Geben Sie nun die folgenden Befehle ein:

>>> import sys
>>> print sys.path	

und notieren Sie sich die Ausgaben. Sie sollten ungefähr so aussehen:

/usr/local/lib/python2.2, /usr/local/lib/python2.2 /plat-linux2, /usr/local/lib/python2.0/lib-tk, /usr/lo
cal/lib/python2.0/lib-dynload, /usr/local/lib/python2.0/
site-packages 	


Fügen Sie diese Zeilen (Ihre Ausgaben) Ihrer bevorzugten rc Datei als Umgebungsvariable hinzu, indem Sie zum Beispiel in Ihre .bashrc die Zeile

export PYTHONPATH=/usr/local/lib/python2.2:/usr/local/lib/
python2.2/plat-linux2:/usr/local/lib/python2.2/lib-tk:/usr
/local/lib/python2.2/lib-dynload:/usr/local/lib/python2.0/
site-packages

ohne Umbrüche hinzufügen. Öffnen Sie dann eine neue Konsole oder loggen Sie sich aus und wieder ein.


Um zu überprüfen ob es geklappt hat, klicken Sie in Blender auf Help>>System>>Systeminformation. Danach laden Sie im Textfenster die Datei system-info.txt. Dort sollten jetzt die Pfade stehen.


[Bearbeiten]

Die Blender Python API


<<<Zurück

Python Scripting

Inhaltsverzeichnis
Glossar
Weiter>>>

Ein Beispielscript in Python