Zeichen können angezeigt werden, indem ein Schriftbild nur mit der OpenGL-Funktion erstellt wird, die unter Verwenden von OpenGL im Skript [Blender] erläutert wird. .. Wenn Sie jedoch Zeichen für ein wenig anzeigen möchten, z. B. zum Debuggen, dauert es einige Zeit, bis das Schriftbild vorbereitet ist. In einem solchen Fall bietet Blender eine API zum Zeichnen von Text, mit der Sie problemlos Text aus einem Skript zeichnen können. Beispielsweise verwenden die offiziellen Screencast-Schlüsseltasten von Blender diese Funktion, um die in den letzten Sekunden gedrückten Tasten anzuzeigen.
In diesem Artikel werde ich erklären, wie die Textzeichnungs-API von Blender mit Beispielen verwendet wird.
Dies ist ein Beispiel für die Anzeige einer Zeichenfolge in "View 3D".
render_text.py
import bpy
import blf #Textzeichnungsmodul
bl_info = {
"name": "Tutorial: Render text",
"author": "Nutti",
"version": (1, 0),
"blender": (2, 74, 0),
"location": "View3D > Tutorial: Render text with blf module",
"description": "Tutorial: Render text with blf module.",
"warning": "",
"support": "COMMUNITY",
"wiki_url": "",
"tracker_url": "",
"category": "3D View"
}
class TextRenderer(bpy.types.Operator):
"""Zeichne eine Schnur"""
bl_idname = "view3d.text_renderer"
bl_label = "Text renderer"
__handle = None #Zeichenfunktion
#Registrieren Sie die Zeichenfunktion des Bereichs "View3D"
@staticmethod
def handle_add():
TextRenderer.__handle = bpy.types.SpaceView3D.draw_handler_add(
TextRenderer.render_text,
(), 'WINDOW', 'POST_PIXEL')
#Heben Sie die Registrierung der Zeichenfunktion im Bereich "View3D" auf
@staticmethod
def handle_remove():
if TextRenderer.__handle is not None:
bpy.types.SpaceView3D.draw_handler_remove(
TextRenderer.__handle, 'WINDOW')
TextRenderer.__handle = None
#Zeichnungsfunktionskörper im Bereich "View3D"
@staticmethod
def render_text():
#Zeichnen der Zeichenfolge "Suzanne in Ihrer View3D-Region"
blf.size(0, 20, 72) #Geben Sie die Schriftgröße an
blf.position(0, 20, 150, 0) #Zeichnungsposition angeben
blf.draw(0, "Suzanne on your View3D region") #Eine Schnur zeichnen
#Verarbeitung zum Zeitpunkt der Skriptinstallation
def register():
bpy.utils.register_module(__name__)
TextRenderer.handle_add()
#Verarbeitung bei der Deinstallation des Skripts
def unregister():
bpy.utils.unregister_module(__name__)
TextRenderer.handle_remove()
if __name__ == "__main__":
register()
Die grundlegende Erklärung des Blender-Skripts wird im folgenden Artikel vorgestellt. Daher konzentrieren wir uns hier auf die Erklärung der neu hinzugefügten Elemente. [\ Blender ] So erstellen Sie ein Blender-Plug-In
Um die von Blender bereitgestellte Textzeichnungs-API verwenden zu können, müssen Sie das Modul `` `blf``` importieren.
import blf
Im folgenden Artikel wird erläutert, wie Sie eine Funktion zum Zeichnen im Bereich "View3D" registrieren / die Registrierung aufheben. Verwenden Sie OpenGL aus dem [Blender] -Skript heraus
In dem Funktionskörper, der in "View3D" zeichnet, wird die Zeichenkette mit dem Modul `` `blf``` gezeichnet.
Zunächst wird die Funktion `blf.size ()` `aufgerufen, um die zu zeichnende Schriftgröße anzugeben. Geben Sie im zweiten Argument ** Schriftgröße ** und im dritten Argument ** dpi ** an. Das erste Argument wird verwendet, wenn Sie Ihre eigene Schriftart mit dem Modul
`blf``` laden, bei Verwendung der Standard-Blender-Schriftart jedoch 0 angeben.
Rufen Sie dann die Funktion `blf.position ()`
auf, um anzugeben, wo die Zeichenfolge gezeichnet werden soll.
Das erste Argument ist dasselbe wie das erste Argument der Funktion `blf.size ()`
.
Geben Sie im 2. bis 4. Argument ** die Position zum Zeichnen der Zeichenfolge ** an (in der Reihenfolge der x-Koordinaten, y-Koordinaten, z-Koordinaten).
Schließlich wird die Funktion `blf.draw ()`
verwendet, um die Zeichenfolge zu zeichnen.
Geben Sie im zweiten Argument ** die Zeichenfolge an, die Sie zeichnen möchten **.
Das erste Argument ist dasselbe wie das erste Argument der Funktion `blf.size ()`
.
#Zeichnungsfunktionskörper im Bereich "View3D"
@staticmethod
def render_text():
#Zeichnen der Zeichenfolge "Suzanne in Ihrer View3D-Region"
blf.size(0, 20, 72) #Geben Sie die Schriftgröße an
blf.position(0, 20, 150, 0) #Zeichnungsposition angeben
blf.draw(0, "Suzanne on your View3D region") #Eine Schnur zeichnen
blf
Das Modul bietet auch verschiedene nützliche APIs.
blf
Sie können das vom Modul bereitgestellte API-Dokument unter der folgenden URL überprüfen.
Wenn Sie andere APIs kennenlernen möchten, lesen Sie diese bitte.
http://www.blender.org/api/blender_python_api_2_60_6/blf.html
Recommended Posts