Computer animatie

Van Wikipedia, de gratis encyclopedie
Spring naar navigatie Spring naar zoeken
Een eenvoudige computer gegenereerde animatie van een Archimedische schroef
Fysiek correcte simulatie van een viskeuze vloeistof

Computeranimatie verwijst naar de computerondersteunde generatie van animaties . Het gebruikt de tools van computergraphics en vult deze aan met aanvullende technieken.

Soms wordt er onderscheid gemaakt tussen computerondersteunde en computergegenereerde animatie. Terwijl de eerste is gebaseerd op gedigitaliseerde tekeningen, waartussen de animatiesoftware interpoleert om vloeiende bewegingssequenties te verkrijgen, werkt de laatste met een driedimensionale scène waaruit direct beelden worden gegenereerd met behulp van beeldsynthese .

3D animatie

3D- animatie wordt onder meer gebruikt voor computergames , animatiefilms en de levensechte reconstructie van uitgestorven dieren. De animaties zijn vooral belangrijk voor het weergeven van digitale mensen en karakters.

Een animator gebruikt een digitale pop om het personage te positioneren en gebruikt vervolgens een systeem van bewegingspaden of splines om de beweging van het personage tussen die posities te definiëren.

3D- animatie is een technisch intensief proces waarbij vaak veel specialisten het personage modelleren, ze uitrusten met botten en bedieningselementen, ze animeren en ze vervolgens textureren en belichten voor de uiteindelijke uitvoer. Personages worden digitaal gemodelleerd in 3D-animaties in een computerprogramma en krijgen vervolgens een 'skelet' waarmee animators de modellen kunnen verplaatsen.

De animatie gebeurt door de modellen op bepaalde keyframes te plaatsen . De computer berekent vervolgens een interpolatie tussen deze frames om een beweging te genereren. Wanneer de modellering of animatie klaar is, geeft de computer elke afbeelding afzonderlijk weer, wat tijdrovend kan zijn, afhankelijk van de kwaliteit van de afbeeldingen die u nodig hebt. Meestal kijkt een 3D- animator naar rondingen die de beweging van verschillende delen van het lichaam in de loop van de tijd weergeven . In tegenstelling tot traditionele animatie, moeten de lichaamsdelen van het personage altijd aanwezig zijn en er moet rekening mee worden gehouden. [1]

Keyframes en interpolatie

Scène uit de door de computer gegenereerde korte film Big Buck Bunny (2008)

De techniek van keyframe-animatie (keyframing) komt oorspronkelijk uit de productie van animatiefilms . Niet alle afzonderlijke afbeeldingen zijn met de hand getekend, alleen zogenaamde sleutelafbeeldingen, die grofweg de volgorde van bewegingen aangeven. De afzonderlijke frames tussen de keyframes worden automatisch berekend met behulp van interpolatietechnieken, ook wel tweening genoemd .

In het geval van door de computer gegenereerde animatie is de term "keyframe" misleidend omdat de interpolatie niet is gebaseerd op de volledige afbeeldingen. In plaats daarvan worden verschillende parameters van de scène ingesteld, zoals de posities van de objectcentra, hun kleuren en schaal, de camerapositie en kijkrichting of de intensiteit van de lichtbronnen. Voor verschillende parameters kunnen ook verschillende keyframes worden geselecteerd.

Interpolatiemethoden

Diverse TCB-splines

Om plotselinge snelheidsveranderingen te voorkomen, wordt de interpolatiecurve van de sleutelwaarden meestal zo gekozen dat de afleiding ervan continu is . Een hogere constante differentieerbaarheid is meestal niet nodig, omdat de tweede afgeleide (versnelling) vaak abrupt van aard verandert. Deze eigenschappen maken Catmull-Rom-splines een goede keuze voor animatiecurven. Bij veel animatiesystemen kan de animator de animatiecurve verfijnen door de raaklijnen specifiek aan te passen aan de belangrijkste waarden. Dit wordt vaak gedaan door het beheersen van spanning, continuïteit en vooringenomenheid (TCB). Hiervoor worden de Catmull- Rom- tot Kochanek-Bartels-Splines uitgebreid, waarmee deze drie parameters per sleutelwaarde kunnen worden ingesteld.

