Projectile

 

これは東西かまわず挌闘ゲームに無くてはならない”飛び道具”を作り出すステートです

ひとくくりに飛び道具と言ってもそれはたくさんのものを”飛び道具”と呼び

古くはエネルギー弾、ミサイル、レーザー、サイン色紙、果ては人までを飛び道具とくくる、

挌闘ゲーム特有のくくりです(まぁ、ある意味、人間大砲はありかもしれんが・・)

 

このステートを使うと一般的な飛び道具を作ることができます

しかし、あくまで簡易的なものだというのを覚えておいてください

もっと複雑な動き”誘導、AI、特殊な制限”などを付加するにはヘルパーで作らないといけないのです。

ヘルパーは使えるといろんなことに活用できるので気が向いたら挑戦してみてください

 

と言うわけでprojectileのステート解説に移りますが、またまた地球は写植の人です

情報提供者のあだむすきーさんに感謝します。


projectileとは飛び道具を制御するステート

必須パラメータ無し


※「任意」は自分が好きな数字を決める

※「必須」は必ず書かないといけないオプション

※「デフォルト」は指定しなかった時のそのオプションの状態

※1はヘルパーにあるpoatypeを参照して下さい

指定できるオプション 指定する値 説明 デフォルト 必須
ProjID 任意 発射物のID(識別番号)を指定します  
Projanim 任意 発射物のanimを指定します  
Projhitanim 任意 ヒットした時のanimを指定します -1(変化無し)  
Projremanim 任意 消滅した時のanimを指定します(時間で消えるものなどに使用) projehitanimを代用  
Projcancelanim 任意 相殺した時のanimを指定します projeremanimを代用  
Projremove 0 or 1 相殺されるかを指定します 1(相殺あり)  
Projremovetime 任意 どれぐらいで消滅するかを指定します -1(消滅無し)  
Velocity 任意 飛び道具の初速度を指定します  
Removevelocity 任意 消滅する時の速度を指定します    
Accel 任意 後からかかる速度を指定します(徐々に加速や減速など)    
VelMul 任意 速度にかかる乗数を指定します    
Projehits 任意 何回ヒットするかを指定します(多段ヒット技など) 1  
Projemisstime 任意 多段ヒットする間隔を指定します    
Projepriority 1 to 7 発射物の優先度を指定します。発射物が互いにぶつかったときに優先度の
低いものは、うち消されます。その時に高い方の優先度も減少します。
3  
Projespriority 1 to 7 画像の優先度を指定します 3  
Projedgebound 任意 画面端からどのくらいで消滅するかを指定します 40  
Projstagebound 任意 ステージの端からどのぐらいで消滅するかを指定します 40  
Projheightbound 任意 発射物が到達できる高さの範囲を指定します。順に最小値,最大値で指定
してください。
1,-240  
Offset 任意 発生時の座標を指定します    
Postype ※1 どこを基準に発生させるかを指定します    
Projshadow 任意 影をつけるなら赤*,緑*,青*で指定します(黒は255,255,255)    
Supermovetime 任意 superpause中にフリーズを解除された発射物が動けるフレーム数を指定
します。デフォルトは0
   
Pasusemovetime 任意 pausetime版です。    

上記のステートを作り、合わせてhitdefを作れば飛び道具の完成です。

 

 


そしてこっからはヘルパーで飛び道具を作る方法を紹介です。

ご多分にもれずあだむすきーさんの情報を写植しております


 複雑な動きをする飛び道具の場合はhelperを使用します。使用法はステート図書館を
 参照して下さい。ここでは、流れを説明します。
 a.発生 Helperの命令を使って飛び道具を発生させて下さい
 b.消滅 Helperで生み出した発射物は自然に消えてはくれません。DestroySelfの命令を使って
      消滅させて下さい。また、発射物が当たって消滅Stateに移行した場合でもその先で
      指定して下さい。
 
以下、簡単な例を挙げておきます



[Statedef 10000]
type = A
movetype = A
physics = N
velset = 4,0
anim = 10000

[State 10000, 1];殴られたり投げられたりしないように設定
type = NotHitBy
trigger1 = Time >= 0
value = SCA, NA, SA, HA, NT, ST, HT

[State 10000, 3];相殺する場合、消滅ステートに移行
type = HitOverRide
trigger1 = Time = 0
time = -1
attr = SCA, NP, SP, HP
slot = 0
stateno = 10010

[State 10000, 4];当たったりガードされた場合に消滅ステートへ
type = ChangeState
trigger1 = MoveHit = 1
trigger2 = MoveGuarded = 1
value = 10010

[State 10000, 5];省略
type = Hitdef

[State 10000, 6];画面端で指定したところまで来たら消滅させる
type = DestroySelf
trigger1 = FrontEdgeDist <= -20



[Statedef 10010];消滅ステート
type = A
movetype = N
anim = 10010 ←消滅時のAnimを指定
velset = 2,0

[State 10010, 1]
type = DestroySelf
trigger1 = AnimTime = 0


3.飛び道具の発射数を制御する
 これはcmd内で設定しましょう。triggerにNumHelper(***) = 0とかNumProj(***) = 0
みたいに設定して下さい