7. animatii

30
Animații ca entitate multimedia

Upload: dmitrii-stoian

Post on 21-Mar-2017

90 views

Category:

Internet


0 download

TRANSCRIPT

Page 1: 7. Animatii

Animații ca entitate multimedia

Page 2: 7. Animatii

2

A anima înseamnă literal „a da viață”; animarea reprezintînd mișcarea unui obiect sau corp (sau impresia că ceva este în mișcare), care nu se poate mișca de la sine.

Page 3: 7. Animatii

3

• Primele încercări de a capta mișcarea în imagini se regăsesc în picturile rupestre din paleolitic, unde animalele erau prezentate cu mai multe picioare, care se suprapuneau reciproc

Page 4: 7. Animatii

4

• Prima menționare a unor astfel de dispozitive se face în secolul al doilea, cînd a fost inventat în China zoetropul (aproximativ 180 d.Hr., inventator - Ding Huan).

Page 5: 7. Animatii

5

Metode de bază în animație

• Metodele de animație computerizată se împart în metode bazate pe animație procedurală și metode bazate pe utilizarea de keyframes

Page 6: 7. Animatii

6

Animația procedurală

Create CLOCK(…); For FRAME:=1 to NB_FRAMES TIME := TIME + 1/24; ANGLE := A * SIN(OMEGA*TIME + PHI); MODIFY(CLOCK, ANGLE); draw CLOCK; record CLOCK; erase CLOCK;

Page 7: 7. Animatii

7

Animația bazată pe utilizarea keyframe-urilor.

• În cadrele, care nu sunt keyframe-uri, valorile parametrilor se obțin prin interpolarea valorilor în keyframe-uri.

Page 8: 7. Animatii

8

În baza caracteristicilor specifice ale problemei, se iau în considerare următoarele aspecte:

• Se face alegerea între interpolare și aproximare;

• Complexitatea;• Continuitate;• Gestionarea globală sau locală.

Page 9: 7. Animatii

9

Animația elementelor WEB poate fi realizată prin:

• CSS3; • JavaScript;• Biblioteci și framework-uri specializate (de ex.

jQuery);• Alte instrumete : Adobe Adge Animation,

Google Design etc.

Page 10: 7. Animatii

10

Efecte de animație în CSS3 pot fi căpătate prin utilizarea:

• Transition• Transform• Animation

Page 11: 7. Animatii

11

Principii de creare a animațiilor cu ajutorul CSS3 - animation;

1. Se indică o serie de reguli @keyframes2. Se specifică identificatorul animației animation-name3. Se specifică durata animation-duration4. Se indică forma de desfășrare a animației animation-timing-function5. Se determină punctele de sptopare a animației animation-delay6. Animația poate fi repetată animation-iteration-count7. Animația poate orientată animation-direction9. Animația poate fi controlată din extern cu ajutorul limbajelor de

programare animation-play-state10. Poate fi realizat controlul stării animației pînă la început și respectiv sfîrșitul

animației animation-fill-mode11. Unui obiect i se pot determina mai multe animații în acelaș timp

Page 13: 7. Animatii

13

Instrumente pentru generarea animațiilor CSS

• Animate.css• Effect.css• CSS3 Animation Cheat Sheet

Page 14: 7. Animatii

14

Principii de creare a animațiilor cu ajutorul JavaScript;

• Animația este realizată prin apelul requestAnimationFrame.

• În cazul utilzării IE9- e nevoie de conectat profilul ce va utiliza setTimeout.

• La fel poate fi utilizată constructorul setInterval.

Page 15: 7. Animatii

15

Parametrii de bază sunt:

duration — durata animației în ms.timing — funcția ce determină crearea animației

în fiecare frame. Această primește partea de timp destinată animație de la 0 la 1, întoarce nivelul de finalizare a animației de la 0 la 1.

draw — funcție ce crează conținutul animat și scpecifică starea de la 0 la 1.

Page 16: 7. Animatii

16

var step = function(){ // content ce se reașizează} setInterval(step, 100); // 0.1s pentru repetare

/* Sau in alta forma */

var step = function(){ setTimeout(step, 100); } step();

Page 17: 7. Animatii

17

Calculul FPS

de exemplu:

1000ms / 60(fps) = 16.7ms

Chrome face pentru

setInterval și setTimeout - 1fps

Page 18: 7. Animatii

18

Neajunsuri tipice

• Necesitatea sincronizarii intre diverse conținuturi animate;

• Încărcarea excesivă a fps necontrolat;• Dezacordul în cazul unui conținut suprasaturat

cu grafică generată• ...

Page 19: 7. Animatii

19

Soluția - requestAnimationFrame

function step() { requestAnimationFrame(step); // descrierea unui pas} step();

/* acesta poate avea paratru elementulul modificat*/

requestAnimationFrame(step, element);

Page 20: 7. Animatii

20

Neajunsuri

Tipul browserulului în dependență de versiune• webkitRequestAnimationFrame• mozRequestAnimationFrame• msRequestAnimationFrame

Page 21: 7. Animatii

21

Page 22: 7. Animatii

22

Fixare FPS

var fps = 15; function step() { setTimeout(function()

{ requestAnimationFrame(step); // Drawing code goes here }, 1000 / fps); }

Page 23: 7. Animatii

Exemple canvas animatii

• https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Basic_animations

Page 24: 7. Animatii

24

Animație multilayer

http://html5.litten.com/using-multiple-html5-canvases-as-layers/

Page 25: 7. Animatii

25

Principii de creare a animațiilor cu ajutorul jQuery;

• Pe crează effecte particularizate cu ajutoul metodei .animate();

• Pot fi utilizate efectele din colecția mare de efecte predefinite jQuery;

• Afectele pot fi controlate în timp după prioritate și conțitun;

• Animația poate fi controlată și de proprietățile obiectelor jQuery

Page 26: 7. Animatii

26

Concluzii

• Animația computerizată s-a început cu metode simple, venite din animația tradițională și s-a axat preponderent pe interpolarea keyframe-urilor.

• Apoi au apărut modelele chinematice și dinamice de reprezentare structurală a obiectelor. Cu timpul metodele de animație computerizată s-au orientat tot mai mult asupra respectării tot mai stricte a legilor fizicii și modele dinamice.

Page 27: 7. Animatii

27

Concluzii

• În dependență de gradul de complexitate și disponibilități funcționale animațiile pot fi realizate cu ajutorul:1. Animații cu un grad slab de complexitate și

incluziune – CSS3;2. Animații ce nu pot fi realizate cu CSS3, de obicei

cu un rendering variabil în timp sau cu controlul complex al obiectelor – JavaScript;

Page 28: 7. Animatii

28

3. Animații însoțite de efecte speciale complexe cu un variabil avantaj de realizare, cu forme de descriere cu mulți parametri – biblioteci JavaScript specializate (de ex. Paper.js) sau chiar framework-uri de genul jQuery, AngularJs, ReactJs etc.

4. Animații foarte complicate, ce necesită interactivități complexe, decrierea transformărilor parametrizate, măști de animație, simboluri de obiecte multinivel – Adobe Adge Animation, Google Design, Flash etc.

Page 30: 7. Animatii

30

Controlul animației interactive

3. Drag And Drophttps://www.youtube.com/watch?v=_

ycJAn_4StU&list=PLf0k8CBUad-sHxpoBHLHIr3CwWfSmOYZR&index=9

4. Utilizarea sprite images