RE: [Plib-devel] key frame animation approach - aka Dance Moves
Brought to you by:
sjbaker
From: Dave M. <Dav...@dy...> - 2000-04-08 22:02:56
|
> > In order to implement key frame animation from ASE files > > (TM_ANIMATION samples) I need a selector that can choose > > between ssgTransforms. > ugh. my first approach was rather un-weildy. it is also confusing how ssgSelector can select several kids at the same time. is that used much and could branch entities have taken care of that? > You'd also (presumably) want to use some keyframe interpolation > - surely the file doesn't store a matrix for every frame of an animation? > actually the ASE exporter allows you to force a sample every frame. interpolation between keys is not always linear and forcing a sample every frame is guaranteed to give the same result as the 3d artist sees in max without the heavy duty math. no need to figure out spline paths or acceleration from coefficients in the ASE file. > Perhaps this is the kind of thing that would be better left > to the application, but if you want to do it in SSG, I think > we need a new node type (derived from ssgTransform I guess) > which knows how to do this. > i really think the entities for transform and mesh animation should be in SSG. the ASE format has animation in a nice format and the standard SSG/ASE loader should be able to handle it. a ssgTransformSelector dervied from ssgTransform does sound like the best way to handle this. for mesh (deformation) animation, the ssgSelector should be fine. one more point regarding animation. there doesn't seem to be a way to synchronize several timed selectors (ssgTimedSelector). for a complex animation with parent heirarchy imported from MAX, all the entities are animating relative to a "time" value. If we could have some kind of "time" branch that established a "time" value for all its kids, then changing that single "time" value in the branch could elegantly control the animation of the whole. Please share your thoughts. I have a question about ssgTimedSelector. Is calling setLimits() the only way to set the current time/frame/selection? --Dave McClurg |