Ninjaライブラリ - モーション関数

njCnkDrawShapeMotion

シェープ付きモーションの実行

書式

void njCnkDrawShapeMotion( *object, *motion, *shape, frame ) 
NJS_CNK_OBJECT *object 
NJS_MOTION *motion 
NJS_MOTION *shape 
Float frame 

引数

*object   チャンクオブジェクト構造体へのポインタ
*motion   モーション構造体へのポインタ
*shape   モーション構造体へのポインタ(頂点アニメーション)
frame   フレーム番号(0〜モーションフレーム数未満)

戻り値

なし

解説

モーションをモーションデータにしたがって描画します。 フレーム番号には浮動小数点が使えるため、モーションデータの補間ができます。 フレーム数が10のモーションの場合、フレーム番号の範囲は0〜10未満(9.9999)となります。 たとえば、フレーム番号を0.5とすると、0フレーム目と1フレーム目のちょうど真ん中の値を補完して描画します。 9〜10未満(9.9999)の補完は、最後のフレームと、最初のフレームの補完となります。

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

 頂点   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 

(スプライン補間は頂点のみ)


用例

extern NJS_CNK_OBJECT	OBJECT[];
extern NJS_MOTION	MOTION[];
extern NJS_MOTION	SHAPE[];
float	buf[10000];
float	ff=0.f;
	:
njInitShape(buf);
	:
njCnkDrawShapeMotion( OBJECT,MOTION,SHAPE,ff );
ff+=0.2f;
if( ff >= (MOTION->nbFrame-1) ) ff=0.f;
	:

備考

チャンクオブジェクト構造体用のモーションです。 モーションとシェープ(頂点アニメーション)がついただけで、描画に関してはモデル描画とまったく同様になります。

参照

njCnkDrawMotion()
njCnkDrawObject()

njCnkDrawShapeMotion
COPYRIGHT © SEGA ENTERPRISES, LTD., 1998,1999