Ninjaライブラリ - モーション関数

njActionLink

モーションの結合

書式

void njActionLink( *actionlink, frame )
NJS_ACTION_LINK *actionlink
Float frame

引数

*actionlinkアクションリンク構造体へのポインタ
frameフレーム番号(0〜1)

戻値

なし

解説

2つのモーション構造体をつなげます。

モーションリンク構造体中のフレームはリンク元とリンク先のモーション・フレームで、 引数のフレームが0の時にリンク元のフレーム、1の時にリンク先のフレームのモーションにあり、 その他(0<ff<1)はリンク先とリンク元のフレームを補完します。


用例

#include <Shinobi.h>
#define	OBJECT	object_sample
#define	MOTION1	motion_sample1 /* nam に記載 */
#define	MOTION2	motion_sample2 /* nam に記載 */
#define	STEPS	60
extern NJS_MOTION	MOTION1[];
extern NJS_MOTION	MOTION2[];
NJS_MOTION_LINK	motionlink;
NJS_ACTION_LINK	actionlink;
	:
actionlink.motionlink = &motionlink;
actionlink.object = OBJECT;
motionlink.motion[0] = MOTION1;/*リンク元*/
motionlink.motion[1] = MOTION2;/*リンク先*/
/*MOTION1の最後のフレームからMOTION2の1.5フレームを補間*/
motionlink.frame[0] = MOTION1->nbFrame-1;
motionlink.frame[1] = 1.5;
	:
njActionLink( &actionlink, ff/STEPS ); /* フレームは0−1を指定 */
ff+=0.2f;
if( ff >= STEPS - 1 ) ff=0.f;
	:

備考

モーションが付いただけで、描画に関してはモデル描画と全く同様になります。 つまり、njControl3Dの設定はすべて同様になります。 モデル関数ではnjDrawObjectに対応しますので、光源は通常のライトとなります。

参照

njDrawMotionLink()
njFastActionLink()
njFastDrawMotionLink()
njSimpleActionLink()
njSimpleDrawMotionLink()

njActionLink
COPYRIGHT © SEGA ENTERPRISES, LTD., 1998