Quick Basix Tilfeldig animert blinking

Selv når du animerer på tidslinjen, kan et snev av ActionScript forbedre hva du gjør. I denne Quick Tip skal vi bruke en enkelt linje av AS3 for å legge til animert realisme i et øyeblikk!


Trinn 1: Åpne øynene dine

Ta tak i kildefilene og åpne "basis.fla". På scenen finner du filmen "Head", som består av to lag som inneholder filmklippene "ansikt" og "øyne".

Selvfølgelig, hvis du vil starte fra bunnen av, bruker du din egen grafikk, er du velkommen til å gjøre det?


Trinn 2: Øynene har det

Vi skal få øynene til å blinke regelmessig, så begynn med å dobbeltklikke på "øynene" filmklipp for å angi tidslinjen.


Trinn 3: Blinkered View

Lengre tidslinjen ved å legge til en keyframe ved rammen 80 på "øynene" laget. Det er her vi skal legge øynene i deres "blinket" tilstand.

Slett de åpne øynene fra scenen og vær oppmerksom på biblioteket. Der inne finner du "eyesClosed" som du kan plassere på scenen der "eyesOpen" filmklippet tidligere var.

Med øynene Lukket valgt, trykk F5 for å legge til noen flere rammer. Legg til så mange du vil å gjøre det, vil øke tiden din karakter øyne tilbringer lukket under en gitt blink. 3 rammer er fine i vårt tilfelle.

Test filmen (Command / Ctrl + Enter) for å få en ide om blinkende effekten du har opprettet.

Playhead beveger seg langs tidslinjen som forårsaker periodisk blinking. Perfekt! Ikke sant? Vel ikke akkurat. Den ensartede blinkingen antyder at vår karakter er enten en robot eller mangler hans frontal lobe.


Trinn 4: Randomeyes

La oss forbedre effekten ved å randomisere blinkingen.

Legg til et andre lag til "øynene" filmklipp, merk det "handlinger" og lås det. Velg den første rammen og skriv inn følgende kode i handlingspanelet (Vindu> Handlinger):

 gotoAndPlay (UINT (Math.random () * totalFrames) 1);

Trinn 5: Øyeundersøkelse

Hva gjør denne utklippet faktisk? Vel, den gotoAndPlay (); handling sender spillerhode langs den aktuelle tidslinjen, til hvilket rammenummer vi definerer innenfor bøylene. Innholdet i våre braces vil gi oss vårt rammenummer.

De Math.random () Metoden vil returnere et tall mellom 0 og (men ikke inkludert) 1. Dette multipliseres med totalFrames, en egenskap av vår filmklipp - mengden rammer innenfor den (i vårt tilfelle 83). UINT () neats opp resultatet av vår tilfeldig tall * totalFrames, ved å avrunde og gi oss et heltall.

Det laveste heltallet vi kan forvente er 0, siden uint (0 * 83) er 0.

Det høyeste heltallet vi kan håpe på er 82, siden uint (0.9999999999 * 83) er 82.

Derfor, vi +1 for å fullføre ting, og gi oss en destinasjonsramme et sted mellom 1 og 83.

Når avspillingshode når slutten av vår tidslinje, går det tilbake til ramme 1 og sendes en gang til en tilfeldig ramme.

Sjekk filmen igjen!

Vår karakter blinker fortsatt, men nå med uregelmessige intervaller, som ser langt mindre ut av lobotomised.

Effekten blir enda tydeligere med to forekomster av vår karakter på scenen. I eksemplet nedenfor har vi to forskjellige tegn, men begge bruker nøyaktig den samme "øynene" filmklippet:

Jeg sier ikke at disse to ser ut som de har det helt sammen, men du får ideen?


Forbedret øye

Dette er et veldig enkelt sluttresultat, hvorfor ikke se om du kan forbedre den?

  • Ha en lek med timingen; endre framerat og antall rammer i blinkende film.
  • Hvorfor ikke prøve å endre kodestykket for å hindre at spillhodet hopper til innenfor selve blinkende handlingen?
  • Kanskje du kan til og med forhindre at animasjonen blinker for fort i rekkefølge?

Konklusjon

Du er ferdig! Dette er en rett frem og vanlig teknikk, men å flytte avspillingshode til tilfeldige rammer kan brukes i tusenvis av situasjoner. Jeg håper du finner bruk for det :)