##### 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;
>     }

### 備考

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

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

### 参照

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

njMultiLightMotion

COPYRIGHT © SEGA ENTERPRISES, LTD., 1998-2000