Web-grafika (VRML) 5. gyakorlat Nyitrai Erika Varga Balázs alapján Kereszty Gábor
Animációk Állandó animációk Eseménygenerált animációk
Állandó animációk Egy csomópont kimeneti mezőjét kapcsoljuk egy másik csomópont bemeneti mezőjéhez: (eventOut => eventIn)Egy csomópont kimeneti mezőjét kapcsoljuk egy másik csomópont bemeneti mezőjéhez: (eventOut => eventIn) Az exposedField típusú mező tartalmaz be- és kimeneti részt is, bementi részére a set_ előtaggal hivatkozhatunk, a kimeneti részre a _changed utótaggalAz exposedField típusú mező tartalmaz be- és kimeneti részt is, bementi részére a set_ előtaggal hivatkozhatunk, a kimeneti részre a _changed utótaggal
Állandó animációk 2. Csak azonos értéktípusú mezőket kapcsolhatunk összeCsak azonos értéktípusú mezőket kapcsolhatunk össze Az összekapcsolandó csomópontokat el kell nevezni a kulcsszóvalAz összekapcsolandó csomópontokat el kell nevezni a DEF kulcsszóval Azt a csomópontot kell elnevezni, aminek a mezőjét animálni szeretnénkAzt a csomópontot kell elnevezni, aminek a mezőjét animálni szeretnénk
Állandó animációk 3. InterpolátorAlakzat Időzítő: Az animáció vezérlésére szolgálIdőzítő: Az animáció vezérlésére szolgál Interpolátor: Az animálandó adatok kiszámítását végziInterpolátor: Az animálandó adatok kiszámítását végzi Alakzat: Itt lesz látható az animációAlakzat: Itt lesz látható az animáció Időzítő
Állandó animációk 4. InterpolátorAlakzat A csomópontokat utakkal kell összekötniA csomópontokat utakkal kell összekötni ROUTE mit TO mihezROUTE mit TO mihez Routerek Időzítő
Útvonalak, routerek Összekapcsolják a csomópontok ki- és bementi mezőitÖsszekapcsolják a csomópontok ki- és bementi mezőit Az összekapcsolandó csomópontok után kell elhelyezniAz összekapcsolandó csomópontok után kell elhelyezni ROUTE mit TO mihezROUTE mit TO mihez
Példa Egy „idozito” nevű időzítő és „mozgas” nevű PositionInterpolator összekapcsolása:Egy „idozito” nevű időzítő és „mozgas” nevű PositionInterpolator összekapcsolása: ROUTE idozito.fraction_changed TO mozgas.set_fraction ROUTE idozito.fraction_changed TO mozgas.set_fraction
Időzítő TimeSensor { exposedField SFTime cycleInterval 1 exposedField SFBool loop FALSE exposedField SFBool enabled TRUE exposedField SFTime startTime 0 exposedField SFTime stopTime 0 eventOut SFTime cycleTime eventOut SFFloat fraction_changed eventOut SFBool IsActive eventOut SFTime time }
Interpolátor PositionInterpolator { eventIn SFFloatset_fraction exposedField MFFloat key [ ] exposedField MFVec3f keyValue [ ] eventOut SFVec3fvalue_changed }
Interpolátorok működése
Interpolátor típusok Interpolátor neve Mezőtípusok Mit animál? ColorInterpolator MFColor, SFColor Színkoordinátákat PositionInterpolátor MFVec3f, SFVec3f Alakzatok pozícióját CoordinateInterpolator MFVec3f, MFVec3f(!) Tetszőleges 3D koordinátákat
Interpolátor típusok 2. Interpolátor neve Mezőtípusok Mit animál? OrientationInterpolator MFRotation, SFRotation Forgatási adatokat ScalarInterpolator MFFloat, SFFloat Bármilyen mezőt, mely lebegőpontos számokat tartalmaz NormalInterpolator MFVec3f, MFVec3f(!) Minden olyan csomópontot, ahol van Normal mező
Animáció: Feladat Készítsünk az origóba egy piros gömböt, melynek sugara 2 egység. Animáld a gömb fényes felületének nagyságát 0-tól 1-ig, és vissza. Ne felejtsd el a fényes felület színét is beállítani, pl. zöldre!
Animáció: Feladat Készítsünk az origóba egy sárga gömböt, melynek sugara 1 egység. Animáld a gömb megnyúlását az Y tengely mentén a triplájára, majd vissza.
Animáció: Feladat Készítsünk az origóba egy fehér gömböt, melynek sugara 1 egység, valamint egy pontlámpát a pontba, melynek a szine piros. Animáld a lámpa színváltását piros -> zöld -> kék, majd vissza.