void njStartMotionLink( motion_link, rate )
const NJS_MOTION_LINK *motion_link
Float rate
motionlink モーションリンク構造体へのポインタ rate 補完レイト(0〜1)
なし
カレントモーションリンクパラメータを設定します。リンク元のモーション情報が0番スロット、リンク先のモーション情報が1番スロット に格納されます。
本関数を呼び出すと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 ); }
- 本関数は0番スロットと1番スロットのモーション情報構造体に情報を設定します。
- 本関数を呼び出すとカレントモーション情報構造体は0番スロットに設定されます。
njStartMotionObj() 0番スロットへのオブジェクトモーションパラメータの設定 njGetMotionLinkNodeData() 現在のモーションリンクパラメータにおいてのカレントノードの姿勢情報の取得 njMotionLinkTransformEx() 現在のモーションリンクパラメータにおいてのカレントノードのマトリックス作成 njSetNextMotionNodeEx() モーションのカレントノードの更新 njSetCurMotionInfoSlot() カレントモーション情報構造体のスロット番号の指定