njSetCurrentMotion
ノード・モーション関数のパラメータの設定。

書 式

#include <Ninja.h>
void  njSetCurrentMotion(NJS_MOTION *motion, Float frame );
NJS_MOTION  *motion
Float       frame

引 数

motion
モーション構造体へのポインタ
frame
フレーム番号

返 値

なし

エラー

なし

機 能

ノード毎のモーション・パラメータを設定します。

用 例

#include <NINJA.H> 

#define  OBJECT    object_sample
#define  MOTION    motion_sample
#define LINEAR    0
#define SPLINE    1

extern NJS_MOTION  MOTION[];
extern NJS_OBJECT  OBJECT[];

Float  ff = 0.f;
Int  spline_flg = SPLINE;

...........

Sint32 njUserMain(void)
{
  ...........

  njSetCurrentMotion(MOTION, ff );
  PushPopMotion( OBJECT );

  ff+=0.2f;
  if( ff >= (MOTION->nbFrame-1) ) ff=0.f;
  ...........
}

PushPopMotion(NJS_OBJECT *obj)
{
  njPushMatrix( NULL );

  /* モーション関数の実行 */
  njMotionTranslate( NULL, obj, spline_flg );
  njMotionRotateXYZ( NULL, obj, spline_flg );
  njMotionScale( NULL, obj, spline_flg );
  njSetNextMotionNode();

  /* モデルの描画 */
  if( obj->model != NULL )
    njDrawModel( obj->model );
  
  if( obj->child != NULL )
    PushPopMotion( (NJS_OBJECT*)obj->child );
  
  njPopMatrix( 1 );

  if( obj->sibling != NULL )
    PushPopMotion( (NJS_OBJECT*)obj->sibling );
}

...........

備 考

この関数は親子階層をたどる(プッシュ・ポップ)関数中で使用するための関数です。
これらの(ノード毎のモーション)関数は、3Dの制御部を除けばnjAction、njDrawMotion類と同様です。

関 連

njMotionTransform
njMotionTransformZXY
njMotionTranslate
njMotionRotateXYZ
njMotionRotateZXY
njMotionScale
njGetMotionTranslate
njGetMotionRotate
njGetMotionScale
njSetNextMotionNode

njSetCurrentMotion

Copyright SEGA ENTERPRISES, LTD., 1998