[LinuxFocus-icon]
LinuxFocus article number 347
http://linuxfocus.org

[Alex]
von Alexander Langer
<lf(at)kuxi.de>

Über den Autor:
Seit 1993 benutze ich Linux. Auf Grund meiner Amigaerfahrung schätze ich den Zugang zum Sourcecode, im allgemeinen und um herauszufinden, wie andere ihre Programme bauen.

Übersetzt ins Deutsche von:
Jürgen Pohl <sept.sapins(at)verizon.net>

Einfache Animation

[Illustration]

Zusammenfassung:

[open mouth]

Eine einfache Animation zu erzeugen macht einfach Spass - für Kinder, als auch für Erwachsene. Die Animationsarten schliessen einfache Objektanimation, Animationen im Monty-Python-Stil, Zeitrafferfilme, Knetmasse-Animationen à la Wallace & Grommit, ein.

In diesem Artikel werden wir keinen vollständigen Film entwerfen. An einem einfachen Beispiel werden wir die wesentlichen Techniken lernen. Gerade genug, um mit eurem eigenen Film anzufangen ;-).

Hinweis: Das Bild rechts und der kleine Punkt oben sind animiert. Du musst gif- Animation aktivieren, um sie in Deinem Browser zu sehen.


_________________ _________________ _________________

 

Übersicht

Animationen zu erzeugen ist ein Prozess in drei Schritten: Als erstes überlegst Du Dir, was Du erreichen willst. Das könnte so einfach sein , wie die Kinder zu bitten, ein Spielzeugauto und einige Figuren zu Verfügung zu stellen, um einfach einen Film über einen Autounfall zu machen. Oder Du benutzt ,wie die Professionalen, ein Storyboard mit ausführlichen Plänen und Skizzen. Eine gute Idee und eine durchgedachte Geschichte sind in der Regel wichtiger, als hochwertige oder teure Ausrüstung.

Unabhängig vom Plan, besteht der nächste Schritt in der Schöpfung von Einzelaufnahmen der Animation. Wahlweise kannst Du diese nachbearbeiten oder Textframes hinzufügen - wie in den alten Stan- and Ollie-Filmen.

Zum Schluss fügst Du die einzelnen Aufnahmen zu einem Film zusammen.

 

Notwendige Hard- und Software

Die Aufnahmen können von verschiedenen Quellen stammen: Falls Du Bilder von externen Quellen beziehen willst (eine der ersten drei in der Liste oben), vermute ich, Du hast die notwendige Software, um das durchzuführen. Ausserdem benötigst Du das Programm mencoder von mplayer (www.mplayerhq.hu) um den Film zu produzieren. Das ist eine leistungsfähige Software, die wahrscheinlich schon auf Deinem Computer installiert ist; mit mplayer hast Du auch ein Programm, um den Film anzuschauen.

Die Aufnahmen kannst Du mit Gimp oder einem anderen Malprogramm editieren.
ImageMagick (www.imagemagick.org), das Swiss Army-Messer unter den Programmen - zum Konvertieren und Darstellen von Bildern - ist sehr nützlich, um Animationen zu gestalten und vorzuführen.

 

Eine erste Animation

Besitzt Du eine Webcam oder eine Digitalkamera, stelle sie auf den Tisch und ordne einen Gegenstand davor an. Das kann ein Apfel, ein Glass oder einfach Deine Hand sein. Meine Kinder hatten Spasss mit einem Playmobil und einigen Figuren, damit wurde der oben erwähnte Autounfall-Film erzeugt. Mache eine Serie von Bildern, verschiebe den Gegenstand zwischen den Aufnahmen. 10 bis 20 Bilder sind genug für Deinen ersten Film.

Kein Problem, falls Du keine Kamera hast, wir machen eine "springender Punkt"-Animation. Öffne Gimp und wähle File >New. Klicke "OK", um ein 256x256-Default-Bild mit weissem Hintergrund zu erhalten. Wähle das Pinselwerkzeug im Hauptfenster und klicke irgendwo in der linken, unteren Gegend des Bildes, um einen Punkt zu erzeugen. Rechtsklicken auf das Bild, File >SaveAs wählen und das Bild als "0001.jpg" in ein leeres Verzeichnis speichern. Klicke einfach "OK" in der jpeg-Options-Liste. Das wäre also der erste Frame. Nehmen wir an, wir wollen 10 Frames, also wiederholen wir folgendes 9 mal:

  1. Führe den Mauszeiger nahe an den existierenden Punkt. Falls die Punkte von Frame zu Frame im gleichen Abstand sind, wird die Bewegung linear erscheinen. Um den springenden Ball realistischer erscheinen zu lassen, verringert man die Punktabstände am oberen Teil seiner Wurfbahn.
  2. CTRL-z drücken, um den gegenwärtigen Punkt zu beseitigen (CTRL-z ist 'rückgängig machen').
  3. Klicken, um einen neuen Punkt an der neuen Stelle zu erzeugen.
  4. Rechtsklicken zur Auswahl von File > SaveAs und als 0002.jpeg speichern, usw.
    Tipp: lasse das "File"-Menu offen durch Auswahl der gestrichelten Linie des "File"-Menüs. Das Filemenü bleibt dauernd auf dem Desktop geöffnet, und es ist einfacher "Save As..." zu klicken.

