Director Movie mit Lingo als Video ausgeben
Zwar würde die Bezeichnung "Director-Movie" nahe legen, dass man es als Video ausgeben kann, dem ist aber nur sehr eingeschränkt so. Exportiert werden nur Bilder/Texte
auf der Stage - und die nur so, wie sie im Drehbuch positioniert wurden. Alles was über Lingo passiert und ebenso einige Medientypen werden ignoriert.
Hier eine Möglichkeit, mit der auch scriptgesteuerte Animationen als Video exportiert werden können.
Im speziellen Fall wollte ich ein Shockwave-3D Spiel "abfilmen". 3D-Darsteller gehören (normalerweise) nicht zur Stage, sondern werden über das Xtra eingeblendet. Es ist
daher nötig, "echte" Screenshots zu machen. Da während einer Transition kein Script ausgeführt wird, können diese nicht mitgefilmt werden - später eine kurze
Anregung, wie es trotzdem gehen würde.
Das selbe gilt für Audio (und wahrscheinlich Video)
Die Strategie:
Mithilfe des ScreenXtra werden - von einem Verhalten gesteuert - Screenshots gemacht und
in eine Castlib abgelegt. Das bremst zwar stark ein, mit etwas Übung, einem flotten Computer und ruhiger Hand kann trotzdem der Ablauf gesteuert werden.
In einem zweiten Teil können alle diese Screenshots gespeichtert und in einem neuen Movie nacheinander im Drehbuch positioniert werden. Damit können sie über die normale Exportfunktion
in ein Video konvertiert werden.
Als zweite Möglichkeit werden alle Bilder als durchnummerierte JPGs gespeichert, um dann zb in After Effects als Filmsequenz geladen zu werden. Zum Speichern verwende ich das "SharpExport"-Xtra.
Konkret - so geht's:
Grundsätzlich empfehle ich, mit einer Kopie des Movies zu testen; es könnten Bilder überschrieben werden - der Teufel schläft nie.
Zuerst muss die Castlib "Videosequenz.cst" mit dem Movie verknüpft werden. In der Castlib befindet sich das Bild "AufnahmeBereich", das - unsichtbar (blend = 0) in
dem Bereich im Drehbuch positioniert wird, in dem aufgezeichnet werden soll. Es gibt auch Größe/Ausschnitt vor.
An diesem Sprite wird das Verhalten "AufnahmeBereichScript" angeklebt. Im Script sind einige Variable zu setzen bzw muss es angepasst werden:
--entweder eine fixe Aufnahmezeit, gestartet mit Taste "r"
pBilderAufnehmen = 25 * 10 --zB 25 Frames, 10 Sekunden lang
--oder (Standard):
--aufnehmen, solange die Taste "r" gedrückt wird:
pBilderAufnehmen = 0
Ich habe nicht "keyDown" sondern "keypressed" verwendet, weil es Konflikte mit anderen Scripts geben könnte.
Wer generell einen ganzen Bereich aufnehmen will, muss gleich in beginSprite pAufnahmeCounter = 1 setzen. Das spart den Tastendruck.
Solange das Script jetzt aufnimmt, werden in der Castlib "Videosequenz" die Screenshots abgelegt. Eventuell muss die Anzahl der Darsteller pro Castlib erhöht werden. Ich empfehle
aber, in Teilen zu arbeiten; kein Rechner wird 2 Stunden unkomprimiertes Video im Speicher halten können - wo es ja jetzt landet.
Mein Rechner (1 Gb Arbeitsspeicher) schafft 700 Bilder in 1024 * 768; das sind ca 28 Sekunden, bei PAL-Auflösung etwa das Doppelte.
Mit einem 2. Script "Speichern Und Loeschen", das man einfach per Nachrichtenfenster ausführt, werden alle Bilder in einen angegebenen Ordner gespeichert und können gesondert,
etwa in After Effects geladen und bearbeitet werden.
Was man anders/besser machen kann:
Will man wirklich lange Videosequenzen im Stück ausgeben, sollte man jeden Screenshot gleich speichern. Das bremst allerdings so stark, dass manuelle Kontrolle nur in Ausnahmefällen
möglich sein wird. Aber natürlich kann man einen Maus/Event-Recorder machen, der zuerst in Echtzeit aufzeichnet und danach alles noch einmal abspielt - diesmal mit Aufnahme.
Wer auch Videos/Transitions mitnehmen will, könnte diesen Weg einschlagen: 2 Projektoren machen und einen mit dem anderen abfilmen. Dazu wird es in der Regel nötig sein, das erste
(zu filmende) Movie stark zu verlangsamen oder nur die Transitions selbst zu filmen.
|