njDrawMotion
モーションの描画

書 式

#include <Ninja.h>
void  njDrawMotion( object, motion, frame )
NJS_OBJECT  *object
NJS_MOTION  *motion
Float    frame

引 数

object
オブジェクト構造体へのポインタ
motion
モーション構造体へのポインタ
frame
フレーム番号

返 値

なし

エラー

なし

機 能

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

用 例

#define  OBJECT    object_man
#define  MOTION    motion_man
extern NJS_OBJECT  OBJECT[];
extern NJS_MOTION  MOTION[];

void main() {
  Float  ff=0.0f;

  njInitSystem( NJD_RESOLUTION_640x480, 1 );
  njInitMatrix( matrix, 128 );
  njInit3D( vbuf, 1024, abuf, fbuf, 32 );
  njInitView( &view );
  njCreateLight( &light, NJD_DIR_LIGHT );
  njSetView( &view );

  while(1) {
    njClearMatrix();
    njDrawMotion( OBJECT, MOTION, ff );

    ff+=0.2f;
    if( ff >= (MOTION->nbFrame) ) ff-=MOTION->nbFrame;

    njWaitVSync();
  }
}

備 考

アクション構造体を、オブジェクトとモーションに分けただけで、そのたは、njAction()と全く同様です。

関 連

njInit3D()
njDrawModel()
njDrawObject()
njControl3D()
njAction()

njDrawMotion

Copyright SEGA ENTERPRISES, LTD., 1997