[ glorius @ 15.09.2004. 15:27 ] @
Verovatno je neko od vas pokusao da radi sa ASE fajlovima.
Pitanje: Na koji nacin koristite podatke ASE fajlova za animaciju objekata?

U sustini, najlakse je da se napravi nekoliko ASE fajlova koji sadrze krajnje tacke animacije. NPR

IgracStoji.ASE - sadrzi mesh koji stoji
IgracUdaraSekirom.ASE - sadrzi krajnji frame udarca sekirom

Interpolacijom vertexa (morphing-om) bi se, kao sto biste ocekivali, dobila bi se glatka animacija. Ali, postoji jedan problem.

Posto je interpolacija linearna, ne bi se video "udarac" sekirom vec bi mesh samo, kako to da objasnim, "ispruzio" ruku. To znaci da bi trebalo ubaciti bar jos jedan srednji frejm koji predstavlja zamah ruke. Ali, opet se dobija "robot" animacija. Sto vise fajlova i frameova to realnija animacija, naustrb sporog loadiranja svih fajlova i zauzimanja memorije.

Pravo resenje su BONES sistem koji zauzima samo procesor za kalkulaciju pozicija vertexa. Ali, nije bas lako ovladati BONES-ima (ili jeste?) i kako ih exportovati u OpenGL (DirectX ima tu mogucnost, jel da?).

Po meni, postoji jos jedna alternativa.

Animacija u ASE fajlu se opisuje ovako:

*TM_ANIMATION {
*NODE_NAME "Cone01"

*CONTROL_POS_BEZIER {
*CONTROL_BEZIER_POS_KEY 0 99.7527 1.1050 0.0000 0.0000 0.0000 0.0000 -0.0598 0.0000 0.0000 0

*CONTROL_BEZIER_POS_KEY 8000 -131.1580 1.1050 0.0000 -0.0020 0.0000 0.0000 0.0020 0.0000 0.0000 0

*CONTROL_BEZIER_POS_KEY 16000 132.4463 1.1050 0.0000 -0.0639 0.0000 0.0000 0.0000 0.0000 0.0000 0
}
}

Kako iskoristiti ove podatke za pravljenje animacije. Sta znaci svaki parametar posle
*CONTROL_BEZIER_POS_KEY. Znam da je 0 pocetno vreme interpolacije Bezier-ove krive. Ostali parametri su parametri pozicije? ali koje treba uzimati kao trenutne koordinate (X, Y, Z)? Da li su ostale vednosti tagente Bezier-ove krive?

Znam da izvrsim interpolaciju izmedju 2 tecke Bezier-ove krive ali kada je broj tacaka veci onda dolazi do problema.

F1!!!!
[ visla @ 03.10.2004. 02:28 ] @
Sada cu da ti pomognem malo. Kao prvo ASE se u principu ne koristi za citanje animacija.Ako ti tako nesto treba onda uzmes .X format koji to ima mnogo detaljnije zapisano (a i lakse se exportuje iz 3dMAx-a ili LightWavea).

A sto se tice onih robotskih pokreta to ti je zato sto za pokretanje kao sto je rotiranje ne smes koristiti linearnu interpolaciju vec ako (pravis sam) onda iskoristi sfericnu interpolaciju. Necu ti je ovde napisati (moras da se pomucis malo) ali je u principu isto toliko jednostavna osim sto ima dva sinusa.

Pa ti izvoli!!!