Du solltest nun Folgendes sehen:

[frame1] [frame2] [frame3] [frame4] [frame5] [frame6] [frame7] [frame8] [frame9]

Nun kreieren wir den Film:

$ mencoder 'mf://*.jpg' -mf type=jpg:fps=4 -ovc copy -oac copy -o output.avi
Der Parameter "fps" bestimmt den "Frames pro Sekunde"-Wert. Niedrige Werte bedeuten weniger Arbeit für Dich, erzeugen jedoch eine ruckligere Animation.

Um Dein Meisterstück zu bewundern, gebe ein:

$ mplayer output.avi
Mit verschiedenen Bildfrequenzen zu experimentieren ermöglicht mplayer's "-fps"-Option, um z.B. 10 Frames pro Sekunde zu erzwingen, gebe "-fps 10" ein. Es ist nicht notwendig, die Animation wieder mit einer anderen Framezahl zu kodieren, es sei denn, Du willst sie an jemand weitergeben.

Besonders für kurze Filmabschnitte ist es oft vorteilhaft die "-loop"- Option zu benutzen, z.B. "-loop 10". Das spielt den Filmabschnitt zehn mal.

Alternativ zu mencoder/mplayer kann man mit dem animate-Programm von ImageMagick den Filmabschnitt anschauen:

$ animate *.jpg
Das spielt den Filmabschnitt kontinuierlich. Links klicken auf die Animation öffnet ein Menü. Mittels Leertaste und Rücktaste kannst Du Dich in Einzelschritten durch die Animation bewegen (der Dateiname des aktuellen Frame ist im Titlebar des Fensters zu finden, das ist für die Nachbesserung von einzelnen Frames nützlich). Zur Änderung der Geschwindigkeit der Animation benutze die "<"- und ">"- Tasten.  

Monty-Python-Stil

Für Animationen im Monty-Python-Stil benutze das Foto eines Gesichts. Hast Du keins, finde eines im Web. Es sollte das Gesicht in Frontalansicht mit gut sichtbarem Kinn zeigen. Lade es in Gimp und klicke auf das Lasso-Tool. Wähle das Kinn und die untere Lippe aus, Du erhältst eine mehr oder weniger rechteckige Auswahl, die der Form des Kinns an der unteren Seite des Auswahlfeldes folgt. Drücke CTRL-c um die Auswahl zu kopieren. Mit CTRL-y entfernst Du die Auswahl. Die Zwischenablage enthält jetzt ein Kinn, das Du auf und ab bewegen kannst. Um eine bessere Illusion zu erzeugen, zeichne den Mund schwarz indem Du die Unterlippe und den Bereich darunter schwarz übermalst.

Drücke CTRL-v und wähle das Move-Tool (dessen Ikone hat Pfeile, die in alle vier Richtungen zeigen). Bewege das Bild an die Stelle, wo es ursprünglich war. Speichere das Bild als 0001.img, genau wie Du es mit dem springenden Punkt gemacht hast. Klicke auf "Export", wenn Gimp sich beschwert, dass JPEG mit Transparenz nichts anfangen kann. Bewege das Kinn ein wenig nach unten und speichere als 0002.jpg. Mache im gleichen Sinn weiter, bis Du alle Frames hast. Dann kodiere mit mencoder. Du bekommst Bonuspunkte, wenn Du die Lippen zu Musik oder einer Sprachaufnahme synchronisierst.

Wenn Du in ein animiertes GIF umwandeln willst (wie das Bild am Anfang dieses Artikels), kannst Du das mit ImageMagick's convert-Programm durchführen:

