I dagens Quick-tip vil jeg gerne forklare nogle metoder til sprite- animation med jer - med sprite- animation mener jeg det, der gør det muligt for os at animere med flere enkeltbilleder. I eksemplet har jeg lavet en smiley med to åbne øjne og nogle mundbevægelser.
Det hele er opdelt i flere lag: Mens hoved- og øjenlagene er synlige hele tiden, er mundlagene opdelt, så de nemt kan udskiftes. Samlet set varer sammensætningen 7 frames, hvor en ny mundbevægelse vises ved hvert frame.
Vi kan nu indlæse smiley-sammensætningen i en ny sammensætning og ved at højreklikke på sammensætningen>tidsplanlægning kan vi planlægge vores animation, så en bestemt mundlag vises på et bestemt tidspunkt i smiley-sammensætningen.
Derudover kan vi nu forlænge smiley-sammensætningen efter behov - i eksemplet forlænger jeg den nye sammensætning til 20 sekunder.
Vi kan nu aktivere stopuret ved startbevægelsen af munden og vælge det ønskede frame.
Når vi bevæger os videre med tidsmarkøren, har vi mulighed for at vælge flere mundbevægelser ved blot at oprette en ny keyframe og justere tiden for s-sammensætningen.
I eksemplet får vores smiley at se trist ud først, derefter taler den og bliver til sidst glad. Vi kunne nu duplicere smiley-sammensætningen flere gange, og animationen vil blive kopieret.
Vi kan allerede animere rigtig godt med dette, men desværre har vi ikke så mange muligheder med tidsforvrængningsmetoden. En anden metode til dette ville være udtryksløsningen - dog kan vi ikke bruge smiley-sammensætningen flere gange, som det er muligt med tidsforvrængningsmetoden.
Jeg kopierer nu smiley-sammenføjningen og kalder den sammensætningen "Expression". Derefter markerer jeg alle lagene af s-sammensætningen, går til starten med tidsmarkøren og trykker på Alt+Ø og går derefter til slutningen af animationen og klikker Alt+Æ, for at forlænge alt.
Nu opretter vi en sammensætning 3 og indsætter "Expression" sammensætningen der. Til min expression vil jeg nu oprette en skyder til mundelementer, og det opnår jeg ved Effektindstillinger>Indstillinger for udtryk>Indstillinger for skyder. Jeg låser den for nu ...
... og nu indtaster jeg følgende for Gennemsigtighed i hvert mundobjekt i expressionen:
sld = Math.floorFORBIND HER VENLIGST TIL OPRETTET SKYDEREGLER;
if(sdl == index) {
100
}else{
0
}
Ved at højreklikke på skyderens værdi kan vi angive den sidste værdi til 7 (til 7 forskellige mundbevægelser).
Når vi nu flytter skyderen, kan vi se, hvordan mundbevægelserne ændres - derudover er det nu meget lettere at registrere den rigtige værdi.
Fordelen ved denne metode er, at det er meget lettere at kombinere flere elementer. Så vi kan f.eks. oprette en ændret expression for øjnene og få dem til at blinke f.eks.
sld = Math.floorFORBIND HER VENLIGST TIL ØJENSKYDEREGLER+8;
if(sdl == index) {
100
}else{
0
}
Hvis vi kun vil animere fra 0-1 med skyderen (0 for åbne øjne, 1 for lukkede øjne), kan vi tilføje 8 efter kilden med +8.
Og så kan vi let styre expressionerne med stopuret og animere smileyen. Et expressionsystem er mere omfattende, men også meget mere fleksibelt, når det kommer til animation.
Den eneste ulempe er, at vi skal have en lige så lang expressionssammensætning som slutningen af sammensætningen, så det fungerer korrekt til slut.