・概要

 「ダッシュ」は、姿勢を低くしつつ、高速移動するアクションを指す。

↓ダッシュ。

 「(アクションの状態としての)ダッシュ」と「ダッシュ属性」は異なる概念であることに注意。「・ダッシュ属性」を参照。

 セイバーモーションに関しては、セイバー発動を参照。

 ここでは、「氷の床との接触判定がない場合」のみを解説する。「氷の床との接触判定がある場合」は氷の床を参照。

・loadの処理

・・速度

 「・速度」を参照。

ASのファイル:zero_load.txt
 
velocity_zero_dash=3.6	//ダッシュの速度
velocity_zero_dash_saber=2.7	//ダッシュセイバーの速度
︙
velocity_zero_ex_saber_dash_thrust=3.1	//EXダッシュ突きの速度
 

・・カウント

 「・ダッシュのカウント」を参照。

ASのファイル:zero_load.txt
 
_root.count_zero_dash=0	//ダッシュのカウント
count_zero_dash_max=29	//ダッシュのカウントの最大値
 

・・ダッシュ属性

 「・ダッシュ属性」を参照。

ASのファイル:zero_load.txt
 
_root.zero_dash=0	//ダッシュ属性
 

・・その他

 ダッシュ残像関連の変数。アクションと直接的に関係がないので、解説は省略する。

ASのファイル:zero_load.txt
 
_root.zero_dash_afterimage=0	//ダッシュ残像の出現判定
number_zero_dash_afterimage_max=2	//ダッシュ残像の個数の最大値
 

・hitrect

 ダッシュ(またはエアダッシュ)の場合は、hitrectが変化する。この処理により、敵の一部の攻撃を回避できる

↓ダッシュの場合は、hitrectが変化する。

ASのファイル:zero.txt
 
		if(_root.zero_action=="dash" or _root.zero_action=="air_dash"){this.gotoAndStop("zero_hitrect_dash")}	//ダッシュ・エアダッシュの場合
		else{this.gotoAndStop("zero_hitrect_normal")}	//それ以外の場合
 
・「if(_root.zero_action=="dash" or _root.zero_action=="air_dash")」:ダッシュ・エアダッシュの場合。
・「this.gotoAndStop("zero_hitrect_dash")」:ダッシュ・エアダッシュのhitrectに変化させる。
・「else{this.gotoAndStop("zero_hitrect_normal")}」:それ以外の場合は、ダッシュ・エアダッシュ以外のhitrect。

・モーション

 通常状態とほぼ同様の処理を行っている。

ASのファイル:zero_action_dash.txt
 
if(_root.zero_buster=="none" and _root.zero_saber=="none"){_parent.zero_AA.gotoAndStop("zero_AA_dash");_parent.zero_AA.zero_AA_dash.gotoAndStop(_root.count_zero_dash)}	//攻撃中ではない場合
 
・「_parent.zero_AA.zero_AA_dash.gotoAndStop(_root.count_zero_dash)」:ダッシュの場合、常に一定のモーションであるわけではないため、該当するカウント(「_root.count_zero_dash」)を指定する必要がある。このような記述をしないと、例えば、ダッシュバスターのモーションを終了した後で、ダッシュの初期のモーションをすることになる。

・ダッシュのカウント

 ダッシュ中は、ダッシュのカウントを増加させる

↓「_root.count_zero_dash」(ダッシュのカウント)の増加。

ASのファイル:zero_action_dash.txt
 
_root.count_zero_dash++	//ダッシュのカウントを増加させる
 

 カウントのリセットに関しては、各種の値のリセットの「・ダッシュ・エアダッシュ関連」を参照。

・ダッシュ属性

 「ダッシュ属性」は、「ダッシュ」「エアダッシュ」「ジャンプ」などに付加させることができる属性のことを指す。「ジャンプ」「壁蹴り」にダッシュ属性が付加している場合、それぞれ、「ダッシュジャンプ」「ダッシュ壁蹴り」となる。
 ダッシュ属性が付加されている場合は、速度が高速化する。また、このゲームでは、ダッシュ属性が付加している場合、ダッシュ残像が表示されるようにしている(部分的に原作準拠)。

↓ダッシュ属性の付加。

ASのファイル:zero_action_dash.txt
 
	_root.zero_dash=1	//ダッシュ属性
 

 ダッシュ属性の解除に関しては、各種の値のリセットの「・ダッシュ属性」を参照。

