*object | CHUNKオブジェクト構造体へのポインタ |
*motion | モーション構造体へのポインタ |
*shape | モーション構造体へのポインタ(頂点アニメーション) |
frame | フレーム番号 |
フレーム番号には浮動小数点が使えるため、モーションデータの補間ができます。 フレーム数が10のモーションの場合、フレーム番号の範囲は0〜10未満(9.9999)となります。 例えば、フレーム番号を0.5とすると、0フレーム目と1フレーム目のちょうど真ん中の値を補完して描画します。 9〜10未満(9.9999)の補完は、最後のフレームと、最初のフレームの補完となります。
頂点アニメーションの対応している頂点型は下記のとおりです。
頂点 | NJD_CV, NJD_CV_D8, NJD_CV_UF, NJD_CV_NF, NJD_CV_S5, NJD_CV_S4, NJD_CV_IN |
頂点・法線 | NJD_CV_VN, NJD_CV_VN_D8, NJD_CV_VN_UF, NJD_CV_VN_NF, NJD_CV_VN_S5, NJD_CV_VN_S4, NJD_CV_VN_IN |
(スプライン補間は頂点のみ)
#include <Shinobi.h> #define OBJECT object_sample /* NJA(NAM)ファイル内に記述 */ #define MOTION motion_sample /* NAMファイル内に記述 */ #define SHAPE shape_sample /* NASファイル内に記述 */ extern NJS_CNK_OBJECT OBJECT[]; extern NJS_MOTION MOTION[]; extern NJS_MOTION SHAPE[]; float buf[10000]; float ff=0.f; : njInitShape(buf); : njCnkDrawShapeMotion( OBJECT,MOTION,SHAPE,ff ); ff+=0.2f; if( ff >= (MOTION->nbFrame-1) ) ff=0.f; :