##### Ninja Library - モーション関数

# njCnkEasyDrawMotion

モーションの描画(CHUNK-EASY)

### 書式

> `void njCnkEasyDrawMotion( object, motion, frame )
> const NJS_CNK_OBJECT *object
> const NJS_MOTION *motion
> Float frame
> `

### 引数

> object | チャンクオブジェクト構造体へのポインタ
> motion | モーション構造体へのポインタ
> frame | フレーム番号(0〜モーションフレーム数(motion->nbFrame)未満)

### 戻り値

> なし

### 解説

> 引数 frame で示される位置の姿勢データを、モーションデータのキーフレーム間を補間して 作成し、その姿勢データに基づいてオブジェクトツリー全体を描画します。

> 例: フレーム数（motion->nbFrame）が10のモーションの場合

> - 引数 frame の取り得る範囲は0以上10未満(9.9999)となります。
> - 引数 frame を0.5とすると、0フレーム目と1フレーム目の中央のモーションを補完して描画します。
> - 引数 frame が9以上10未満(9.9999)の補完は、最後のキーフレームと最初のキーフレーム間の補完となります。

> 引数 frame の範囲と補完のされ方をまとめると次のように成ります。

> 引数 frame の範囲 | 補完のされ方
> frame < 0 | 暴走はしませんが通常は使いません。
> 0 <= frame <= motion->nbFrame - 1 | 通常の補完
> motion->nbFrame - 1 <= frame < motion->nbFrame | 最後のキーフレームと最初のキーフレームの補完
> motion->nbFrame <= frame | 暴走はしませんが通常は使いません。

### 用例

>     #define OBJECT  object_sample
>     #define MOTION  motion_sample
>     extern NJS_CNK_OBJECT  OBJECT[];
>     extern NJS_MOTION      MOTION[];
>     	:
>     {
>         njCnkEasyDrawMotion( MOTION, ff );
>         ff   += 0.2f;
>         if ( ff >= MOTION->nbFrame ) {
>             ff  -= MOTION->nbFrame;
>         }
>     }
>     	:

### 備考

> - チャンクオブジェクト構造体用のモーションです。
> - 本関数は、Ninja1 での Old系のMotion関数に互換性が有り、回転がAngle形式で表現されている場合、補完は角度が近い方に行われます。

### 参照

> njCnkEasyDrawObject() | CHUNKオブジェクトのEASY描画
> njCnkEasyDrawModel() | CHUNKモデルのEASY描画
> njCnkSimpleDrawMotion() | モーションの描画(CHUNK-SIMPLE)
> njCnkEasyMultiDrawMotion() | モーションの描画(CHUNK-EASY MULTI)
> njCnkSimpleMultiDrawMotion() | モーションの描画(CHUNK-SIMPLE MULTI)

njCnkEasyDrawMotion

COPYRIGHT © SEGA ENTERPRISES, LTD., 1998-2000