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

# njStartMotionLink

モーションリンクパラメータの設定

### 書式

> `void njStartMotionLink( motion_link, rate )
> const NJS_MOTION_LINK *motion_link
> Float rate
> `

### 引数

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

### 戻り値

> なし

### 解説

> カレントモーションリンクパラメータを設定します。

> リンク元のモーション情報が０番スロット、リンク先のモーション情報が１番スロット に格納されます。

> 本関数を呼び出すと０番スロットのカレントノードも１番スロットのカレントノードも、共に NJS_MDATA(n) 配列の先頭の要素に対応するノードに設定されます。

> モーション情報のスロットについては、njSetCurMotionInfoSlot() 関数も参照してください。

> 本関数は、njGetMotionLinkNodeData() 関数などを呼び出す前に使用します。

### 用例

>     void UserDrawMotionLink( const NJS_CNK_OBJECT *object, const NJS_MOTION_LINK *motion_link, Float rate )
>     {
>         //  これから処理する内容を設定
>         njStartMotionLink( motion_link, rate );

>         //  モーションリンク描画開始
>         UserPushPopMotionLink( object );
>     }

>     void UserPushPopMotionLink( NJS_CNK_OBJECT *cnkobj )
>     {
>         do {
>             njPushMatrixEx();

>             njMotionLinkTransformEx( cnkobj );

>             if ( ( cnkobj->model != NULL ) && ( !( cnkobj->evalflags & NJD_EVAL_HIDE ) ) ) {
>                 njCnkEasyDrawModel( cnkobj->model );
>             }

>             if ( cnkobj->child != NULL ) {
>                 UserPushPopMotionLink( ( NJS_CNK_OBJECT* )cnkobj->child );
>             }

>             njPopMatrixEx();

>             cnkobj = cnkobj->sibling;
>         } while ( cnkobj != NULL );
>     }

### 備考

> - 本関数は０番スロットと１番スロットのモーション情報構造体に情報を設定します。
> - 本関数を呼び出すとカレントモーション情報構造体は０番スロットに設定されます。

### 参照

> njStartMotionObj() | ０番スロットへのオブジェクトモーションパラメータの設定
> njGetMotionLinkNodeData() | 現在のモーションリンクパラメータにおいてのカレントノードの姿勢情報の取得
> njMotionLinkTransformEx() | 現在のモーションリンクパラメータにおいてのカレントノードのマトリックス作成
> njSetNextMotionNodeEx() | モーションのカレントノードの更新
> njSetCurMotionInfoSlot() | カレントモーション情報構造体のスロット番号の指定

njStartMotionLink

COPYRIGHT © SEGA ENTERPRISES, LTD., 1998-2000