*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) |
Apex | NJD_CV,NJD_CV_D8 |
Apex/normal vector | NJD_CV_VN |
(Line interpolation only)
#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 : #define VERTEX_NUM 600 /* Maximum model's verteices */ #define TYPE_VN 6 /* vertex(3) + normal(3) */ #define HEADER_NUM 2 #define NUM (VERTEX_NUM * TYPE_VN + HEADER_NUM) extern NJS_MOTION MOTION1[]; extern NJS_MOTION MOTION2[]; extern NJS_MOTION SHAPE1[]; extern NJS_MOTION SHAPE2[]; extern NJS_CNK_OBJECT OBJECT[]; NJS_MOTION_LINK motionlink; NJS_MOTION_LINK shapelink; Float sbuf[NUM * 3]; : njInitShape(sbuf); : 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; : njCnkEasyDrawShapeMotionLink( OBJECT, &motionlink, &shapelink, ff/STEPS ); /* Frame specifies 0 - 1 */ ff+=0.2f; if( ff >= STEPS - 1 ) ff=0.f; :