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

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

Over de auteur:
Ik gebruik Linux sinds 1993. Afkomstig van de Amiga, kan ik het waarderen dat je overal de broncode voor kunt krijgen en zien hoe anderen het in hun programma doen.

Vertaald naar het Nederlands door:
Guus Snijders <ghs(at)linuxfocus.org>

Simpele Animatie

[Illustratie]

Kort:

[open
mond]

Het maken van een simpele animatie is leuk en makkelijk, voor kinderen en volwassenen. Mogelijke types animatie omvatten eenvoudige object animatie, Monty Python-stijl animaties, Time-lapse films, klei animaties à la Wallace&Grommit en vele anderen.

In dit artikel zullen we geen volledige film maken. Met een erg simpel voorbeeld leer je de basistechnieken. Net genoeg om je eigen film te beginnen ;-).

Opmerking: De afbeelding rechts en de kleine punt boven zijn geanimeerd. Om ze te zien in je browser dien je gif-animatie aan te hebben staan.


_________________ _________________ _________________

 

Overzicht

Het creëren van een animatie gaat in drie stappen: Eerst bedenk je wat je precies wilt doen. Dit kan zo simpel zijn als aan de kinderen vragen een speelgoed auto en wat figuren op te halen en gelijk beginnen met het maken van een film van een auto-ongeluk. Of je doet het net als professionele animators en je bouwt een verhaallijn, compleet met gedetailleerde plannen en schetsen. Een goed idee en een goed-doordacht verhaal zijn vaak belangrijker dan dure een kwaliteits-uitrusting.

Hoe je het ook planned, de volgende stap is het verzamelen van frames voor de animatie. Eventueel kun je deze nabewerken of frames toevoegen met tekst, zoals in de oude Stan-en-Ollie (de Dikke en de Dunne) films.

Ten slotte voeg je de losse frames samen in een film.

 

Benodigde Hard- en Software

De afbeelding kunnen uit meerdere bronnen komen: Als je de afbeeldingen van een externe bron (een van de eerste drie uit de lijst hierboven) wilt halen, ga ik er vanuit dat je daarvoor over werkende software beschikt. Behalve dat, zullen we het programma mencoder van het mplayer (www.mplayerhq.hu) package gebruiken om de film te produceren. Dit is krachtige software, is waarschijnlijk reeds geïnstalleerd op je computer, en met mplayer heb je een programma om de film te bekijken.

Voor het bewerken van de frames kun je Gimp of een ander grafisch programma gebruiken.
ImageMagick (www.imagemagick.org), het Zwitsers zakmes onder programma's voor het converteren en weergeven van afbeeldingen is erg handig voor het maken van animaties.  

Een eerste Animatie

Als je over een webcam of digitale camera beschikt, plaatst deze dan op de tafel en plaats er iets voor. Dit "iets" kan een appel zijn, een glas, of gewoon je hand. Mijn kinderen hadden plezier met een Playmobil auto en poppetjes, waarmee ze het auto-ongeluk dat eerder werd genoemd, in scene zetten. Maak een serie afbeeldingen en verplaats het object een klein beetje tussen de verschillende foto's. 10-20 foto's is genoeg voor onze eerste film.

