Нажмите "Enter", чтобы перейти к содержанию

Hogyan készítsünk 2D animációt

Játék létrehozása a szemeden — 7. rész: 2d animációk az egységben («mint a Flashe»)

Ebben a cikkben beszélünk a 2D animációkról az egységben. Beszélni fogok a natív animációimmal dolgozó tapasztalataimról az egységben, hogy milyen időbélés hasonló a Flashevskie-hoz, az animációk, események, fészkelés, valamint a művész animációval történő kezeléséről.

Kezdeni, egy kis elméletet.

Az egységben két egység van:

1. Élénkség (Mi jelenik meg az animációs ablakban)
2. Mechanika Animációs fa (mi jelenik meg az animátor ablakban).

Az alábbiakban egy kicsit megmondom, hogy mi az, és hogyan lehet (vagy nem jönnek hasznos).

Élénkség

Szóval, animáció. Tény, hogy ez egy idővonal kulcskerékekkel. Itt mozoghat, forgathat, méretezheti az objektumokat. Természetesen görbéket rajzolhatsz, és élvezhetik a különböző iSyen-t. És még kezelni is (t.C. önellátott) tulajdonságaik. Ez az, hogy meglehetősen lehetséges egy komponenst írni az úszó közértékű «fényerő» és ez a nagyon «fényerő», hogy animáljon egy parfennen x, y, z rendszeres eszközökkel. A Sprite Támogatja a keret animációt.

By the way, annak ellenére, hogy minden egyes animációnak van egy fps («minta» mező), az animációk az fps nem kötődnek. Az időre vannak kötve. T.E. Ha 5 fps-vel az animációt készít, ahol az objektum az A pontról a B pontra mozog, a két kulcskeret feladata az elején és a végén, majd a játékban ez az objektum nem mozgatja az 5 fps-ot. Az animáció kiszámításra kerül a játék minden kereténél, és az animáció belsejében az FPS csak az Ön kényelme érdekében készült, így nem részese.

Animátor

Ez egy nagy és összetett rendszer, amely közvetlenül irányítja az animációkat. Ez az, hogy az animáció csak egy fájl (erőforrás) a kulcskeret beállításokkal, és nem tudja, hogyan. Ez az «animátor» összetevője — ez az, amit az animációk játszhatnak.

Ezenkívül létrehozhat egy ilyen animációk fát, melyek köztük vannak. T.E. Ha van egy karaktered, animált sokkokkal (ha a test minden része egy külön permet, amely elforgatja / mozog), akkor meglehetősen lehetséges, hogy a láb animációja külön-külön, a kezek animációja külön-külön. És akkor (az egérrel) állítsa a feltétellel, hogy a sebesség a mozgás a cél, Mechanim Animator magában vagy animáció láb „sétáló”, vagy a „Run”. És a karaktered lövése külön animáció lesz, amely nem kapcsolódik a lábak átrendeződésének sebességével.

Ugyanígy az animátor így fog kinézni:

Vagyis egy csak egyetlen animációt, és nincs csatlakozás / átmenet.

Kezdjük Shamamy-t.

Eddig minden érthető. De gondoljunk arra, hogyan kell csinálni valamit egy kicsit bonyolultabb?

Az én konkrét esetem — hóvihar van, ahol a nyúl ül. Maga a hóvihar:

Ezután egy ilyen animációt akarunk tenni:

1. Nyár, mozgó, balra mozog
2. A nyúl a hófúvásból néz ki (a ripple animáció megáll):

3. Egy hóvihar jobbra mozog

Elvben semmi sem bonyolult. Animize az objektumon belüli hófúvás ripple, a bal oldali animátorra mozogunk balra, majd elrejtjük, hanem azt mutatjuk, hogy a bámuló nyúl, majd vissza. És mindez az egyik idővonalon (kivéve a hófúvás «belső» animációját).

De ez a lehetőség nem szeretem a merevséget. Először is, tévedtem, hogy egy ilyen kiviteli alaknál a feltérképező nyúl keret animációja ugyanabban az idővonalon, mint a hófúvás mozgása. Ez azt jelenti, hogy ha meg akarjuk változtatni az animációt, ahol a hóvihar egy másik pályán mozog, újra animálni kell a nyúl. És ha később szeretnénk kijavítani ezt, akkor meg kell tennünk minden animációban, ahol használják.

Nagyobb rugalmasságot szeretnék.

Van egy másik lehetőség. Animáltuk a nyúl körül egy külön tárgyat (éppúgy, ahogyan egy hófúvás mozgásával), és leginkább az időnemű egyszerűen bekapcsolja ezt az objektumot (aktív) a megfelelő pillanatban, és az animáció kezdődik.

Már sokkal jobb, de még mindig nem tökéletes. Valójában ebben az esetben a fő idővonalunkban meg kell tudnunk, hogy milyen hosszúságú a pecsét animációja. A megfelelő időben engedélyezni és letiltani. És mi van, ha újra megváltoztatjuk ezt az animációt, és a nyúl hosszabb lesz az oldalán? És általában, bizonyos esetekben bonyolultabb, akkor még nehezebb számunkra, hogy illeszkedjen minden egy idővonalon.

Ideális, hogy a fő idővonal szünetét helyezze el, kezdje el a fektetett animációt lejátszani, és eltávolítja azt a szüneteltetési szünetekkel a beágyazott animáció vége után (vagy valamilyen eseményen).