Als door digitalisering een bewegingspad is verkregen, moet deze eerst worden gebruikt voordat deze kan worden gebruikt gladgestreken om scheuren en lawaai te verwijderen.

Curve parametrering

Dezelfde parametrische afstanden, hier gemarkeerd met witte pijlen, komen niet overeen met dezelfde curve-afstanden (zwarte pijlen)

De loutere Besc In het algemeen is het niet voldoende om de animatiecurve te besturen als niet alleen de positie maar ook de snelheid van een object langs een pad moet worden gecontroleerd. Dat komt omdat de Een curve op meerdere punten passen wordt niets gezegd over de snelheid tussen deze punten. De parametrering van de curvetypes die gewoonlijk voor animatie worden gebruikt, komt niet overeen met de werkelijke afstand langs een curve.

Een manier om de snelheid van een object te regelen, is door de animator een extra afstand-tijdfunctie te geven on, wat aangeeft hoe ver een object op een bepaald moment langs de curve zou moeten zijn verplaatst. Snelheid-tijd of zelfs acceleratie-tijd functies zijn ook mogelijk. In ieder geval moet het animatieprogramma de lengte van de curve langs een animatiecurve intern omzetten in zijn parameterweergave. Er is geen analytische formule voor de meeste spline-types, dus benaderingsmethoden zoals de methode van Newton moeten worden gebruikt.

Het meest voorkomende snelheidsprofiel in animatie is gemak-in / gemak-out. Een object versnelt vanaf het startpunt, bereikt een maximale snelheid en vertraagt ​​vervolgens weer naar het eindpunt. Dit gedrag kan worden gemodelleerd door een segment van de sinusfunctie .

Rotaties

Naast verplaatsing is rotatie de enige transformatie die de vorm van een object behoudt; het speelt daarom een ​​grote rol in de animatie van starre lichamen. Er worden speciale methoden gebruikt om driedimensionale rotaties te interpoleren. Een eenvoudige manier om de rotatie van een object te specificeren, is door de hoeken van Euler te gebruiken . Bij het animeren van deze hoeken kan het probleem met de cardanische vergrendeling optreden. Dit effect treedt op wanneer een van de drie rotatieassen samenvalt met een andere, waardoor een vrijheidsgraad verloren gaat.

Om dit probleem te omzeilen, worden quaternionen in computeranimaties gebruikt om rotaties te formuleren. Quaternionen vormen een vierdimensionale ruimte waarvoor bewerkingen zoals optellen en vermenigvuldigen zijn gedefinieerd. Om een ​​punt te roteren, wordt het eerst weergegeven als een quaternion, de rotatie wordt toegepast in de quaternionruimte en vervolgens weer omgezet in de gebruikelijke cartesiaanse coördinaten . Opeenvolgende rotaties in quaternionenruimte komen overeen met producten van quaternionen. Rotaties worden meestal uitgedrukt door eenheidsquaternionen, die kunnen worden gezien als punten op een vierdimensionale eenheidsbol . De interpolatie op de vierdimensionale eenheidsbol wordt ook Slerp genoemd . Omdat het wiskundig zeer complex is, is interpolatie tussen quaternionen vaak alleen lineair. De tussenliggende stappen worden vervolgens genormaliseerd om ze terug te projecteren op de vierdimensionale eenheidsbol. Meer consistente resultaten kunnen worden verkregen door het De Casteljau-algoritme te gebruiken, zodat meerdere lineaire interpolaties worden uitgevoerd.

Als een object een bewegingspad moet volgen, wordt vaak verwacht dat het niet alleen zal worden verplaatst, maar ook dat zijn oriëntatie het pad zal volgen. De relatie tussen de oriëntatie van een object en de curve-eigenschappen kan worden uitgedrukt door de formules van Frenet . Er moet rekening worden gehouden met enkele bijzondere gevallen waarin de formules niet kunnen worden gebruikt, bijvoorbeeld bij kromme secties zonder kromming. Als de camera moet worden verplaatst, wordt vaak een middelpunt aangegeven, dat altijd in het midden van het beeld moet liggen. Het animatieprogramma verandert vervolgens de oriëntatie van de camera dienovereenkomstig.

