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

# njCnkSimpleDrawMotionLink

モーションリンクの描画(CHUNK-SIMPLE)

### 書式

> `void njCnkSimpleDrawMotionLink( object, motionlink, rate )
> const NJS_CNK_OBJECT *object
> const NJS_MOTION_LINK *motionlink
> Float rate
> `

### 引数

> object | オブジェクト構造体へのポインタ
> motionlink | モーションリンク構造体へのポインタ
> rate | 補完レイト(0〜1)

### 戻り値

> なし

### 解説

> モーションリンク構造体によって指定された２つのモーションを結合したモーションを描画します。

> モーションリンク構造体中の２つのフレーム番号は、リンク元のモーションおよびリンク先のモーションの フレーム番号を指定します。

> 一方、引数の rate にはそれらのモーション間の内分比を指定します。

> 引数の rateが 0 のときはリンク元のモーションに、rate が 1のときはリンク先の モーションに一致します。rate がその間(0 < rate < 1)にあるときはリンク先のモーションと リンク元のモーションを補完します。

> リンク元やリンク先のモーションを実行するときの補完方法は、それぞれのモーション構造体の inp_fn メンバのビットによって制御できます。デフォルトでは線形補完ですが、 スプライン補完も可能です。

> 一方、それらを結合する際の補完方法は、線形補完のみ対応しています。

> また、リンク元やリンク先の回転の表現が Angle 形式であっても、それらを結合する 際には、いったんそれぞれの回転表現を共にクォータニオン形式に変換してから、 クォータニオンによる線形補完をします。これにより、リンク元とリンク先のモーションに 関連性が薄い場合でも自然な補完が行えます。

### 用例

>     #include <Ninja.h>
>     #define	OBJECT    object_sample
>     #define	MOTION1   motion_sample1 /* Entered in NAM file */
>     #define	MOTION2   motion_sample2 /* Entered in NAM file */
>     extern NJS_MOTION	MOTION1[];
>     extern NJS_MOTION	MOTION2[];
>     extern NJS_CNK_OBJECT	OBJECT[];
>     NJS_MOTION_LINK         motionlink;
>     Float                   rate = 0.0f;
>     	:

>     {
>         motionlink.motion[0]  = MOTION1;/* Link source */
>         motionlink.motion[1]  = MOTION2;/* Link target* /

>         /* Interpolate from last frame of MOTION1 to 1.5 frames of MOTION2*/
>         motionlink.frame[0]   = MOTION1->nbFrame-1;
>         motionlink.frame[1]   = 1.5;
>                           :
>         /* rate specifies 0 to 1 */

>         njCnkSimpleDrawMotionLink( OBJECT, &motionlink, rate );

>         rate   += 0.01f;
>         if ( rate > 1.0f ) {
>             rate = 0.0f;
>         }
>     }

### 備考

> 本関数は、他のモーションリンク描画関数と描画関数以外は完全に共通です。

### 参照

> njCnkSimpleDrawObject() | CHUNKオブジェクトのSIMPLE描画
> njCnkSimpleDrawMotion() | モーションの描画(CHUNK-SIMPLE)
> njCnkSimpleDrawShapeMotion() | シェープモーションの描画(CHUNK-SIMPLE)
> njCnkEasyDrawMotionLink() | モーションリンクの描画(CHUNK-EASY)
> njCnkEasyMultiDrawMotionLink() | モーションリンクの描画(CHUNK-EASY MULTI)
> njCnkSimpleMultiDrawMotionLink() | モーションリンクの描画(CHUNK-SIMPLE MULTI)

njCnkSimpleDrawMotionLink

COPYRIGHT © SEGA ENTERPRISES, LTD., 1998-2000