Ez az, hogy ezt tegye:

1. Bal oldali mozgás
2. Elrejti a pulzáló hófúvást, mutassa meg az animációt, hogy megszálltunk a nyúlból, szüneteltetjük
3. elrejti a nyúl leereszkedésének animációját, mutassa meg a kápolnát Snowdrift-ot, jobbra mozogjon

Mire van szükségünk erre? Az egység lehetővé teszi, hogy hozzáadja az animációhoz, hogy hívja az egyéni felhasználók eseményeit. Ez pontosan az, amire szükségünk van! Csak azért marad, hogy mindent írjon.

Az első dolog, amire szükségünk van, hogy egy egyszerű komponenst írjunk (a mi esetünkben azt nevezik), és ugyanazon az objektumon, amelyen az animátor lóg. Ez a komponens módszerei, hogy képesek leszünk az idővonalon lévő eseményeket hívni.

Módszert írunk szünetre. By the way, nincs ilyen közvetlen lehetőség az egységben. Annak érdekében, hogy egy animációt szünetbe helyezzük, egy kis piszkos hackot általában 0 sebességgel alkalmazzák. Általában működik azonban, vannak furcsaságok (a cikk utolsó részében).

Hol van az a változó, amelyben eltöltöttük az összetevőt: «»:

Ha felhívta a figyelmet a fenti képernyőre, a kulcsfontosságú frakció felett, amelyet a «2» számot jelöltem egy kis függőleges tulajdonság. Mögötte van, hogy az eseményhívás (módszer) «szünet» el van rejtve:

Érdemes megjegyezni, hogy ilyen eseményekben még átadhatja a paramétert. String, úszó és objektum a könyvtárban támogatott (nem a jelenetből).

Ok, a szünetre helyeztük. Most a feladat a szünet eltávolítása. Nyilvánvaló, hogy beágyazott animációt kell tennie. Ez az, hogy befejezte a feltérképezési nyúl animációját a végéig, és felrobbantotta az eseményt «folytatta».

Ez a módszer keresése a szülők összetevője «», és eltávolítja azt szünetelettel. Ennek megfelelően ezt az eseményt a nyúlunk animációjának végéig helyeztük:

Nyereség!

Valójában minden. Egy egyszerű komponenst írtunk, amely lehetővé teszi a beágyazott / szülő animációk kezelését, és elegendő rugalmasságot biztosít. Szükség lehet egy másik típusú módszerre, amely egy adott animációt szünetelné, és nem az első szülői.

Ezenkívül mindent megtesz az UNITEVS UI-n belül, és teljesen átlátható minden animátor számára. Művészünk egy óra múlva az eszköz kezébe, már animált.

Az Unity Bugs és az őrületről.

Azonban nem minden olyan sima. Egyes ponton egy animáció létrehozása, láttuk, hogy rosszul viselkedik.

Volt egy szülői (otthoni) animáció, amely egy objektumot mutatott (elrejti az összes többiet), szünetben állt, ebben az időben ebben az objektumban elkezdte játszani a saját (beágyazott) animációt, amely eltávolította a szünetet a szünettől vége. Következő — a következő objektum és t.Ns.

Tehát észrevettük, hogy a keretek néha ugrik.

Hosszú ideig vitatottak, sokat írtak a naplónak … és ez az, amit rájöttek:

Úgy tűnik, az egységnek van néhány kerete / animációs eseménye. És amikor a számítógép (Unity szerkesztő) lelassul, akkor tegye két képkocka ebben verem egyszerre kell elvégezni őket mind a következő iterációban.

Ez szinte teljesen helytelen hibás. Megkaptuk a helyzetet, amikor az animátor elvégezte az összes műveletet a keretben, és felállt (ez rendben van), majd ugyanabban a keretbenelvégezte a következő keretet is. Azaz egy keret esetében egyszerre két animáció keretet számítottam ki. És az a tény, hogy az 1. keretben volt olyan esemény, amely a sebesség animáció 0 nem akadályozta meg abban, kiszámolja a következő keret, amely, úgy tűnik, már feküdt a verem.

És ha senki sem veszi észre senkit az animációban egy nyúltal (a nyúl nem a pixelbe kerülne a helyen), amikor minden kép valami rejtőzködik és megmutatja, lehet, hogy sikertelen lehet.

Jelenleg a probléma nem megfelelőnek tűnik. Hogyan zakadtunk? Támogatott FPS ilyen animációkat, látszólag egy ilyen FPS-ben, amikor az UNITI két keretet kíván kiszámítani egy iterációban — ez nem történik meg.

De mégis, a helyzet nem túl. Kiderül, hogy a számítógépen (vagy nagyon fékezésen), a játékos továbbra is látni fogja az animációs hibát.

Mi a teendő vele, nem világos.

Minden cikk sorozat:

  1. Ötlet, vivita, beállítási, platform, elosztási modellek és t.Ns
  2. Shaders for stylizing képek az ELT / LCD alatt
  3. Végezze el a szkriptnyelvet az Unilua-hoz
  4. Shader elhalványul a paletta (a la nes)
  5. Középső eredmény (prototípus)
  6. Beszéljünk az indo játékok Piara-ról
  7. 2d animációk az egységben («mint a flashe»)
  8. Visual Scripting Cat-jelenetek az egységben (Uscript)

Комментарии закрыты, но обратные ссылки и pingbacks ещё работают.