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)関数用光源の方向・位置の設定を反映