$ convert -delay 20 *.jpg out.gif
Die "-delay"-Option ist in 1/100 s, infolgedessen bedeutet "20" 5 Frames pro Sekunde. Du kannst übrigens die Einzelframes der animierten GIF mittels "identify" anschauen.
$ identify out.gif"
out.gif[0] GIF 152x104+0+0 PseudoClass 256c 8-bit 201.1k 0.0u 0:01
out.gif[1] GIF 152x104+0+0 PseudoClass 256c 8-bit 201.1k 0.0u 0:01
out.gif[2] GIF 152x104+0+0 PseudoClass 256c 8-bit 201.1k 0.0u 0:01
out.gif[3] GIF 152x104+0+0 PseudoClass 256c 8-bit 201.1k 0.0u 0:01
out.gif[4] GIF 152x104+0+0 PseudoClass 256c 8-bit 201.1k 0.0u 0:01
out.gif[5] GIF 152x104+0+0 PseudoClass 256c 8-bit 201.1k 0.0u 0:01
out.gif[6] GIF 152x104+0+0 PseudoClass 256c 8-bit 201.1k 0.0u 0:01
out.gif[7] GIF 152x104+0+0 PseudoClass 256c 8-bit 201.1k 0.0u 0:01
out.gif[8] GIF 152x104+0+0 PseudoClass 256c 8-bit 201.1k 0.0u 0:01
out.gif[9] GIF 152x104+0+0 PseudoClass 256c 8-bit 201.1k 0.0u 0:01
out.gif[10] GIF 152x104+0+0 PseudoClass 256c 8-bit 201.1k 0.0u 0:01
 

Zeitrafferfilme

Zeitrafferanimationen sind einfach herzustellen und können sehr vielfältig sein. Ausserdem brauchst Du Dich um keinen Skript oder um ein Filmstory zu kümmern. Du musst nur Deinen Computer für Bildaufnahme in regelmässigen Zeitabständen einrichten. Kannst Du eine video4linux (v4l) -kompatible Kamera benutzen, versuche vgrabbj (gecius.de/vgrabbj/). Das Programm kann alle x Sekunden Aufnahmen machen und diese als Dateien speichern.

Mit automatischen Aufnahmen kannst Du Dir den Luxus einer hohen Bildfolge erlauben, vorausgesetzt, Dein verfügbarer Speicherplatz erlaubt das.

Was könnten wir filmen?

Folgendes hab nicht selber ausprobiert, aber wenn Du gerade ein Neugeborenes hast, könntest Du während aller paar Monate seines Lebensfortschritts ein Foto machen. Einverstanden, es braucht ziemlich lange, bis Du ein paar Aufnahmen hast, das Ergebnis sollte begeistern. Ich würde dafür echte Fotos nehmen und diese scannen, die Fotos halten viele Jahre, im Vergleich zu Dateiformaten, Speicherverlusten und anderen Problemen.

Entscheidest Du Dich, Aufnahmen Deines heranwachsenden Kindes zu machen, würde ich sagen, ein Bild während aller sechs Monate sollte ausreichen. Ist Dein Baby im Sommer geboren, erhältst Du ein Geburtstagsfoto und dann Weihnachtsbilder :-) Meine nächste Feststellung: mache die Aufnahmen mit der gleichen Auflösung (2m), dadurch erhältst Du stets den gleichen Masstab für alle Bilder. Andernfalls musst Du sie selber skalieren.

 

Weitere Ideen

Finde heraus, wie Du Deine Animation vertonen kannst. Selbst wenn Du mit den Füssen einen Takt klopfst, kreischst, klickst usw. - das macht die Animation lebendiger.

Mit Deiner Tischlampe und einem Ball Pixar's nachempfinden Luxo Jr. (www.pixar.com/shorts/ljr/).

Nehmen wir an, Du willst eine Sprechblase einfügen, um eine Person oder Figur etwas sagen zu lassen. Anstelle von "1"-Schritten für die Bildnamen, benutze Schritte von "10", wenn Du die Aufnahmen machst. Lade die Aufnahme, in welche Du die Sprechblase einfügen willst, in Gimp. Zeichne einen Ballon und füge den Text ein. Speichere die Aufnahme und schliesse Gimp. Als nächstes vervielfältige die Aufnahme 9 mal, nummeriere die Kopien mit den Nummern zwischen der aktuellen und der nächsten Aufnahme. Falls Du gelernt hast mit Basic zu programmieren (in den 80gern), wirst Du Dich an diese Technik erinnern :-) Wenn Du das kodierst, werden die Frames mit der Sprechblase für eine längere Zeit gezeigt, lange genug, um den Text zu lesen. Mit der gleichen Methode kannst Du eine neue Aufnahme einfügen, wie sie es in den Stummfilmen am Anfang des 20. Jahrhunderts gemacht haben.

Bald wirst Du Dir wünschen, die vorangegange Aufnahme(n) der aktiven Aufnahme überlagern zu können ("onion skin" genannt). Damit ist es einfacher, die Lage des zu bewegenden Objekts anzugleichen, die Illusion der Bewegung wird verbessert. Das Gimp Animation-Paket sieht für diesen Zweck sehr vielversprechend aus.

 

Weiterer Lesestoff



Der LinuxFocus Redaktion schreiben
© Alexander Langer
"some rights reserved" see linuxfocus.org/license/
http://www.LinuxFocus.org
Autoren und Übersetzer:
en --> -- : Alexander Langer <lf(at)kuxi.de>
en --> de: Jürgen Pohl <sept.sapins(at)verizon.net>

2005-01-14, generated by lfparser_pdf version 2.51