##### Ninjaライブラリ - モーション関数

# njSimpleDrawShapeMotionLink

シェープ付きモーションの結合

### 書式

  void njSimpleDrawShapeMotionLink( *object, *motionlink, *shapelink, frame )
  NJS_OBJECT *object
  NJS_MOTION_LINK *motionlink
  NJS_MOTION_LINK *shapelink
  Float frame

### 引数

  object | オブジェクト構造体へのポインタ
  motionlink | モーションリンク構造体へのポインタ
  shapelink | モーションリンク構造体へのポインタ(頂点アニメーション)
  frame | フレーム番号(0から1まで)

### 戻値

  なし

### 解説

  2つのモーション構造体をつなげます。 モーションリンク構造体中のフレームはリンク元とリンク先のモーション・フレームで、 引数のフレームが0の時にリンク元のフレーム、 1の時にリンク先のフレームのモーションにあり、 その他(0<ff<1)はリンク先とリンク元のフレームを補完します。 シェープ(頂点アニメーション)についても同様です。

### 用例

      #include <Shinobi.h>
      #define	OBJECT	object_sample
      #define	MOTION1	motion_sample1 /* NAMファイル内に記載 */
      #define	MOTION2	motion_sample2 /* NAMファイル内に記載 */
      #define	SHAPE1	shape_sample1 /* NASファイル内に記載 */
      #define	SHAPE2	shape_sample2 /* NASファイル内に記載 */
      #define	STEPS	60
      extern NJS_MOTION	MOTION1[];
      extern NJS_MOTION	MOTION2[];
      extern NJS_MOTION	SHAPE1[];
      extern NJS_MOTION	SHAPE2[];
      NJS_MOTION_LINK	motionlink;
      NJS_MOTION_LINK	shapelink;
      	：
      motionlink.motion[0] = MOTION1;/*リンク元*/
      motionlink.motion[1] = MOTION2;/*リンク先*/
      shapelink.motion[0] = SHAPE1;/*リンク元*/
      shapelink.motion[1] = SHAPE2;/*リンク先*/
      /*MOTION1の最後のフレームからMOTION2の1.5フレームを補間*/
      motionlink.frame[0] =
      shapelink.frame[0] = MOTION1->nbFrame-1;
      motionlink.frame[1] =
      shapelink.frame[1] = 1.5;
      	：
      njSimpleDrawShapeMotionLink( OBJECT, &motionlink, &shapelink, ff/STEPS );
      /* フレームは0−1を指定 */
      ff+=0.2f;
      if( ff >= STEPS - 1 ) ff=0.f;
      	：

### 備考

  モーションとシェープ(頂点アニメーション)が付いただけで、描画に関してはモデル描画と全く同様になります。 つまり、njControl3Dの設定はすべて同様になります。 モデル関数ではnjSimpleDrawObjectに対応しますので、光源は平行光源1つとなります。

### 参照

  njInitShape()
  njDrawShapeMotionLink()
  njFastDrawShapeMotionLink()

njSimpleDrawShapeMotionLink

COPYRIGHT © SEGA ENTERPRISES, LTD., 1998