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

# njCnkSimpleDrawShapeMotionLink

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

### 書式

      void njCnkSimpleDrawShapeMotionLink( *object, *motionlink, *shapelink, frame )
      NJS_CNK_OBJECT *object
      NJS_MOTION_LINK *motionlink
      NJS_MOTION_LINK *shapelink
      Float frame

### 引数

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

### 戻り値

  なし

### 解説

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

  頂点 | NJD_CV,NJD_CV_D8
  頂点・法線 | NJD_CV_VN,NJD_CV_VN_D8

  スプライン補間はモーション時の頂点のみでモーション間はリニアとなります。 ただし、ベーシックモデルではスプライン補間されます。

### 用例

      	：
      extern NJS_MOTION	MOTION1[];
      extern NJS_MOTION	MOTION2[];
      extern NJS_MOTION	SHAPE1[];
      extern NJS_MOTION	SHAPE2[];
      extern NJS_CNK_OBJECT	OBJECT[];
      NJS_MOTION_LINK	motionlink;
      NJS_MOTION_LINK	shapelink;
      Float	sbuf[NUM * 3];
      	：
      njInitShape(sbuf);
      	：
      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;
      	：
      /* フレームは0−1を指定 */
      njCnkSimpleDrawShapeMotionLink( OBJECT, &motionlink,
      		&shapelink, ff/STEPS );
      ff+=0.2f;
      if( ff >= STEPS - 1 ) ff=0.f;
      	：

### 備考

  チャンクオブジェクト構造体用のシェープ付きモーション・リンクです。

### 参照

  njInitShape()
  njCnkSimpleDrawObject()
  njCnkSimpleDrawMotion()
  njCnkSimpleDrawMotionLink()

njCnkSimpleDrawShapeMotionLink

COPYRIGHT © SEGA ENTERPRISES, LTD., 1998,1999