Hiërarchische objecten

Stapsgewijze opbouw van een animatiescript voor de animatie van een been met behulp van directe kinematica

Objecten zijn vaak hiërarchisch gemodelleerd, zodat de randvoorwaarden met betrekking tot verbinding of relatieve plaatsing in een boomachtige structuur zijn georganiseerd. Een voorbeeld van een hiërarchisch model is een planetenstelsel waarin manen om planeten draaien en deze op hun beurt om de zon. Machineonderdelen of figuren zijn opgebouwd uit samenhangende objecten die met verschillende soorten verbindingen zoals schuif- en zwenkverbindingen met elkaar verbonden zijn. Dergelijke hiërarchisch gestructureerde objecten worden in het Engels Articulated Structures genoemd . In de computeranimatie van dergelijke modellen worden gedeeltelijk de kinematische technieken van robotica gebruikt . Deze technieken zijn echter niet voldoende voor karakteranimatie , aangezien karakters op een vrijere, complexere en bekwamere manier bewegen dan robots. Een andere reden is dat de gewrichten van dieren zelf vervormbaar zijn en daarom niet met de gebruikelijke methoden kunnen worden gemodelleerd.

Een directe, relatief arbeidsintensieve methode voor het animeren van kinematische ketens of verbonden structuren maakt gebruik van directe kinematica . Om een ​​bepaalde beweging te definiëren, begint de animator bij de wortel van de hiërarchie en gaat verder met de subknooppunten, waarbij het animatiescript elke keer wordt gewijzigd. Bij het animeren van een been wordt bijvoorbeeld de temporele verandering in de rotatie van het heupgewricht gespecificeerd, wat resulteert in een onhandige stap. Dan wordt het kniegewricht en tenslotte de enkel geanimeerd. Zelfs dit eenvoudige voorbeeld heeft problemen, zoals het verwaarlozen van de verticale verplaatsing van de heup tijdens beweging.

De inverse kinematica werkt op een hoger niveau. Hier wordt alleen de beweging van de eindpunten van een constructie handmatig gedefinieerd. De animatiesoftware berekent vervolgens automatisch het gedrag van de overige gewrichten om deze beweging uit te voeren. Hoe ingewikkelder een constructie, hoe moeilijker deze berekeningen worden. Een ander probleem met inverse kinematica is dat het de animator weinig speelruimte laat.

Voor de animatie van de dinosaurussen in de film Jurassic Park (1993) werd directe kinematica gebruikt, maar de bewegingssequenties werden stop-motion bepaald op basis van echte modellen met sensoren. Een andere mogelijkheid is motion capture , waarbij de bewegingen van een acteur met sensoren of markeringen op zijn lichaam worden vastgelegd. Er zijn ook puur synthetische modellen die virtuele botten en spieren gebruiken om realistische bewegingen te genereren.

Botsingsdetectie

Botsingsdetectie is een onmisbaar hulpmiddel wanneer meer dan één object moet worden geanimeerd. In een eerste stap worden de objecten die met elkaar botsen bepaald en in een tweede stap worden de exacte botsingspunten berekend. In zijn naïeve vorm heeft de botsingsdetectie een kwadratische looptijd, afhankelijk van het aantal beschouwde objecten. Het proces kan aanzienlijk worden versneld door objecten in begrenzingsvolumes te verpakken, waartussen een snellere test op overlap mogelijk is. Als de begrenzende volumes elkaar niet overlappen, doen de objecten die ze bevatten dat ook niet. Als dat het geval is, moeten de ingesloten objecten direct tegen elkaar worden getest. De lichamen die de objecten omsluiten kunnen ook hiërarchisch worden gestructureerd.

