BUSHY8996 opened this issue on Jan 15, 2004 ยท 10 posts
Dale B posted Fri, 23 January 2004 at 10:29 AM
It can. One thing that can cause 'jump' is for the framerate that the BVH uses and the rendering framerate in Vue to be different. If they are, Vue tries to interpolate to get the values for those 'in between keyframe' frames, and doesn't do a terribly accurate job of it. In Vue's defense, you can get into some seriously large floating point values (like 8-12 digits to the right of the decimal point) doing this, and even the big boys have trouble with it. This can be corrected in Poser by retiming the keyframes to match the FPS you want to use in Vue (less than 24 fps can have discernable roughness, and for broadcast quality smoothness, you need to consider 30fps.), or set Vue to the FPS setting that Poser is using for the animation file. Another thing that can cause jumping is what is the bvh motion actually doing? If this is a motion file where the figure is doing a complete rotation around one axis (such as a dancer doing a pirouette), then you are looking at an issue that starts with the actual motion capture. Run the animation in Vue, and take careful note of where the jumping occurs, then go back into Poser and play it there, with the Hip selected (the hip is the root node of a bvh file, so the actual spatial location and orientation of the entire model is based on its .trans and .rot values). Be scrolled down to where you can see the X,Y, and Z rotation values, then step through the frames and watch the values. At the point where the figure is going from -180 degrees through Zero to +1 degrees, (let's assume the Y axis, so we keep with the dancer analogy), your Yrot may jump to something like -.005, or -845. If the value jumps to something bizzare, look at the other two rotation values; they should have equally jumped to extremely strange values. The reason for this is the kind of interpolation that the bvh capture software used. Mathematically, it is correct, and Poser has no trouble with it due to the fact that it can handle multiple forms of keyframe interpolation. But VueMover can't. What you have to do to correct this is reset the values manually in the keyframes that have the odd values in Poser, and resave the animation. This does take a little practice, as it is easy to mis-guess the values to keep the smoothness of the original movement, but it does get easier with practice. I usually wind up exporting a corrected bvh file and rename it so that I don't have to fix it again, should I want to reuse it.