Beweging

Naadloze loopvideo: zo maak je er een die nooit verspringt

Een loop die elke tien seconden één keer verspringt, is erger dan helemaal geen beweging. De oplossing is geen betere editor, maar beweging die is ontworpen om thuis te komen.

GradientlyGeverifieerd Gradiently-account··6 min lezen
Cover: Smoked Coin · GR·B3FN·5V

De korte versie

  • Een naadloze loop is een video waarvan het laatste frame rechtstreeks naar het eerste leidt, zodat hij zonder zichtbare sprong kan herhalen.
  • Gegenereerde beweging loopt schoon wanneer alles wat beweegt een geheel aantal cycli voltooit binnen de lengte van de video.
  • De meest voorkomende hapering is een dubbel frame: het laatste frame hoort het frame vlak voor het eerste te zijn, geen kopie ervan.
  • Beeldmateriaal dat niet is ontworpen om te loopen, herstel je door de twee helften om te wisselen en op de nieuwe las een overvloeier te leggen.
  • Controleer een loop door hem herhaald op volle grootte af te spelen en het laatste frame met het eerste te vergelijken.
Op deze pagina

Een naadloze loop is een video waarvan het laatste frame rechtstreeks naar het eerste leidt, zodat hij eindeloos kan herhalen zonder dat iemand ziet waar hij begint. Het geheim is dat alles in het beeld op precies het juiste moment thuis moet komen: elke positie, kleur, lichtsterkte en elk deeltje eindigt één stap voor waar het begon. Krijg je dat goed, dan kan een clip van tien seconden de hele dag spelen.

Deze gids behandelt waarom loops verspringen, hoe je beweging ontwerpt die vanzelf terugkeert, hoe je beeldmateriaal redt dat niet is gemaakt om te loopen, en hoe je de naad controleert voordat je publiceert. Zie voor de look van de loop zelf geanimeerde achtergronden met kleurverloop.

Waarom de meeste loops verspringen

Een sprong op de naad heeft altijd een specifieke oorzaak, en elke oorzaak heeft een specifieke oplossing. Het helpt te benoemen naar welke je kijkt.

OorzaakWat je zietOplossing
Het einde past niet op het beginKleur of positie schiet terugMaak de beweging periodiek, of gebruik een overvloeier
Dubbel frameEen piepkleine hapering of pauze op de lasRender het laatste frame één stap voor het eerste
Beweging komt aan de uiteinden tot stilstandEen tel stilte, en dan weer bewegingHoud de snelheid door de naad heen continu
Willekeurige ruis of deeltjes die niet herhalenTextuur of spikkels verspringenLaat de ruis loopen, of laat de deeltjes eerst tot rust komen
Zware compressieEen zachte puls van onscherpte op de lasExporteer op een hogere kwaliteit

De derde oorzaak is verraderlijk. Animeer je van A naar B en terug met easing aan beide uiteinden, dan komt de beweging op de naad tot stilstand en lijkt de loop te aarzelen. Easing hoort aan het begin en einde van een eenmalige beweging, niet op de las van een loop. Easing legt het verschil uit.

Beweging ontwerpen die vanzelf loopt

De schoonste loops bestaan uit periodieke beweging: beweging die van nature herhaalt, zoals een punt dat een cirkel rondgaat of licht dat aanzwelt en afneemt. Als alles wat beweegt een geheel aantal cycli voltooit binnen de lengte van de video, valt het laatste frame vanzelf op één lijn met het eerste. Cirkels, sinusgolven en volledige rondes van de tint zijn allemaal periodiek.

js
const fps = 30
const seconds = 10
const frames = fps * seconds            // 300 frames, numbered 0 to 299

for (let i = 0; i < frames; i++) {
  const phase = i / frames              // 0 up to, but never reaching, 1
  const turn = phase * Math.PI * 2      // one full turn per loop

  const x = Math.cos(turn) * 40         // drift in a circle, 40 px across
  const y = Math.sin(turn) * 40
  const hue = 280 + Math.sin(turn * 2) * 20   // two gentle hue swings per loop
  const glow = 0.5 + 0.5 * Math.sin(turn)     // light breathes once per loop

  drawFrame(i, { x, y, hue, glow })     // your renderer
}
Periodieke beweging voor een loop van 10 seconden. Elke waarde voltooit hele cycli, en omdat phase net voor 1 stopt, wordt frame 300 (een kopie van frame 0) nooit getekend.

Dat laatste detail voorkomt de hapering. Is je laatste frame identiek aan je eerste, dan toont de speler dat beeld bij elke herhaling twee keer achter elkaar. Het laatste frame hoort het frame vlak voor het eerste te zijn.

Over een goede naad verschilt elk frame met dezelfde kleine stap van het volgende. Er is geen frame waarin de verandering groter is, en geen frame dat herhaalt.

Ruis, korrel en deeltjes laten loopen

Organische texturen worden vaak gemaakt van ruis, en die herhaalt standaard niet. De gebruikelijke truc is in een cirkel door de ruis te bewegen in plaats van in een rechte lijn, zodat je na één loop weer op hetzelfde punt zit. Deeltjessystemen zijn anders: de positie van elk deeltje hangt af van de vorige. Laat je de simulatie een volledige loop draaien voordat je opneemt, dan vinden de deeltjes hun ritme en ligt het opgenomen einde dicht bij het begin.

