void njCnkEasyDrawMotion( object, motion, frame )
const NJS_CNK_OBJECT *object
const NJS_MOTION *motion
Float frame
object チャンクオブジェクト構造体へのポインタ motion モーション構造体へのポインタ frame フレーム番号(0〜モーションフレーム数(motion->nbFrame)未満)
なし
引数 frame で示される位置の姿勢データを、モーションデータのキーフレーム間を補間して 作成し、その姿勢データに基づいてオブジェクトツリー全体を描画します。
例: フレーム数(motion->nbFrame)が10のモーションの場合
引数 frame の範囲と補完のされ方をまとめると次のように成ります。
- 引数 frame の取り得る範囲は0以上10未満(9.9999)となります。
- 引数 frame を0.5とすると、0フレーム目と1フレーム目の中央のモーションを補完して描画します。
- 引数 frame が9以上10未満(9.9999)の補完は、最後のキーフレームと最初のキーフレーム間の補完となります。
引数 frame の範囲 補完のされ方 frame < 0 暴走はしませんが通常は使いません。 0 <= frame <= motion->nbFrame - 1 通常の補完 motion->nbFrame - 1 <= frame < motion->nbFrame 最後のキーフレームと最初のキーフレームの補完 motion->nbFrame <= frame 暴走はしませんが通常は使いません。
#define OBJECT object_sample #define MOTION motion_sample extern NJS_CNK_OBJECT OBJECT[]; extern NJS_MOTION MOTION[]; : { njCnkEasyDrawMotion( MOTION, ff ); ff += 0.2f; if ( ff >= MOTION->nbFrame ) { ff -= MOTION->nbFrame; } } :
- チャンクオブジェクト構造体用のモーションです。
- 本関数は、Ninja1 での Old系のMotion関数に互換性が有り、回転がAngle形式で表現されている場合、補完は角度が近い方に行われます。
njCnkEasyDrawObject() CHUNKオブジェクトのEASY描画 njCnkEasyDrawModel() CHUNKモデルのEASY描画 njCnkSimpleDrawMotion() モーションの描画(CHUNK-SIMPLE) njCnkEasyMultiDrawMotion() モーションの描画(CHUNK-EASY MULTI) njCnkSimpleMultiDrawMotion() モーションの描画(CHUNK-SIMPLE MULTI)