Een andere mogelijkheid voor versnelling is gebaseerd op de wetenschap dat het detecteren van botsingen met gelijke tijdsintervallen verspillend is. In plaats daarvan moet het worden uitgevoerd op tijdstippen waarvan de frequentieverdeling evenredig is met de kans op het optreden van botsingen. Een ander probleem is dat de botsingsdetectie kan beginnen op een moment waarop met name snel bewegende objecten elkaar al een beetje zijn binnengedrongen. Dit effect moet achteraf worden gecorrigeerd, bijvoorbeeld door het pad van de objecten langs het bewegingspad te herberekenen.

De botsingsdetectie kan voor verschillende toepassingen worden gebruikt, bijvoorbeeld om het pad van een object te berekenen en botsingen te vermijden. Fysiek kan een botsing worden omschreven als een elastische of plastische impact en kan de verdere beweging van de objecten dienovereenkomstig worden berekend.

Groepssimulatie

Deeltjessysteem voor het simuleren van een explosie

Om het gedrag van verschillende objecten met behulp van vast groep simulatie kan de animator gebruiken kunstmatige intelligentie technieken. Als resultaat plant en voert elk van de objecten de bewegingen uit die overeenkomen met een bepaald plan. Veel computerspellen gebruiken dergelijke autonome objecten om intelligente tegenstanders of bondgenoten van de speler te creëren. Het blijkt dat hoe groter de groep, hoe minder intelligent een enkel personage hoeft te zijn. Met honderden figuren, een zwermen gedrag ontstaat waarbij de beweging van elke figuur - hier vaak een Boid - beïnvloed op eenvoudige wijze met slechts enkele buren. Het vermijden van aanrijdingen is een van de gevolgen van dergelijk gedrag.

Deeltjessystemen zijn een veel eenvoudigere, maar nog steeds bruikbare techniek voor het besturen van groepen objecten. Het aantal gebruikte deeltjes, vaak erg klein, is meestal aanzienlijk groter dan bij zwermanimaties en kan oplopen tot vele duizenden. Het exacte aantal deeltjes kan ook fluctueren tijdens de animatie, omdat bij elke stap nieuwe deeltjes worden gemaakt en oude kunnen worden verwijderd. Dit is een van de redenen waarom b.v. B. Vloeistofsimulaties zoals RealFlow genereren een nieuw 3D-model voor elk te renderen beeld . De beweging van individuele deeltjes volgt vaak de wetten van de mechanica . De toepassingen van deeltjessystemen zijn onder meer de animatie van explosies, opspattende vloeistoffen, rook, vuur of fenomenen zonder vaste limiet. Om een ​​meer plausibel uiterlijk te garanderen, kunnen de beweging en andere parameters van de deeltjes willekeurig worden gewijzigd. Het gedrag van een deeltjessysteem wordt meestal bepaald door krachten in de ruimte te bepalen. Een deeltje kan bijvoorbeeld in een nieuwe richting worden "geblazen" zodra het een bepaalde locatie bereikt, aangetrokken door een "zwaartepunt" of de daadwerkelijk voltooide simulatie kan worden vervormd als een normaal 3D-model.

Met fysiek gebaseerde simulaties kunnen meestal veel realistischere animaties worden gegenereerd dan met deeltjessystemen. Voorbeelden zijn de animatie van vloeistoffen, vuur, rook of soepele doeken. Voor dit doel moeten de differentiaalvergelijkingen die deze verschijnselen beschrijven, worden opgelost met behulp van numerieke wiskunde .

Zie ook

Portal: Animatie - Overzicht van Wikipedia-inhoud over animatie

literatuur

  • Rick Parent: Computeranimatie: algoritmen en technieken. Morgan Kaufmann, Amsterdam 2008, ISBN 978-0-12-532000-9

web links

Commons : Categorie: Animaties - Verzameling van afbeeldingen, video's en audiobestanden
Opmerking: de talrijke geanimeerde afbeeldingen in deze categorie zorgen voor zeer lange laadtijden.

Individueel bewijs

  1. Bloop Animation Studios LLC: de 5 soorten animatie