170 likes | 321 Views
An Abstract Animation Model for Integrating SMIL Basic Animations With Multimedia Document. Tien TRAN-THUONG & Cécile ROISIN. OPERA Research Project. INRIA Rhône-Alpes. Zirst - 655 avenue de l'Europe - Montbonnot - 38334 Saint Ismier Cedex - France
E N D
An Abstract Animation Model for Integrating SMIL Basic Animations With Multimedia Document Tien TRAN-THUONG & Cécile ROISIN OPERA Research Project INRIA Rhône-Alpes Zirst - 655 avenue de l'Europe - Montbonnot - 38334 Saint Ismier Cedex - France e-mail: tien.tran_thuong@inrialpes.fr; cecile.roisin@inrialpes.fr
Multimedia document modeling Declarative approach for specifying multimedia document Multimedia document model: Content, Temporal, Spatial, Link, Animation Medias / Multimedia database Multimedia document specification Multimedia document
Animation modeling • An animation model is defined by (f,v, a, o, t): • animator: function (f), values (v), target attribute (a); • target object (o); • timing (t). • Two approaches for creating animations • Programming high expressive power but difficult, • Declarative lower expressive power but easier for the author • Modeling for declarative animation definition
Objectives of the animation model: • Specifying animations, • Reutilization of animation, • Simplifying maintenance of multimedia documents. • Our approach: • Abstract animation definition, • Independence between media target (o) and animation definition, • Independence with rendition context (t)
Ex. 1: transitions between images O1 O2 O3 O4 O5 O6 time t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 Playing sequentially a list of images with transition animations between two consecutive images • Animation modeling (f, v, a, o, t): two animation types for the modification of the alpha color attribute v={V1= (0, 1) from transparent to visible, V2= (1, 0) from visible to transparent}; f=linear ; a=alpha; o={O1..O6}; t={t1..t12}.
Specification with HyTime, MHEG and SMIL Up 1 Up 2 Up 3 Up 4 Up 5 Up 6 Down 1 Down2 Down3 Down4 Down5 Down6 • The animation specification can be specified thought the models: • HyTime: a modifier(v, f, a, o) is projected on a time t: • Upi=((“0,1”, f, a, Oi), ti); Downi=((“1,0”, f, a, Oi), ti+1) , where i=1..6 • MHEG: an action(v, f, a, t) is referenced to an object o: • Upi=((“0,1”, f, a, ti), Oi); Downi=((“1,0”, f, a, ti+1), Oi) • SMIL: a basic_animation(v, f, a, t) is included into or referenced to an object o: • Upi=((“0,1”, f, a, ti), Oi); Downi=((“1,0”, f, a, ti+1), Oi)
Ex. 2: MADEUS characters motion Spline path Moving a sequence of characters on a same path • Animation modeling (f, v, a, o, t) where: v= “45,350;158,260;383,440;608,260;832,440;945,350” f=spline ; a=position; o={M,A,D,E,U,S}; t={t1..t6} • In MHEG, HyTime and SMIL, the author has to specify 6 animations for each character object: (v, f, a, Oi, ti), where i=1..6.
Why actual models provide no abstract specification ? • HyTime: a modifier(v, f, a) referring to one object o is projected on a concrete time t. • MHEG: an action(v, f, a, t) defined directly on a concrete time refers to an object o. Object Object Ref. Ref. Action class Object modification … … modifier modifier action action time Projectors • for only one object and • in a concrete time time • for only one object • SMIL: a basic_animation(v, f, a, t) included into or referred to an object ohas the same problems as the action of MHEG. Object … animateMotion time animate
No abstraction animation specification implies: • Redundancy, • No reutilization, • Tedious and hard editing work.
Animation Definition • Abstract extension of SMIL animation model Our abstract model SMIL model ((f, v, a, t), o) A = (f, v, a, ï) • same SMIL semantic function animations f={discrete, linear, paced, spline} and basic animations set {set, animate, animateColor,animateMotion}, • abstractionA=(f, v, a, ï) where ï is an abstract interval [0,1], • several objects can refer to the same animation: (o1, t1), (o2, t2)refers to A. • time projection: when the abstract animation(f, v, a, ï) is referred by the object (o, t)the abstract interval ïis projected on the concrete time t.
Abstract Animation Reutilization • Example: the uses of the abstract animation A=(f, v, a, ï) by two object contexts (O1, t1), (O2, t2): • (O1, t1, A) • (O2, t2, A)
Mapping the abstract time (ï) into several concrete times (ti) • The abstract time ï=«0,0.2,0.8,1» is mapped on two real times t1=«begin:5, dur:8» and t2=«begin:15, dur:10»
Ex. 1: transitions between images • Define just two abstract animations: UpAlpha = (linear, “0,1”, alpha, “ 0,1”) DownAlpha = (linear, “1,0”, alpha, “ 0,1”) • Syntax: • <animate id=“UpAlpha” calcMode=“linear” values=“0,1” attribute=“alpha” keytime=“0,1”/> • <animate id=“DownAlpha” calcMode=“linear” values=“1,0” attribute=“alpha” keytime=“0,1”/> • Referencing O1 O2 O3 O4 O5 O6 time
Ex. 2: MADEUS characters motion • Define just one abstract animation MadeusPath = (spline, “45,350;158,260; …”, position, “0;0.2;0.4;0.6;0.8;1”) • Syntax: <animateMotion id=“MadeusPath” calcMode=“spline” values=“45,350;158,260; …” keyTime=“0;0.2;0.4;0.6;0.8;1”/> • Animation referencing M A D E … … time
Example 1 • the author has to defined two abstract animations: UpAlpha = (linear, “0,1”, alpha, “ 0,1”) DownAlpha = (linear, “1,0”, alpha, “ 0,1”) • Syntax: <animate id=“UpAlpha” calcMode=“linear” values=“0,1” attribute=“alpha” keytime=“0,1”/> <animate id=“DownAlpha” calcMode=“linear” values=“1,0” attribute=“alpha” keytime=“0,1”/> <img id=“O_1” …> <anchor begin=“0s” dur=“3s” animateRef=“UpAlpha”/> <anchor begin=“10s” dur=“1s” animateRef=“DownAlpha”/> </img> <img id=“O_2” …> <anchor begin=“0s” dur=“3s” animateRef=“UpAlpha”/> <anchor begin=“15s” dur=“1s” animateRef=“DownAlpha”/> </img> …
Example 2 • the author has to defined just one abstract animation: MadeusPath = (spline, “45,350;158,260; …”, position, “0;0.2;0.4;0.6;0.8;1”) • Syntax: <animateMotion id=“MadeusPath” calcMode=“spline” values=“45,350;158,260; …” keyTime=“0;0.2;0.4;0.6;0.8;1”/> <text id=“M_text” … > <anchor begin=“2s” dur=“10s” animateRef=“MadeusPath”/>M</text> <text id=“A_text” … > <anchor begin=“3s” dur=“10s” animateRef=“MadeusPath”/>A</text> <text id=“D_text” … > <anchor begin=“4s” dur=“10s” animateRef=“MadeusPath”/>D</text> …
See also: http://opera.inrialpes.fr/people/Tien.Tran-Thuong/Welcome.html