Ninja Library - モーション関数

njStartMotionLink

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

書式

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 );
}

備考


参照

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

njStartMotionLink
COPYRIGHT © SEGA ENTERPRISES, LTD., 1998-2000