labels

Übersicht: Blend4Web


Lernziel

Nur wenige kennen die Berlin-Uhr und wissen wie sie "tickt"! Blend4Web hat für die Bezeichnung von Objekten eine Lösung, die wir in dieser Station nutzen werden.

Handlungsanweisungen

Aufgaben:
  1. Erstelle ein neues Script für das Generieren von Erklärungen (Labels).
  2. Begutachte das Ergebnis in der Vorschau.
  3. Exportiere die Szene im json-Format.
  4. Füge die notwendigen HTML-Elemente und Skripte in eine HTML-Seite ein.
  5. Führe alle benötigten Dateien in einem Test-Ordner zusammen.
  6. Starte einen Web-Server und schau Dir das Ergebnis an.

Labels erstellen ist im Handbuch beschrieben. Wenn man die Befehle einmal ausführt und die wichtigsten Aktionen aus dem Info-Fenster in ein Script packt, reduziert sich das Anbringen von Informationen auf das Ausführen des Skripts und damit auf wenige Klicks!

Hier das Script:

blend4web/labels/annotations-de.py (Source)

#! bpy
"""
Name: 'berlin-clock.py'
Blender: 27x
Group: 'Example'
Tooltip: 'Labelcreator--Blend4Web-Berlin-Clock'
"""
import bpy


def create_labels():
    "Create and compose labels for the berlin-clock"

    clock_labels = [["seconds",
                     "Sekunden",
                     "Blinkt im zwei Sekunden-Takt"],
                    ["hour_01",
                     "Stunden",
                     "Ein Block = 5 Stunden"],
                    ["hour_05",
                     "Stunden",
                     "Ein Block = 1 Stunden"],
                    ["minute_01",
                     "Minuten",
                     "Ein Block = 5 Min./alle 15 Min. eine andere Farbe"],
                    ["minute_12",
                     "Minuten", "Ein block = 1 Minute"]]

    scn = bpy.context.scene
    for row in clock_labels:
        cube = bpy.data.objects[row[0]]
        coords = cube.location
        bpy.ops.object.empty_add(type='PLAIN_AXES',
                                 location=(coords.x,
                                           coords.y,
                                           coords.z+1))

        obj = bpy.context.object
        obj.name = row[0]+"_label"
        obj.b4w_object_tags.title = row[1]
        obj.b4w_object_tags.description = row[2]
        obj.b4w_enable_object_tags = True
        obj.b4w_enable_anchor = True


if __name__ == '__main__':
    scn = bpy.context.scene
    for ob in scn.objects:
        if ob.type == 'EMPTY':
            scn.objects.unlink(ob)
            bpy.data.objects.remove(ob)

    create_labels()

Das Ergebnis

Die Arbeitsschritte 3 bis 6 entsprechen den Arbeitsschritten der vorherigen Lern-Station und werden hier nicht wiederholt.

Ergebnis: Für die Ansicht der Erklärung muss auf das Label geklickt werden, einfacher ist es eventuell wenn man die Rotation vorher anhält.
Hinweis: Die Uhr dreht sich, aber die Zeit steht immer noch still!

Kommentare