・速度

 ダッシュの速度は、セイバーモーションの状態によって変化する(原作準拠)。

ASのファイル:zero_action_dash.txt
 
	if(_root.zero_saber=="none"){_root.velocity_zero_x=velocity_zero_dash*_root.zero_direction}	//セイバーモーション中ではない場合の速度
	else if(_root.zero_saber=="dash"){_root.velocity_zero_x=velocity_zero_dash_saber*_root.zero_direction}	//セイバーモーション中(ダッシュセイバー)の速度
︙
 
 「セイバーモーション中ではない場合の速度」の場合は、以下の通りとなる。
・「if(_root.zero_saber=="none")」:セイバーモーション中ではない場合。
・「_root.velocity_zero_x=velocity_zero_dash*_root.zero_direction」:ゼロのx方向の速度に、「ダッシュの速度×ゼロの方向」を代入する。

・他のアクションへの移行

・・概要

 他のアクションへの移行に関しては、「セイバーモーション中の場合」と「セイバーモーション中ではない場合」で場合分けする必要がある。

ASのファイル:zero_action_dash.txt
 
if(_root.zero_saber!="none"){	//セイバーモーション中の場合}
else{	//セイバーモーション中ではない場合}
 

・・セイバーモーション中の場合

・・・概要

 セイバーモーション中の場合は、「ダッシュのカウント」の値に関係なく、セイバーモーションの時間のカウントの最大値以上となるまで(つまり、セイバーモーションが終了するまで)、ダッシュを継続させる(原作準拠)。
 これにより、原作における「セイバーによるダッシュの時間の延長」を再現している。

ASのファイル:zero_action_dash.txt
 
	if(_root.count_zero_saber_time>=_root.count_zero_saber_time_max){	//セイバーモーションの時間のカウントの最大値以上の場合}
 

↓通常状態や歩きへの移行(セイバーモーション終了後)。

・・・歩きへの移行

 左右キーの入力がある場合は、歩きに移行する。

ASのファイル:zero_action_dash.txt
 
		if(keydown_right==1 or keydown_left==1){_root.zero_action="walk"}	//左右キーの入力がある場合,歩きに移行
 

・・・通常状態への移行

 左右キーの入力がない場合は、通常状態に移行する。

ASのファイル:zero_action_dash.txt
 
		else{_root.zero_action="normal"}	//左右キーの入力がない場合,通常状態に移行
 

・・セイバーモーション中ではない場合

・・・ジャンプ開始への移行

 ジャンプキーの入力がある場合は、ジャンプ開始に移行する。

↓ジャンプ開始への移行。

ASのファイル:zero_action_dash.txt
 
	if(keydown_new_jump==1){_root.zero_action="jump_start"}	//ジャンプキーの入力がある場合,ジャンプ開始に移行
 

・・・歩き・通常状態への移行

 歩き・通常状態に移行する場合には、前提として、以下の2つの条件のいずれかが満たされる必要がある。
ダッシュキーの入力がなくなる
ダッシュのカウントが最大値以上になる。

ASのファイル:zero_action_dash.txt
 
	else if(keydown_dash==0 or _root.count_zero_dash>=count_zero_dash_max){	//ダッシュキーの入力がなくなった場合,カウントが最大値以上の場合}
 

 他の条件に関しては、「・・セイバーモーション中の場合」と同様なので、詳細な解説は省略する。

ASのファイル:zero_action_dash.txt
 
		if(keydown_right==1 or keydown_left==1){_root.zero_action="walk"}	//左右キーの入力がある場合,歩きに移行
		else{_root.zero_action="normal"}	//左右キーの入力がない場合,通常状態に移行
 

・クイックターン

 「クイックターン」は、ダッシュ中に方向転換することを指す。セイバーモーション中は実行できない。

↓クイックターン。

ASのファイル:zero_action_dash.txt
 
if(_root.zero_saber=="none"){	//セイバーモーション中ではない場合
	if(keydown_right==1){_root.zero_direction=1}	//クイックターン
	else if(keydown_left==1){_root.zero_direction=-1}
}
 
・「if(keydown_right==1)」:右キーの入力がある場合。
・「_root.zero_direction=1」:ゼロの方向を右向きにする。
 左キーの入力がある場合も同様の処理をしている。

・シャドウダッシュ

 フットチップの「・シャドウダッシュ」を参照。

最終更新:2020年12月19日 08:55