Ninja Library - モーション関数

njMotionLinkTransformEx

現在のモーションリンクパラメータにおいてのカレントノードのマトリックス作成

書式

void njMotionLinkTransformEx( cnkobj )
const NJS_CNK_OBJECT *cnkobj

引数

cnkobj   カレントノードに対応したチャンクオブジェクト構造体へのポインタ

戻り値

なし

解説

予め設定されているモーションリンク情報に従った カレントノードのモーション(移動・回転・スケール)をカレントマトリクスに反映させます。

本関数を実行する前に njStartMotionLink() でモーション情報を設定する必要が有ります。

本関数は njGetMotionLinkNodeData() 関数によって取得したノード情報に基づいて、マトリックス を作成します。

本関数と等価なソースコードが、njGetMotionLinkNodeData() 関数の用例欄に示されています。


用例

void UserDrawMotionLink( const NJS_CNK_OBJECT *object, const NJS_MOTION_LINK *motion_link, Float rate )
{
    njStartMotionLink( motion_link, frame );
    
    UserPushPopMotion( object );
}

void UserPushPopMotion( const NJS_CNK_OBJECT *cnkobj )
{
    do {
        njPushMatrixEx();
        
        njMotionLinkTransformEx( cnkobj );
        
        if ( ( cnkobj->model != NULL ) && ( !( cnkobj->evalflags & NJD_EVAL_HIDE ) ) ) {
            njCnkEasyDrawModel( cnkobj->model );
        }
        
        if ( cnkobj->child != NULL ) {
            UserPushPopMotion( ( NJS_CNK_OBJECT* )cnkobj->child );
        }
        
        njPopMatrixEx();
        
        cnkobj = cnkobj->sibling;
    } while ( cnkobj != NULL );
}

備考


参照

njStartMotionLink() モーションリンクパラメータの設定
njGetMotionLinkNodeData() 現在のモーションリンクパラメータにおいてのカレントノードの姿勢情報の取得
njSetNextMotionNodeEx() モーションのカレントノードの更新

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