*object | Pointer to object structure |
*motionlink | Pointer to motion link structure |
*shapelink | Pointer to motion link structure (apex animation) |
frame | Frame number (between 0 and 1) |
The motion link structure contains two motion frames, from the link source and link target. When the parameter frame is 0, the motion is of the source frame, and when it is 1, the motion is of the link target frame. Other frames (0 < ff < 1) are interpolated. The same applies for shape (apex animation).
#include <Shinobi.h> #define OBJECT object_sample #define MOTION1 motion_sample1 /* Entered in NAM file */ #define MOTION2 motion_sample2 /* Entered in NAM file */ #define SHAPE1 shape_sample1 /* Entered in NAS file */ #define SHAPE2 shape_sample2 /* Entered in NAS file */ #define STEPS 60 extern NJS_MOTION MOTION1[]; extern NJS_MOTION MOTION2[]; extern NJS_MOTION SHAPE1[]; extern NJS_MOTION SHAPE2[]; NJS_MOTION_LINK motionlink; NJS_MOTION_LINK shapelink; : motionlink.motion[0] = MOTION1;/* Link source */ motionlink.motion[1] = MOTION2;/* Link target */ shapelink.motion[0] = SHAPE1;/* Link source */ shapelink.motion[1] = SHAPE2;/* Link target */ /* Interpolate from last frame of MOTION1 to 1.5 frames of MOTION2 */ motionlink.frame[0] = shapelink.frame[0] = MOTION1->nbFrame-1; motionlink.frame[1] = shapelink.frame[1] = 1.5; : njDrawShapeMotionLink( OBJECT, &motionlink, &shapelink, ff/STEPS ); /* Frame specifies 0 - 1 */ ff+=0.2f; if( ff >= STEPS - 1 ) ff=0.f; :