Ninja Library - モーション関数

njMultiLightMotion

マルチライトモーションの実行

書式

void njMultiLightMotion( mlight, frame )
const NJS_MLIGHT_MOTION *mlight
Float frame

引数

mlight   マルチライト構造体へのポインタ
frame   フレーム番号(0〜モーションフレーム数)

戻り値

なし

解説

マルチライト構造体に設定された複数のライトモーションを実行します。

複数ライトが有効なのは、EasyMulti、SimpleMulti関数の描画のときで、Easy、Simple関数使用のときに複数ライトを使用した場合、最後の設定が有効になります。 この関数で設定されたライトにはLightSwitchを実行します。


用例

#define LIGHT_NUM	(3)
extern NJS_LIGHT	light0;
extern NJS_LIGHT	light1;
extern NJS_LIGHT	light2;
extern NJS_MOTION	lmotion0;
extern NJS_MOTION	lmotion1;
extern NJS_MOTION	lmotion2;

NJS_MLIGHT_MOTION mlight;
NJS_LIGHT	*lights[LIGHT_NUM];
NJS_MOTION	*lmotions[LIGHT_NUM];

Sint32 UserInit(void)
{
 lights[0] = &light0;
 lights[1] = &light1;
 lights[2] = &light2;

 lmotions[0] = &lmotion0;
 lmotions[1] = &lmotion1;
 lmotions[2] = &lmotion2;

 mlight.n = LIGHT_NUM;
 mlight.lights = lights;
 mlight.motions = lmotions;
	
 return USER_CONTINUE;
}

Sint32	UserMain(void)
{

 njMultiLightMotion( &mlight, frame);

 njPushMatrixEx();
 njCnkSetEasyMultiLightMatrices();
 njTranslate( NULL, 0.f, 0.f, -10.f );
 njRotateXYZ( NULL, xx,yy,zz );
 njCnkEasyMultiDrawModel( model );
 xx += 257;
 yy += 179;
 zz += 193;
 njPopMatrixEx();
 return USER_CONTINUE;
}


備考

この関数は0番スロットのモーション情報構造体を使用します。

この関数を呼び出すとカレントモーション情報構造体は0番スロットに設定されます。


参照

njLightMotion() ライトモーションの実行
njCnkSetEasyMultiLightMatrices() njCnkEasyMultiDrawObject(−Model)関数用光源の方向・位置の設定を反映
njCnkSetSimpleMultiLightMatrices() njCnkSimpleMultiDrawObject(−Model)関数用光源の方向・位置の設定を反映

njMultiLightMotion
COPYRIGHT © SEGA ENTERPRISES, LTD., 1998-2000