njCnkDrawShapeMotionLink
シェイプ付きモーションの結合

書 式

#include <Ninja.h>
void	njCnkDrawShapeMotionLink( object, motionlink, shapelink, frame )
NJS_CNK_OBJECT	*object
NJS_MOTION_LINK	*motionlink
NJS_MOTION_LINK	*shapelink
Float	frame

引 数

object
オブジェクト構造体へのポインタ
motionlink
モーションリンク構造体へのポインタ
shapelink
モーションリンク構造体へのポインタ(頂点アニメーション)
frame
フレーム番号(0から1まで)

返 値

なし

エラー

なし

機 能

2つのモーション構造体をつなげます。
モーションリンク構造体中のフレームはリンク元とリンク先のモーション・フレームで、
引数のフレームが0の時にリンク元のフレーム、1の時にリンク先のフレームの
モーションにあり、その他(0<ff<1)はリンク先とリンク元のフレームを補完します。
シェープ(頂点アニメーション)についても同様です。

頂点アニメーションの対応している頂点型は下記のとおりです。

頂点:
NJD_CV,NJD_CV_D8,NJD_CV_UF,NJD_CV_NF,NJD_CV_S5,NJD_CV_S4,NJD_CV_IN
頂点・法線:
NJD_CV_VN,NJD_CV_VN_D8,NJD_CV_VN_UF,NJD_CV_VN_NF,NJD_CV_VN_S5,NJD_CV_VN_S4,NJD_CV_VN_IN

(スプライン補間はモーション時の頂点のみでモーション間はリニアとなります。ただし、ベーシックモデルではスプライン補間されます。)


用 例

#include  

#define	OBJECT		object_sample
#define	MOTION1		motion_sample1 /* NAMファイル内に記載 */
#define	MOTION2		motion_sample2 /* NAMファイル内に記載 */
#define	SHAPE1		shape_sample1  /* NASファイル内に記載 */
#define	SHAPE2		shape_sample2 /* NASファイル内に記載 */
#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;/*リンク元*/
motionlink.motion[1] = MOTION2;/*リンク先*/
shapelink.motion[0] = SHAPE1;/*リンク元*/
shapelink.motion[1] = SHAPE2;/*リンク先*/
/*MOTION1の最後のフレームからMOTION2の1.5フレームを補間*/
motionlink.frame[0] = 
shapelink.frame[0] = MOTION1->nbFrame-1;
motionlink.frame[1] = 
shapelink.frame[1] = 1.5;

...........
njCnkDrawShapeMotionLink( OBJECT, &motionlink, &shapelink, ff/STEPS ); 
/* フレームは0−1を指定 */

ff+=0.2f;
if( ff >= STEPS - 1 ) ff=0.f;
...........


備 考

CHUNKオブジェクト構造体用のシェープ付きモーション・リンクです。

関 連

njInitShape
njCnkDrawObject
njCnkDrawMotion
njCnkDrawMotionLink

njCnkDrawShapeMotionLink

Copyright SEGA ENTERPRISES, LTD., 1998