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

# njEasyDrawShapeMotion

シェープ付きモーションの実行。

### 書式

  void njEasyDrawShapeMotion( object, motion, frame )
  NJS_OBJECT *object
  NJS_MOTION *motion
  NJS_MOTION *shape
  Float frame

### 引数

  *object | オブジェクト構造体へのポインタ
  *motion | モーション構造体へのポインタ
  *shape | モーション構造体へのポインタ(頂点アニメーションのデータ)
  frame | フレーム番号

### 戻値

  なし

### 解説

  モーションをモーションデータに従って描画します。 フレーム番号には、浮動小数点が使えるため、モーションデータの補間ができます。 フレーム数が10のモーションの場合、フレーム番号の範囲は0〜10未満(9.9999)となります。 例えば、フレーム番号を0.5とすると、0フレーム目と1フレーム目のちょうど真ん中の値を、補完して描画します。 9〜10未満(9.9999)の補完は、最後のフレームと、最初のフレームの補完となります。 頂点アニメーションについても同様です。

### 用例

      #include <Shinobi.h>
      #define	OBJECT	object_sample	/* NJA(NAM)ファイル内に記述 */
      #define	MOTION	motion_sample	/* NAMファイル内に記述 */
      #define	SHAPE	shape_sample	/* NASファイル内に記述 */
      extern NJS_OBJECT	OBJECT[];
      extern NJS_MOTION	MOTION[];
      extern NJS_MOTION	SHAPE[];
      float	buf[10000];
      float	ff=0.f;
      	：
      InitShape(buf);
      	：
      njEasyDrawShapeMotion( OBJECT,MOTION,SHAPE,ff );
      ff+=0.2f;
      if( ff >= (MOTION->nbFrame-1) ) ff=0.f;
      	：

### 備考

  モーションとシェープ(頂点アニメーション)が付いただけで、描画に関してはモデル描画と全く同様になります。 モデル関数ではnjEasyDrawObjectに対応しますので、光源は平行光源1つとなります。 ただし、他のモーション関数とは違い線形補間しかなされません。

### 参照

  njInitShape()

njEasyDrawShapeMotion

COPYRIGHT © SEGA ENTERPRISES, LTD., 1998