gentagelse af en aktiv camouflage virkning med flash

replikate aktivt camouflage virkning med flash,,,,, andel,,,,,,,,,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss.,, aktive kamuflage er en sci - fi - koncept, som regel i form af et jakkesæt, der gør det muligt for brugeren at blive næsten usynlig.det kan ses i film som rovdyr og dø en dag, og spil som halo og crysis.,,, det pædagogiske viser, hvordan man opnår en sådan virkning i flash driver en forskydning af filtreres ved hjælp af en sekvens af bitmaps.ikke blot er den virkning, cool, men denne teknik er sjældent set i online tutorials.,, endelige resultat forpremiere, lad os tage et kig på det endelige resultat, vi arbejder hen imod:,, trin 1: forskydning kortlægning i glimt, forskydning kortlægning er en konsistens, kort, der anvendes til at graduere forskydning styrke.forskydning betyder bogstaveligt talt flyttet pixels i en overflade af sted.i de fleste af 3d - ansøgninger, det er fordrevne langs overfladen normalt.i adobe flash, den forskydning, der sker i 2d - rum, langs x - og y - koordinater på et billede., forskydning filtre i flash normalt er opildnet af dynamisk skiftende intensitet (scalex, og scaley parametre), ændrer den holdning af forskydningen bitmap (mappoint parameter) eller ved at manipulere farven kanaler.denne lektion vil yderligere forklaring af disse teknikker, men vi vil også undersøge en anden, som anvender en bitmap rækkefølge at udarbejde en ny fordrivelse kort på hvert billede.,, f.eks. af forskydning på overfladen normalt.,, f.eks. af fordrivelse kortlægning i glimt, langs x - og y - akse.,,, trin 2: flash dokument, åbne et nyt dokument, flash og oprette den størrelse, 550x368, så det passer til vores baggrund image.sæt den billedhastighed, der til 48fps.forskydningen filter er faktisk kommer til at løbe på 12fps, - - men hvis du vil have yderligere animation senere, det ville se bedre på 48fps.,, klik fil > offentliggøre indstillinger > actionscript 3,0 indstillinger og sluk "auto erklærer fase tilfælde".,, trin 3: import baggrund, import rainforest.jpg på scenen.,, tryk ctrl + k at tilpasse og matche lærred størrelse.dette vil være vores baggrund image.,, nu med det billede, der vælges, presse f8 til at konvertere det til et symbol.vælg "film magasin" i type menu.,, hvis egenskaber vindue er lukket, tryk ctrl + f3 til at åbne den.vi skal klippe den navn filmen var skabt.for eksempel navn, type "bkgd_mc".,, trin 4: import af bitmap sekvens, tryk ctrl + f8 for at skabe en ny film magasin helt.vi er ikke at nævne det endnu.først skal vi importere bitmap sekvens i denne film magasin.gå til fil > import > import til scenen.vælg det første billede af den rækkefølge, der hedder "pred0001.jpg".flash, vil spørge, hvis du ønsker at importere alle billeder i denne rækkefølge.klik ja.,, løntrin 5: omdanne bitmap sekvens, vil de bemærke, at hver bitmap er placeret på en keyframe langs den film magasin tidslinje.begynder den ramme 1, udvælge image og presse f8 skjult det for film magasin.gør dette på hver frame indtil udgangen af den sekvens.er det i orden, fra først til sidst, og sørge for, du ikke springe nogen billeder, ellers vil det ødelægge animation.,, når du er færdig, hver enkelt central ramme bør have en film magasin, der indeholder en ramme for karakter er ansigt.vælg ramme igen og presse ind at se tegnefilm, trin 6: fordele for lag, udvælger film videoklip billede 1.højreklik og distribuere æglæggere.gør det igen, at alle film clips på alle billeder.når du er færdig, vil du ikke længere være i stand til at se tegnefilm, kun billedet på toppen.,, trin 7: trække filmen magasin til scenen, tryk ctrl + l at åbne det bibliotek, og slæber "symbolet 2" på scenen.i dette tilfælde "displ_mc egenskaber regning navn".denne film magasin, vil blive anvendt i vores forskydning filter.,, trin 8: skabe dokument klasse, vi kommer til at skrive for vores forskydning kort filter i et dokument klasse fil.skabe en ny actionscript fil og det navnet pred_as3 ".- pasta denne kode:, pakke (import flash.display.movieclip; import flash.display.bitmapdata; import flash.display.ibitmapdrawable; import flash.display.bitmapdatachannel; import flash.filters.displacementmapfilter; import flash.filters.displacementmapfiltermode; import flash.geom.point; import flash.events.event; offentlige klasse pred_as3 udvider movieclip {}}, gå tilbage til flash - nummer og navn klasse pred_as3.,, som du kan se, har vi allerede har indført alle de klasser, som vi skal have i denne forelæsning, lad os fortsætte skriftligt dokument klasse.tilføje denne kode til det: private var clipcont = nye array(); //alle levende billeder vil blive opbevaret i så mange private var tæller: antal; //del af enterframe loop siger som referenceramme, animation, vil blive vist private var timer: uint = 0; //sæt hastigheden af informationstiltag offentlige var displ_mc: movieclip; offentlige var bkgd_mc: movieclip, fastslår vi et par variabler, der vil blive anvendt på et senere tidspunkt.de skal være anmeldt inden den pågældende klasse, hvis de skal anvendes af mere end én funktion i dokumentet klasse.,, trin 9: skabe forskydning filter, lige under den sidste linje, vi begynder at skrive de parametre, og producenten af forskydningen kort filter. private var strength1: int = 120; //værdien af scalex og scaley - fastsætter intensiteten af den forskydning filter private var mapbitmap: bitmapdata = nye bitmapdata (320240); //størrelsen af forskydningen kort i antal pixels private var mappoint: punkt = det nye punkt (0,0); //den forskydning bitmap private var componentx = bitmapdatachannel - green; //hvilken farve kanal anvendes, betyder ikke noget, da det er i grå nuancer og private var komponenty = bitmapdatachannel.green; private var spe: int = 1; //ændringer styrken af forskydningen filter //alle variabler anvendes derefter til et nyt filter private var filter: displacementmapfilter = nye displacementmapfilter (mapbitmap, mappoint, componentx, componenty, scalex, scaley); private var filterlist = nye array(); //en filter liste array., så vi har fastlagt parametre for styrke, størrelse, placering og rbg kanal.lad os se på hver enkelt af disse parametre..,, trin 10: forskydning styrke, som tidligere nævnt, forskydning i glimt er kun mulig med x - og y - akse.de parametre, der fastlægger forskydning styrke for x - og y - er, scalex, og scaley hhv.i denne forelæsning, vi skal anvende den samme styrke på både x - og y - akse, så vi bruger samme variabel strength1 for begge parametre.nedenfor er et eksempel på en forskydning i den vandrette akse, med scaley sat til nul (venstre image), og den lodrette akse med scalex sat til nul (til højre).,,, trin 11: størrelse af den forskydning, kort, hvor størrelsen er fastsat til 320x240.vi ved allerede, størrelsen af de bitmaps i informations - og entreprenøren skal have samme størrelse som dem.hvis værdien i den pågældende er større end den bitmaps, vil der være forskydning i områder, hvor det ikke vil ske.den󅒐 gråt omkring karakter er hoved er en neutral farve, på den anden side er et område, som er tomme, eller en gennemsigtig bitmap faktisk ville fortrænge baggrund image.,, f.eks. af den værdi, der er fastsat i den pågældende var større end de faktiske forskydning kort: den tomme områder fortrænger den baggrund.,, trin 12: rgb - kanal, fordrivelse filter kun bruger et af de 3 rgb kanaler på en bitmap for hver akse.ved anvendelse af en farvet bitmap som en forskydning kort hver kanal vil give forskellige resultater, som vist i nedenstående eksempel.i denne forelæsning bruger vi et billede i grå nuancer, så den kanal, er irrelevant.componentx og componenty er fastsat til grøn, men den samme virkning kan opnås ved hjælp af den røde eller blå kanaler.,, de forskellige resultater, der er opnået ved hjælp af et grønt gennemgangssted, røde eller blå kanal kanal.,, trin 13: mappoint, parameter mappoint fastsætter den forskydning kort.den holdning er i forhold til det formål, som det er anvendt til, og ikke på scenen.ved fastsættelsen af den holdning, at (0,0) forskydning kort forekommer i øverste venstre hjørne af vores baggrund image, som ikke altid sammenfaldende med den øverste venstre hjørne i den fase, som vist nedenfor.,, mappoint parameter er i forhold til formålet, ikke scenen.,, trin 14: anvendelse af filter lad os anvende forskydning, filter til vores baggrund billede "displ_mc".forskydningen filter er skubbet ind i en bred vifte af filtre, og vi gør det i klassen konstruktøren.vi er også, at vores to største film clips på scenen med addchild metode.i as3 klasse konstruktøren er den første opgave skal udføres i et dokument, klasse, og det hedder automatisk, så er det bedre, at de funktioner, eller metoder, der skal gennemføres ved lastning, kaldes i klasse konstruktøren.offentlige funktion pred_as3() {addchild (displ_mc); addchild (bkgd_mc); //add begge film. eksempler på scenen filterlist. tryk (filter); //add forskydningen kort filter til nettet.bkgd_mc.filters = filterlist; //gælder den vifte af filtre til target - film magasin.storeclips();}, sidste linje kode kalder en funktion, der er ikke skrevet endnu.som navnet antyder denne funktion vil opbevare alle animerede film magasiner i et system.så lad os gå videre og skrive det nu. gå 15: butik informationstiltag i et system, så vi har skabt en forskydning kort filter og anvender den til filmen magasin, men vi har ikke tilføjet bitmaps til filteret endnu.vi vil gøre det i to trin: først skal vi opbevare informationstiltag i et system, og senere vil vi tilføje denne informationskampagne til filter. privat funktion storeclips(): tomrum //butikker informationstiltag i et system {tæller = displ_mc. numchildren; //det samlede antal movieclips i displ_mc for (var - jeg: int = 0. jeg < displ_mc.numchildren; jeg + +) //finder alle movieclips i displ_mc {clipcont. tryk (displ_mc. getchildat (i)); //stel skubbes ind i clipcont system), denne funktion anvender, for at scanne alle de film du loop i displ_mc.vi ønsker, at de animation rammer blev ændret til film, clips tidligere i denne forelæsning.kan du huske, da jeg sagde, at konvertere dem billede for billede?vi gjorde det, så de billeder kan sorteres ordentligt og senere adgang til ved hjælp af getchildat() metode.da vi ikke nævner nogen af disse tilfælde, flash former dem internt med henblik på skabelse.hvis bitmaps tilfældigt omregnet til film, clips, animation ville aldrig spille rigtigt.så rammer, kan nu gå i clipcont system, en efter en.koden så vidt burde se sådan, pakke (import flash.display.movieclip; import flash.display.bitmapdata; import flash.display.ibitmapdrawable; import flash.display.bitmapdatachannel; import flash.filters.displacementmapfilter; import flash.filters.displacementmapfiltermode; import flash.geom.point; import flash.events.event; offentlige klasse pred_as3 udvider movieclip (private var clipcont = nye array(); //alle levende billeder er oplagret i dette system med private var.: antal; //del af enterframe loop siger som referenceramme, animation bliver vist private var timer: uint = 0, offentlige var displ_mc: movieclip; offentlige var bkgd_mc: movieclip; private var strength1: int = 120; //fastsætter inden for vidensintensiveudtalelse af forskydningen filter private var mapbitmap: bitmapdata = nye bitmapdata (320240); //størrelsen af forskydningen kort i antal pixels private var mappoint: punkt = det nye punkt (0,0); //den forskydning bitmap private var componentx = bitmapdatachannel. green; //hvilken farve kanal anvendes; det ikke noget, da det er i grå nuancer og private var componenty = bitmapdatachannel.green; private var spe: int = 1; //alle variabler anvendes derefter til et nyt filter private var filter: displacementmapfilter = nye displacementmapfilter (mapbitmap, mappoint, componentx, componenty, scalex, scaley); private var filterlist = nye array(); //et filter liste system.//klasse konstruktøren offentlig funktion pred_as3() {addchild (displ_mc); addchild (bkgd_mc); //add begge film. eksempler på scenen storeclips(); filterlist. tryk (filter); //add forskydningen filter til nettet.bkgd_mc.filters = filterlist; //gælder det sæt af filtre til target - film magasin.} privat funktion storeclips(): tomrum //butikker informationstiltag i et system {tæller = displ_mc. numchildren; //det samlede antal movieclips i displ_mc for (var - jeg: int = 0. jeg < displ_mc.numchildren; jeg + +) //finder alle movieclips i displ_mc {clipcont. tryk (displ_mc. getchildat (i)); //stel skubbes ind i clipcont array}}}}, trin 16: stadig forskydning filter, nu, hvor vi har animation klar til brug, lad os sige det til forskydning filter.vi kommer til at få adgang til clipcont system med et "tidsindstillede" loop ved, event.enter_frame, klasse.hver 4. stel, en ny bitmap i systemet er tilgængelige, og derefter anvendes til filtreres ved hjælp af draw() metode.efter det sidste billede i clipcont er trukket, loop begynder forfra, og den første ramme i clipcont trækkes.det er et uendeligt loop.privat funktion livfulde e: begivenhed) (filter.scalex = strength1; //fastsættes værdien af scaley og scalex filter.scaley = strength1; hvis (timer > 3) //en ny ramme er der hver 4. stel (hvis (tæller < = 0) (tæller = clipcont. længde; ////////om fastsættelse af en sløjfe} regne - og timer = 0} hvis (clipcont [er]) (filter. mapbitmap. træk (clipcont [er]); //en række informationstiltag er trukket} bkgd_mc.filters = filterlist; //opdateringer filteret}, ovennævnte retningslinjer til din actionscript fil.lad os gøre det her løb ved at tilføje en begivenhed til at lytte til den klasse, konstruktøren. offentlige funktion pred_as3() {addchild (displ_mc); addchild (bkgd_mc); //add begge film. eksempler på scenen filterlist. tryk (filter); //add forskydningen kort filter til nettet.bkgd_mc.filters = filterlist; //gælder det sæt af filtre til target - film magasin.storeclips(); addeventlistener (event.enter_frame, livfulde); //kalder den livfulde funktion på træde frame), ajourføre klasse konstruktøren med, addeventlistener metode.nu den livfulde funktion er blevet tilføjet til fase og opfordres til hvert billede.test af virkning på ctrl + ind.du skulle se den livlige ansigt på den øverste venstre hjørne i din film, skridt 17: gøre det med mus, vi har en informationskampagne loop løbe i hjørnet af filmen.lad os få den forskydning, kort efter den mus, på denne måde vil være i stand til at se, hvordan den aktive camouflage virkning ud over de forskellige dele af baggrunden.pasta i manipulerer funktion: denne post, privat funktion livfulde e: begivenhed) (filter.scaley = strength1; //fastsættes værdien af scaley og scalex filter.scalex = strength1; timer +; hvis (timer > 3) //en ny ramme er der hver 4. stel (hvis (tæller < = 0) (tæller = clipcont. længde; //at en sløjfe} regne - og timer = 0} hvis (clipcont [er]) (filter. mapbitmap. træk (clipcont [er]); //en række informationstiltag er trukket} filter.mappoint = det nye punkt (mousex-160, mousey-240); //deplacement kort følger mus bkgd_mc.filters = filterlist;}, på denne måde vi ajourføre forskydning kort position på en træde ramme på grundlag af de mousex og mousey properte.tryk ctrl + træde til at teste det.hovedet skal følge den mus.,, gå 18: ændre filter styrke i de sidste skridt af denne forelæsning, vi skal lege lidt med styrken af vores filter, øger værdien af scalex og scaley parametre over en periode, så falder tilbage til den oprindelige værdi.det, vi forsøger at opnå med denne er at få virkning se mere dynamisk og...synlige.mens hele spørgsmålet om en camouflage i det virkelige liv, bør være at gøre det mindre synlige, hvad vi forsøger at gøre her, er at få det til at se cool ud.lad os stille liv, så du kan forstå, hvad jeg taler om.i den livfulde funktion, at erstatte den linje, filter. mapbitmap. træk (clipcont [er]); med denne budgetpost i stedet:, filter. mapbitmap. træk (clipcont [20]), i stedet for at drage den informationskampagne, vi fortæller flash at drage samme stikprøvebasis, igen og igen.tryk ctrl + træde til at teste det.,,, ser helt statiske og kedeligt.lad os give det lidt bevægelse.pasta koden nedenfor i manipulerer funktion:, privat funktion livfulde e: begivenhed) (filter.scaley = strength1; //opdateringer værdien af scaley og scalex filter.scalex = strength1; timer +; hvis (timer > 3) //en ny ramme er der hver 4. stel (hvis (tæller < = 0) (tæller = clipcont. længde; //at en sløjfe} regne - og timer = 0} hvis (clipcont [er]) (filter. mapbitmap. træk (clipcont [20]); //en række informationstiltag er trukket} filter.mappoint = det nye punkt (mousex-160, mousey-240); //deplacement kort følger mus hvis (filter.scalex > 220



Previous:
Next Page: