This shows you the differences between two versions of the page.
pjv:laboratoare:2023:04 [2023/10/23 09:53] alexandru.gradinaru |
pjv:laboratoare:2023:04 [2024/10/07 10:48] (current) alexandru.gradinaru |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ===== Sisteme de animatie ===== | + | ===== 4. Sisteme de animatie ===== |
==== Cerinte ===== | ==== Cerinte ===== | ||
- | TBU | + | Sa se realizeze un sistem de interfata grafica pentru urmatoarele evenimente: |
+ | - o animatie de loading la pornirea scenei/la schimbarea scenei, care sa dureze cel putin 1s | ||
+ | - o animatie de MultiKill/Achievement, atunci cand o valoare de prag 5 este depasita se afiseaza Starea 1 (animatia 1), iar atunci cand este depasita valoarea de prag 10, se intra in Starea 2 (animatia 2). Pentru gestiunea starilor se va folosi Animator Controller, iar pentru setarea valorilor de prag se va folosi un script C#. | ||
- | ==== Documentatie video ===== | + | Cele 2 animatii trebuie sa fie realizate prin metode diferite de animatie 2D. |
- | TBU | + | |
- | + | ||
- | + | ||
- | ==== Documentatie extinsa text ===== | + | |
- | TBU | + | |
- | + | ||
- | + | ||
- | ===== Programarea animatiilor ===== | + | |
- | + | ||
- | ==== Cerinte ===== | + | |
- | + | ||
- | <note important>Puteti porni de la scenele create in Lab 1</note> | + | |
- | + | ||
- | <note tip>Resurse folosite: | + | |
- | * [[https://assetstore.unity.com/packages/3d/environments/fantasy/fantasy-forest-environment-free-demo-35361|Fantasy Forest Environment - Free Demo]] | + | |
- | </note> | + | |
- | + | ||
- | Realizati o scena de joc similara cu un joc de Duck Hunt 3D | + | |
- | + | ||
- | - Mediul: | + | |
- | - un teren simplu si ceva vegetatie | + | |
- | - Playerul: | + | |
- | - este reprezentat de o camera statica in scena (e suficient sa aveti doar camera, nu exista miscare din partea jucatorului) | + | |
- | - are posiblitatea de a trage inspre inamici in 2 moduri: | + | |
- | - left click: lanseaza un proiectil fizic care mere inspre directia une a fost apasat click (cu anumite reguli: fie are o durata de viata, fie pana a nimerit ceva, fie adaugati o forta combinata cu reguli de distrugere etc.) | + | |
- | - right click: damage instant - se realizeaza cu un raycast dinspre camera spre inamic si atinge instant locul in care a fost apasat click | + | |
- | - Inamicii: | + | |
- | - exista inamici 3D animati care se deplaseaza inspre camera incotinuu | + | |
- | - inamicii se instantiaza (spawneaza) incontinuu (puteti pune anumite reguli - de ex sa fie max 5 in scena la un moment dat) intr-o zona din scena care sa fie vizibila de catre camera) | + | |
- | - inamicii au comportament fizic (coloziuni, sunt afectati de gravitatie etc.) | + | |
- | - inamicii au 2 animatii posibile: run si hit (alergat, si o animatie pentru cand au fost doborati/atinsi) | + | |
- | - inamicii sunt distrusi in momentul in care i-a nimerit playerul (cu o animatie scurta, apoi dispar din scena) | + | |
- | - inamicii se misca incontinuu spre player (camera) | + | |
- | - GUI: | + | |
- | - In momentul in care au fost doborati 5 inamici, apare in mijlocul ecranului o imagine 2D animata | + | |
- | - In momentul in care au fost doborati 10 inamici, apare in mijlocul ecranului o alta imagine 2D animata print-o metoda diferita fata de cea afisata la 5 inamici doborati | + | |
==== Documentatie video ===== | ==== Documentatie video ===== | ||
+ | Inregistrare pe MS Teams | ||
- | |||
- | <html><br></html> | ||
==== Documentatie extinsa text ===== | ==== Documentatie extinsa text ===== | ||
- | |||
- | |||
- | <html><br></html> | ||
- | ==== Sumar documentatie ===== | ||
==== Animatii 2D in Unity ==== | ==== Animatii 2D in Unity ==== | ||
Line 85: | Line 46: | ||
* jump = 38 - 48 | * jump = 38 - 48 | ||
{{ :pjv:laboratoare:managingstates13.jpg?direct&300 |}} | {{ :pjv:laboratoare:managingstates13.jpg?direct&300 |}} | ||
+ | |||
+ | === Bone-based 2D === | ||
+ | |||
+ | Incepand cu versiunea din 2018 (2018.2.0f2), Unity are suport si pentru animatii Bone-based pentru 2D, functionalitate accesibila prin instalarea pachetului de 2D Animation. | ||
+ | |||
+ | Puteti folosi imaginea de mai jos ca exemplu: {{ :pjv:laboratoare:plunkahgreen.png?direct&200 |}} | ||
+ | |||
+ | Fluxul de lucru: | ||
+ | |||
+ | Se construieste ierarhia de oase în editor (Sprite Editor > Bone Editor). | ||
+ | {{ :pjv:laboratoare:boneeditor.png?direct&300 |}} | ||
+ | |||
+ | Se genereaza geometria și se atribuie greutăți ale pielii în editor (Sprite Editor > Geometry And Weight Editor). | ||
+ | {{ :pjv:laboratoare:geowaiteditor.png?direct&300 |}} | ||
+ | |||
+ | Se adauga componenta ''Sprite Skin'' pentru a genera oasele. | ||
+ | {{ :pjv:laboratoare:bonehierarchy.png?direct&300 |}} | ||
+ | |||
+ | Mai multe detalii aici: | ||
+ | * [[https://github.com/Unity-Technologies/2d-animation-samples/blob/master/Documentation/2DAnimation.md]] | ||
+ | * [[https://blogs.unity3d.com/2018/11/09/getting-started-with-unitys-2d-animation-package/]] | ||
+ | * [[https://docs.unity3d.com/Packages/com.unity.2d.animation@1.0/manual/index.html]] | ||
+ | |||
+ | Urmeaza crearea de animatii pentru obiect folosind oasele. | ||
+ | |||
=== Hierahical animation === | === Hierahical animation === | ||
- | Folosirea animatiilor pe baza de oase necesita mai multa munca. | + | Folosirea animatiilor ierarhice necesita mai multa munca. |
{{ :pjv:laboratoare:02.png?direct&300 |}} | {{ :pjv:laboratoare:02.png?direct&300 |}} | ||
Line 125: | Line 111: | ||
Pentru a crea o noua animatie folositi butonul de Create new Clip (spre exemplu pentru Jump): {{ :pjv:laboratoare:16_1_.png?direct&300 |}} | Pentru a crea o noua animatie folositi butonul de Create new Clip (spre exemplu pentru Jump): {{ :pjv:laboratoare:16_1_.png?direct&300 |}} | ||
- | === Bone-based 2D === | ||
- | Incepand cu versiunea din 2018 (2018.2.0f2), Unity are suport si pentru animatii Bone-based pentru 2D, functionalitate accesibila prin instalarea pachetului de 2D Animation. | + | ==== Crearea de animatii pentru obiecte 3D ==== |
- | Puteti folosi imaginea de mai jos ca exemplu: {{ :pjv:laboratoare:plunkahgreen.png?direct&200 |}} | + | Crearea animatiilor se poate face folosind utilitarul de animatie (Window > Animation), similar ca in spatiul 2D. |
- | Fluxul de lucru: | + | Daca este vorba de personaje, de regula animatiile se importa impreuna cu modelul 3D, folosind un sistem de scheletizare. |
- | + | ||
- | Se construieste ierarhia de oase în editor (Sprite Editor > Bone Editor). | + | |
- | {{ :pjv:laboratoare:boneeditor.png?direct&300 |}} | + | |
- | + | ||
- | Se genereaza geometria și se atribuie greutăți ale pielii în editor (Sprite Editor > Geometry And Weight Editor). | + | |
- | {{ :pjv:laboratoare:geowaiteditor.png?direct&300 |}} | + | |
- | + | ||
- | Se adauga componenta ''Sprite Skin'' pentru a genera oasele. | + | |
- | {{ :pjv:laboratoare:bonehierarchy.png?direct&300 |}} | + | |
- | + | ||
- | Mai multe detalii aici: | + | |
- | * [[https://github.com/Unity-Technologies/2d-animation-samples/blob/master/Documentation/2DAnimation.md]] | + | |
- | * [[https://blogs.unity3d.com/2018/11/09/getting-started-with-unitys-2d-animation-package/]] | + | |
- | * [[https://docs.unity3d.com/Packages/com.unity.2d.animation@1.0/manual/index.html]] | + | |
- | + | ||
- | Urmeaza crearea de animatii pentru obiect folosind oasele. | + | |
- | === Animator Controller === | + | ==== Animator Controller ==== |
Urmatorul pas este sa configuram aceste animatii astfel incat sa le putem folosi, si sa putem tranzitiona intre ele. Pentru acest lucru, vom folosi un ''Animator Controller''. Acest controller functioneaza ca un automat de stari, fiecare stare putand fi o animatie. | Urmatorul pas este sa configuram aceste animatii astfel incat sa le putem folosi, si sa putem tranzitiona intre ele. Pentru acest lucru, vom folosi un ''Animator Controller''. Acest controller functioneaza ca un automat de stari, fiecare stare putand fi o animatie. |