Als je geen camera hebt, is het ook geen probleem, we maken een "springende-stip" animatie. Start Gimp en selecteer Bestand->Nieuw. Klik "OK" om een standaard 256x256 afbeelding met een witte achtergrond te krijgen. Selecteer het penseel in het hoofdvenster en klik ergens in de linker onderhoek van de afbeelding om een stip te produceren. Rechts-klik op de afbeelding, selecteer Bestand->OpslaanAls en sla de afbeelding op als "0001.jpg" in een lege directory. Bij het JPEG-opties scherm, klik je gewoon op "OK". Dit is het eerste frame. Laten we zeggen dat we 10 frames willen, herhaal de volgende stappen dus 9 keer:

  1. beweeg de muis-aanwijzer naar de huidige stip. Als je de stippen op gelijke afstanden zet in ieder frame, zal de beweging linear lijken. Voor een springende bal is het realistischer om de zijdelingse afstand te beperken als de stip bovenin zijn traject zit.
  2. druk op CTRL-z om de huidige stip te verwijderen (CTRL-z is ongedaan maken).
  3. klik om de nieuwe stip op de nieuwe positie te produceren.
  4. rechts-klik, selecteer Bestand-OpslaanAls en sla op als 0002.jpg enz.
    Tip: Scheur het "bestand" menu af door te klikken op de stippellijn van het menu. Dit laat het Bestand menu permanent op het bureaublad en nu kun je gewoon klikken op "OpslaanAls...".

Je zou nu zoiets als dit moeten hebben:
[frame1] [frame2] [frame3] [frame4] [frame5] [frame6] [frame7] [frame8] [frame9]

Nu maken we de film:

$ mencoder 'mf://*.jpg' -mf type=jpg:fps=4 -ovc copy -oac copy -o output.avi
De parameter "fps" geeft het aantal "frames per seconde". Lagere nummers betekenen minder werk voor jou, maar een schokkeriger animatie.

Om je meesterwerk te bekijken, type je:

$ mplayer output.avi
Als je wilt experimenteren met verschillende frame rates, kun je dat doen met de "-fps" optie van mplayer. Om bijvoorbeeld 10 frames per seconde te forceren, gebruik je "-fps 10". Het is niet noodzakelijk om de animatie weer te coderen met een andere framerate, tenzij je deze aan iemand anders wilt geven.

Vooral voor korte clips is het vaak handig om de "-loop" optie te gebruiken, bijvoorbeeld "-loop 10". Dit zal de clip tien keer afspelen.

Als alternatief voor mencoder/mplayer, kun je het animate programma van ImageMagick gebruiken om de clip te testen:

$ animate *.jpg
Dit speelt de clip continu. Als je links-klikt op de animatie, wordt er een menu geopend. Je kunt de Spatie en Backspace toetsen gebruiken om stap-voor-stap door de animatie heen te bladeren (de bestandsnaam van het huidige frame wordt weergegeven in de titelbalk van het venster, handig als je een bepaald frame wilt bijwerken). Om de snelheid van de animatie aan te passen, kun je de "<" en ">" toetsen gebruiken.  

Monty Python Stijl

Voor een Monty Python stijl animatie, neem je een foto van een gezicht. Als je geen afbeelding hebt, kun je er ook een van het web halen. De foto dient van voren te zijn genomen met de kin goed zichtbaar. Laadt deze in Gimp en klik op de Lasso-tool. Selecteer de kin en onderlip, je hebt nu een min of meer rechthoekige selectie die de vorm van de kin onderaan de selectie volgt. Druk op CTRL-c op de selectie te kopiëren. Druk op CTRL-y om de selectie te verwijderen. Nu bevat het klembord een kin die je op en neer kunt bewegen, maar om een betere illusie te creëren, kun je de mond zwart maken, over de onderlip schilderdend alsook het gebied eronder.

Druk nu op CTRL-v en selecteer de Verplaats-tool (het pictogram bevat de pijltjes in alle vier de richtingen). Plaats de kin waar die zich origineel bevond. Sla het bestand op als 0001.jpg, net als je deed met de springende stip, klik op "Export" als Gimp klaagt dat een JPEG geen transparantie kan bevatten. Verplaats de kin iets naar beneden en sla deze op als 0002.jpg. Ga zo door tot je alle frames hebt. Vervolgens codeer je met mencoder. Je krijgt bonus punten voor lip-synchronisatie op muziek of een spraak audio bestand.

Als je een geanimeerde GIF wilt maken (zoals de afbeelding bovenaan dit artikel), kun je ImageMagick's convert programma daarvoor gebruiken:

