アニメスクリプトのテキスト

アニメシステム

(ディレクトリ)
mgs2/source/user/tanaka/anime/

(ファイル名)
　anime.h　 anime.c

(ツール)
　 animbin
　 これにより、構造体ANIMATIONを読み込み スクリプトの形に展開。
　 場所は mgs2/source/user/tanaka/anime/conv/ の下にあります。
　 make時にこれを 実行するようにします。
　 mgs2/source/user/tanaka/anime/ の下の makefileを参照してください。

/*********************************************************************/


まず、ANIMATIONの構造体は以下のようになっております。

typedef struct	{
	FVECTOR		pos ;				/* 位置 */
	FVECTOR		speed ;				/* スピード */
	short		scr_num ;			/* スクリプト番号 */
	short		s_anim ;			/* パターン番号 */
} PRESCRIPT ;

typedef	struct	{
	int		tex;		        /* テクスチャ番号 */
	short		texdev_x, texdev_y ;	/* テクスチャ分割数 */
	short		n_anime ;               /* アニメパターン数 */
	short		raise ;		        /* 表示優先 */
	short		size_w, size_h ;        /* サイズ */
	short		v ;			/* 輝度値 */
	short           amb ;                   /* 半透明属性(田中) */
	short           mode ;                  /* モード(田中)  */
	PRESCRIPT	*pre_script ;	        /* スクリプト前処理 */
	char		*script ;	        /* スクリプト */
} ANIMATION ;


●ANIMATION

 上から
   ･テクスチャID     
   ･テクスチャの縦と横の分割数  例） smoke  8,4
   ･上で分割したもののうち左上から使用するそのテクスチャ数
         smokeだと8*4 = 32 枚だが、使用しているのは 30 枚
      
   ･表示優先
   ･サイズ
   ･輝度値    （要するに色でこの数値が ｒ、ｇ、ｂに入る )
               つまり、初期カラーはr,g,b すべて同じ値。
   ･半透明属性 
   ･モード     
               ０  常にテクスチャ表示。
               １  主観時  非表示。
   
   ･スクリプト前処理
            ここで、PRESCRIPTを指す。
   ･スクリプト
            ここで、スクリプトを書きます。
            ちなみに anime.c の設定で、
            １つのANIMATIONで設定できるスクリプトのパターン数は 最大 ４つ
   
●PRESCRIPT
  ･位置        テクスチャの中心位置
  ･スピード
  ･スクリプト番号    
             どのスクリプトを使うかを指定。
             0 ～ (スクリプト数 - 1)
  ･パターン番号
             0 ～ （アニメパターン数 － １）

/*****************************************************************************/
(呼び出し)
　　NewAnime(world,where,anmform)
　　FMATRIX　　*world ;
　　int　　　　where ;
　　ANIMATION　*anmform ;

(現在存在するスクリプト)

"A"　 アニメのテクスチャの番号。
　　　　　n　　　 繰り返す。　　　　　　　　　　 An
　　　　　r　　　 ランダム。　　　　　　　　　　 Ar
　　　　　数値　　その場所のテクスチャを張る　　 A1



"W"　 ウエイト（待ち）時間
(未設定)　r　　　　ランダム　　　　　　　　　　　　　　 Wr　　 
　　　　　数値　　 値指定。(最大値 65536 ( 2バイト))　　W1

"P"　 場所指定
(未設定） r　　　　 ランダム　　　　　　　　　　　　　　 Pr
　　　　　ベクトル　値指定（すべての値のMAX 65536）　　　P0,80,-80

"M"　　移動
(未設定)　r　　　　 ランダム　　　　　　　　　　　　　　 Mr
　　　　　ベクトル　値指定（すべての値のMAX 65536）　　　M0,80,-80

"S"　　スピード設定
(未設定)　r　　　　 ランダム　　　　　　　　　　　　　　 Sr
　　　　　ベクトル　値指定（すべての値のMAX 65536)　　　 S0,80,-80

"G"　　　加速度
(未設定)　r　　　　 ランダム　　　　　　　　　　　　　　 Gr
　　　　　ベクトル　値指定（すべての値のMAX 65536)　　　 G0,80,-80


(未設定) "T"　　 半透明属性

"V"　　　色の増減　　　　　　　　　　　　　　 
　　　　　ベクトル　 色の増減値　　　　　　　　　　　　 V0,10,-10

"F"　　　光源設定
　　　　　数値　　　 光源設定(最大値 65536 ( 2バイト))　F1000
　　　　　

"Z"　　　拡大縮小
　　　　　数値(2つ)　大きさの変化量　　　　　　　　　　 Z30,30

"("　　　ループのかっこ
(未設定)　L　　　　　無限ループ
　　　　　数値　　　 値指定　(最大値 65536 ( 2バイト))　 (5

")"　　　ループの終了

"E"　　　終了。
　　　　　E　　　　　スクリプト終了　　　　　　　　　　　EE



参考として (ディレクトリ)内のソースを見てください。

/***********************************************************************/
(備考）
　･ ループの深さは、anime.cのMAX_LOOP 4 で指定しています。
　･ １つのANIMATIONで設定できるスクリプトの動きは MAX_SCRIPT 4  まで
　　設定できます。
　･ プリミティブのタイプは、絶対座標スプライト(DG_PRIM_ON_WORLD|DG_PRIM_SPRT3D2)
　　です。
　･ 現在1パケット１プリミティブです。

(追加)
　田中が追加した部分.

　anime.hのL24 
　　 short　 mode ;

　　 mode　 0　 主観モードでもアニメスクリプトを表示。
　　　　　　1　 主観モードではアニメスクリプトを非表示。

　　 
　anime.c 内の コメントで 田中と表示している個所。