Zo loop je beeldmateriaal dat niet is gemaakt om te loopen

Gefilmde clips, zoals golven, rook of wolken, eindigen zelden waar ze beginnen. De klassieke oplossing werkt in elke video-editor: verplaats de las naar het midden van de clip, waar het beeld al doorloopt, en verberg de nieuwe snede met een overvloeier.

  1. 1

    Splits de clip in het midden

    Knip de clip in twee helften, A en B, op een moment met gelijkmatige beweging.

  2. 2

    Wissel de helften om

    Zet B eerst en A daarna. Het einde van A vloeit nu over in het begin van B, omdat dat in het origineel één doorlopend moment was, dus het looppunt is naadloos.

  3. 3

    Leg een overvloeier op het nieuwe midden

    Laat B en A waar ze elkaar raken een halve tot twee seconden overlappen en laat de een in de ander overvloeien. Zacht beeld met veel textuur verbergt een overvloeier het best.

  4. 4

    Kort in tot een ronde lengte

    Mik op een geheel aantal seconden, zodat de loop makkelijk te timen en te hergebruiken is.

Een looplengte kiezen

Langere loops voelen minder repetitief, maar het zijn grotere bestanden en ze hebben meer periodieke beweging nodig om interessant te blijven. Korte loops herhalen vaak, dus hun beweging moet subtiel genoeg zijn om niet hypnotisch te worden. Bij 30 frames per seconde is een loop van 10 seconden 300 frames, en dat deel je netjes in helften, derden en kwarten voor je cycli.

Waar hij speeltAanbevolen lengteWaarom
Stories en korte posts5 tot 10 secondenKijkers gaan snel verder; kleine bestanden
Reels en videoachtergronden10 tot 15 secondenRuimte voor een tragere, rustigere cyclus
Website-hero8 tot 15 secondenKort genoeg om het bestand licht te houden
Schermen, displays, wallpapers15 tot 30 secondenMensen kijken langer, dus herhalingen moeten minder opvallen
Startpunten, geen regels. Het bestandsformaat telt ook; zie GIF versus MP4.

Zo controleer je de naad

Beoordeel een loop niet door hem één keer in een editor te bekijken. Bekijk hem zoals mensen hem tegenkomen: herhalend, op volle grootte, langer dan nodig lijkt. Naden die zich in een klein voorbeeld verstoppen, zie je vaak wel op een groot scherm.

bash
# Play the loop four times in a row as one file, to watch the joins
ffmpeg -stream_loop 3 -i loop.mp4 -c copy loop-x4.mp4

# Save the first and last frames as images to compare side by side
ffmpeg -i loop.mp4 -vf "select=eq(n\,0)" -frames:v 1 first.png
ffmpeg -sseof -0.5 -i loop.mp4 -update 1 last.png
Twee snelle controles met ffmpeg. Het laatste frame hoort precies één normale bewegingsstap van het eerste te verschillen.
  • Bekijk het bestand met vier herhalingen schermvullend en kijk alleen naar de las.
  • Kijk naar de randen en hoeken, waar verschuiving het best zichtbaar is.
  • Bekijk de korrel en de deeltjes los van de kleur.
  • Zie je een zachte puls op de las, dan is het compressie: exporteer op een hogere kwaliteit.

Maak je loops in Gradiently, dan is dit voor je geregeld: elke geëxporteerde loop is zo opgebouwd dat het bewegende vlak hele cycli voltooit binnen de lengte die je kiest, van 5 tot 30 seconden, en het einde op het begin aansluit. Het is dezelfde aanpak die je in code zou kiezen, toegepast op je Mark. Loops zijn ook goede live wallpapers en videoachtergronden voor websites.

Vragen die mensen stellen

Wat is een naadloze loop?

Het is een video of animatie waarvan het laatste frame rechtstreeks naar het eerste leidt, zodat hij doorlopend kan herhalen zonder zichtbare sprong of pauze.

Waarom hapert mijn loop aan het einde?

Meestal omdat het laatste frame een kopie van het eerste is, waardoor hetzelfde beeld twee keer verschijnt. Maak van het laatste frame het frame vlak voor het eerste.

Hoe loop ik een video die niet is gefilmd om te loopen?

Splits hem in het midden, wissel de twee helften om en leg een overvloeier op de plek waar ze elkaar nu raken. De oorspronkelijke las loopt dan door, en de overvloeier verbergt de nieuwe.

Hoe lang moet een loopende video zijn?

5 tot 10 seconden voor stories en posts, 10 tot 15 voor reels en webachtergronden, en 15 tot 30 voor schermen en wallpapers waar mensen langer naar kijken.

Waarom zit er onscherpte op het looppunt?

Dat is meestal compressie, niet de animatie. Exporteren op een hogere kwaliteit of bitrate haalt het weg.

Deel deze gids

Geschreven door GradientlyGeverifieerd Gradiently-account

Het team achter Gradiently, een ontwerptool rond Marks: levende kleurverlopen die alles wat je ontwerpt op jou laten lijken.

Bekijk ons profiel