$ convert -delay 20 *.jpg out.gif
De "-delay" optie is in 1/100ste van een seconde, 20 staat dus gelijk aan 5 frames per seconde. Overigens kun je de enkelvoudige frames in de geanimeerde GIF zien met "identify":
$ 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
 

Time-laps Films

Time-laps films zijn eenvoudig te maken maar kunnen erg interessant zijn. En je hoeft je geen zorgen te maken over een script of verhaal. Het enige dat je hoeft te doen is je computer zo instellen dat je op regelmatige intervals foto's kunt maken. Als je over een video4linux (v4l) -compatibele camera beschikt, kun je vgrabbj (gecius.de/vgrabbj/) proberen. Deze kan iedere x seconden foto's maken en deze opslaan in bestanden.

Als je automatisch schiet, kun je je over de luxe van een hoge framerate beschikken, zolang de vrije ruimte van je harde schijf dit toestaat.

Wat te filmen?

Ik heb het zelf niet geprobeerd, maar als je baby pas geboren is, zou je iedere x maanden een foto kunnen maken, vanaf geboorte door zijn leven. Ok, het duurt vrij lang voordat je een aantal frames hebt, maar het resultaat zou erg fraai moeten zijn. Ik zou echte foto's nemen en die scannen omdat je er zeker van kunt zijn dat echte foto's vele jaren mee gaan, vergeleken met bestandsformaten, mediarot en andere problemen.

Als je besluit foto's te maken van je opgroeiende kind, is mijn conclusie dat 6 maanden genoeg zou moeten zijn voor voldoende foto's, zonder dat het te vaak moet gebeuren. Als je baby in de zomer is geboren, kun je geboorte en kerst foto's maken :-) De andere conclusie die ik had is om de foto altijd zo te maken dat er 2m wordt weergegeven in de foto, zodat je ze allen gelijk kunt schalen. Anders dien je ze zelf te schalen.

 

Andere Ideeën

Zoek uit hoe je audio kunt toevoegen aan je animatie. Zelfs al maak je geluid door te rommellen met je voeten, krassen, kliks, enz. Dit maakt de animatie veel levendiger.

Maak Pixar's Luxo Jr. (www.pixar.com/shorts/ljr/) opnieuw met je bureaulamp en een bal.

Stel dat je een ballon wilt toevoegen, om een persoon of wat te maken. In plaats van de stappen van "1" te volgen voor de afbeeldingsnamen, gebruik stappen van "10" als je frames maakt. Laadt het frame waarin je de ballon wilt toevoegen in Gimp. Teken de ballon en voeg de tekst toe. Sla het frame op en sluit Gimp af. Nu dupliceer (kopieer het bestand) je het frame 9 keer, geef ze nummers tussen de huidige en de volgende frame. Als je BASIC hebt geprogrammeerd in de jaren '80, zul je je deze techniek waarschijnlijk wel herinneren :-) Wanneer je dit codeerd, zullen de frames met de ballon langer worden weergegeven, lang genoeg om de tekst te kunnen lezen. Met dezelfde techniek kun je een nieuw frame invoegen, net zoals ze dat deden met de "stomme" (stille) films aan het begin van de 20e eeuw.

Je zult al snel de vorige frame(s) over de eigenlijke camera foto (overlay) willen plaatsen (dit heeft "uie-schil). Hiermee kun je positie van bewegende objecten beter uitmeten en zo de illusie van bewegen verbeteren. het Gimp Animation Package ziet er veelbelovend uit voor dit doel.

 

Verder Leesvoer



Site onderhouden door het LinuxFocus editors team
© Alexander Langer
"some rights reserved" see linuxfocus.org/license/
http://www.LinuxFocus.org
Vertaling info:
en --> -- : Alexander Langer <lf(at)kuxi.de>
en --> nl: Guus Snijders <ghs(at)linuxfocus.org>

2005-01-14, generated by lfparser_pdf version 2.51