Snabb basix Slumpmässig animerad blinkning

Även när du animerar på tidslinjen kan en touch av ActionScript förbättra vad du gör. I denna Snabba Tips ska vi använda en enda rad AS3 för att lägga till animerad realism på ett ögonblick!


Steg 1: Öppna dina ögon

Ta tag i källfilerna och öppna "basis.fla". På scenen hittar du filmklippet "head", som består av två skikt som innehåller filmklippen "ansikte" och "ögon".

Självklart, om du vill börja från början, med egen grafik, är du välkommen att göra det?


Steg 2: Ögonen har det

Vi kommer att få ögonen att blinka regelbundet, så börja med att dubbelklicka på "ögonen" filmklipp för att ange sin tidslinje.


Steg 3: Blinkered View

Förläng tidslinjen genom att lägga till en nyckelram vid bild 80 på "ögon" -skiktet. Det är här vi ska placera ögonen i deras "blinkade" tillstånd.

Ta bort de öppna ögonen från scenen och rikta uppmärksamheten på biblioteket. Där hittar du "eyesClosed" som du kan placera på scen där "eyesOpen" filmklippet tidigare var.

Med dina eyesClosed valt, tryck F5 för att lägga till några fler ramar. Lägg till så många som du vill Om du gör det ökar tiden din karaktärs ögon spenderar stängd under en viss blinkning. 3 ramar är bra i vårt fall.

Testa din film (Command / Ctrl + Enter) för att få en bild av den blinkande effekten du har skapat.

Spelhuvudet rör sig längs tidslinjen och orsakar periodisk blinkning. Perfekt! Höger? Tja, inte exakt. Den enhetliga blinkningen föreslår att vår karaktär antingen är en robot eller saknar hans frontal lobe.


Steg 4: Randomeyes

Låt oss förbättra effekten genom att randomisera blinkningen.

Lägg till ett andra lager till filmklippet "eyes", märk det "actions" och lås det. Välj den första ramen och ange följande kod i åtgärdspanelen (Fönster> Åtgärder):

 gotoAndPlay (uint (Math.random () * totalframes) 1);

Steg 5: Ögonundersökning

Vad gör det här snippet faktiskt? Jo, det gotoAndPlay (); åtgärd skickar spelhuvudet längs den aktuella tidslinjen, beroende på vilket ramnummer vi definierar inom axlarna. Innehållet inom våra hängslen ger oss vårt ramnummer.

De Math.random () Metoden kommer att returnera ett tal mellan 0 och (men inte inkluderat) 1. Detta multipliceras med totalframes, en egenskap av vår filmklipp - mängden ramar inom den (i vårt fall 83). uint () neats upp resultatet av vårt slumpmässigt antal * totalFrames, genom att runda ner och ge oss ett heltal.

Det lägsta heltalet vi kan förvänta oss är 0, eftersom uint (0 * 83) är 0.

Det högsta heltalet vi kan hoppas på är 82, sedan uint (0.9999999999 * 83) är 82.

Därför, vi +1 för att avsluta saker, vilket ger oss en destinationsram någonstans mellan 1 och 83.

När spelhuvudet når slutet av vår tidslinje, återgår det till bild 1 och skickas återigen till en slumpmässig ram.

Kontrollera filmen igen!

Vår karaktär blinkar fortfarande, men nu med oregelbundna intervaller, som ser väldigt mindre lobotomised ut.

Effekten blir ännu tydligare med två instanser av vår karaktär på scenen. I exemplet nedan har vi två olika tecken, men båda använder sig av exakt samma "ögon" filmklipp:

Jag säger inte att dessa två ser ut som om de har det helt tillsammans, men du får idén?


Förbättrad syn

Detta är ett riktigt enkelt slutresultat, varför inte se om du kan förbättra den?

  • Ha en lek med tidpunkten; ändra framerat och antal ramar inom din blinkande film.
  • Varför inte försöka ändra snippet för att förhindra att spelhuvudet hoppar till inom den blinkande åtgärden själv?
  • Kanske kan du till och med förhindra att animeringen blinkar för snabbt i följd?

Slutsats

Du är klar! Detta är en rakt framåt och vanlig teknik, men det går att flytta spelhuvudet till slumpmässiga ramar i tusentals situationer. Jag hoppas att du hittar användningen för det :)