Lothar-Rosengarten.deComputerBlender

VSE (Video Sequence Editor) Text Effect Strip mit Zeilenumbruch (mehreren Zeilen) über den Bildschirm scrollen

Der Text Effect Strip des VSE unterstützt keine Eingabe von Zeilenumbrüchen. Eine Möglichkeit wäre den Texteditor der 3D Entwicklungsumgebung zu nutzen und die Szene in VSE einzubinden. Das bringt viele Editiermöglichkeiten ist aber auch kompliziert. Eine andere besteht in der Verwendung von Python Script.

Zuerst ist Blenders VSE zu öffnen.

Mit 'Add → Text' zwei Text Effect Strips hinzufügen (Jeder Strip kann leider nur eine begrenzte Anzahl an Zeichen aufnehmen.)

Die Sequenzen benennen, im Beispiel 'Vers 1' und 'Vers 2'.

Eine Area ↗ zum Texteditor machen, beispielsweise den Filebrowser.

Einen neuen Text erzeugen.

Den Quelltext einfügen. Es ist natürlich auch möglich diesen vorher einzugeben, abzuspeichern und dann in Blender zu öffnen.

import bpy

# Namen der 'Text' Strips
targetA = 'Vers 1'
targetB = 'Vers 2'

# Gedicht in Variable speichern, eine pro Strophe
# 1. Strophe
versA = 'Everywhere, everywhere,' + '\n'
versA = versA + 'Christmas tonight!' + '\n'
versA = versA + 'Christmas in lands' + '\n'
versA = versA + 'of the fir-tree and pine,' + '\n'
versA = versA + 'Christmas in lands' + '\n'
versA = versA + 'of the palm-tree and vine,' + '\n'
versA = versA + 'Christmas where snow peaks' + '\n'
versA = versA + 'stand solemn and white,' + '\n'
versA = versA + 'Christmas where cornfields' + '\n'
versA = versA + 'stand sunny and bright.' + '\n'
versA = versA + 'Everywhere, everywhere,' + '\n'
versA = versA + 'Christmas tonight!'

# 2. Strophe
versB = 'Christmas where children' + '\n'
versB = versB + 'are hopeful and gay,' + '\n'
versB = versB + 'Christmas where old men' + '\n'
versB = versB + 'are patient and gray,' + '\n'
versB = versB + 'Christmas where peace,' + '\n'
versB = versB + 'like a dove in his flight,' + '\n'
versB = versB + 'Broods o\'re brave men' + '\n'
versB = versB + 'in the thick of the fight;' + '\n'
versB = versB + 'Everywhere, everywhere,' + '\n'
versB = versB + 'Christmas tonight!' + '\n'
versB = versB + 'For the Christ-child' + '\n'
versB = versB + 'who comes' + '\n'
versB = versB + 'is the Master of all;' + '\n'
versB = versB + 'No palace too great,' + '\n'
versB = versB + 'no cottage too small.'

# alle Sequenzen nach dem Namen vorbereiteten Text Strips durchsuchen
# und entsprechend Befüllen
for a in bpy.context.scene.sequence_editor.sequences_all:
    if targetA in a.name:
        a.text = versA
    elif targetB in a.name:
        a.text = versB
Beschreibung
Nach dem standardmäßigem Laden des Moduls bpy werden zwei Variable mit den Namen der Sequenzen belegt.
Dann zwei Variablen mit dem Text füllen. Es ließe sich auch einfach alles als eine Stringzeile je Variable eingeben, es ist so allerdings übersichtlicher. Das '\n' steht für den Zeilenumbruch.
Endlich werden die Sequenzen ausgewählt und mittels der Variablen mit dem Text befüllt.

Jetzt das Script starten und die beschriebenen Aufgaben ausführen lassen.

Das Ergebnis.

Der Übersichtlichkeit halber den zweiten Strip vorübergehend abschalten.

Als Scrolldauer sind 5 Sekunden je Strophe vorgesehen, also bei 24 fps , 120 Frames lang.

Den Strip mit dem ersten Vers auswählen.

Die Eigenschaften zu den Time Properties scrollen

Diese aufklappen.

Die Länge der Sequenz bei Duration einstellen. Einfach einmal draufklicken.

Dort die Zielzahl 120 eingeben.

Als Current Frame' 1 einstellen

Hochscrollen zu Transform Properties. Auch hier wäre natürlich eine direkte Eingabe des Wertes möglich aber sinniger ist es den Position Y Wert einfach zu greifen und solange nach links zu schieben bis der Text gerade aus dem Preview verschwunden ist.

Um die Animation dieses Parameters zu aktivieren, auf den Punkt rechts neben diesem klicken. Er wird dann zur Raute und der Wert dunkelrot unterlegt.

Drücke 'i' um einen Keyframe zu erzeugen. Dann den aktuellen Frame auf 120 setzen und Position Y so einstellen das der Text gerade so nach oben aus dem Preview verschwindet. Die Wertanzeige verfärbt sich dabei orange. Wieder auf den Punk rechts daneben klicken und erneut einen Keyframe mit 'i' erzeugen

Aus einem mir nicht verständlichen Grunde ist die letzte Zeile abgschnitten. Unter Style in den Eigenschaften die Fontgröße einzustellen löste das Problem.

Beim Abspielen sollte jetzt die erste Strophe zwischen Frame 1 und 120 über den Bildschirm scrollen.

Als Current Frame die Stelle suchen an der die zweite Strophe hereinscrollen soll. Die Sequenz für den zweiten Strip wieder aktivieren.

In den Eigenschaften dieser Sequenz unter Time Start den ausgesuchten Current Frame einstellen. Eventuell muß auf Gund der verschiedenen Textlaufweite die X Position abgestimmt werden.

Ab hier wiederholt es sich. Länge auf 120 Frames und die Y Position wieder auf knapp nach unten verschwunden stellen. Punkt für Animation aktivieren und Keyframe einfügen. Current Frame auf den Endframe der Sequenz setzen. Wert einstellen, Punkt für Animation und wieder Keyframe einfügen setzen.

Zum manuellen Bearbeiten der Keyframes den gewünschten Strip auswählen und einen Grapheditor öffnen.

Die Eigenschaften des Grapheditors öffnnen.

Den gewünschten Punkt auswählen und seine Eigenschaften nach belieben bearbeiten, durch direkte Eingabe der Werte oder verschieben des Punktes.


computer.lothar-rosengarten.de/blender/mulitplelinetexteffectstrip.html – 2021-10-06

Wer mich in meinem Tun unterstützen will kann gern vorm Bildschirm beifällig mit dem Kopf nicken oder:

Kontakt