・概要
「ジャンプ」は、空中にいる状態(=着地していない状態)のことを指す。
↓ジャンプ。
・loadの処理
・・重力加速度
ジャンプ開始の「・loadの処理」の「・・重力加速度の算出」を参照。
・・速度
「・速度、方向」を参照。
ASのファイル:zero_load.txt
velocity_zero_walk_normal=2 //歩きの速度(通常)
︙
velocity_zero_dash=3.6 //ダッシュの速度
・重力加速度の付加
ゼロには重力加速度を付加している。この処理により、下方向に加速することになる。
水との
接触判定がある場合は、
水を参照。
ASのファイル:zero.txt
if(_root.zero_hit_water==0){_root.velocity_zero_y+=_root.gravity} //重力加速度を付加(水との接触判定がない場合)
・「_root.velocity_zero_y+=_root.gravity」:y方向の速度に、重力加速度の値を加算する。
・モーション
通常状態とほぼ同様の処理を行っている。
「上昇中」と「下降中」でモーションが異なる。
ASのファイル:zero_action_jump.txt
if(_root.zero_buster=="none" and _root.zero_saber=="none"){ //攻撃中ではない場合
if(_root.velocity_zero_y<0){_parent.zero_AA.gotoAndStop("zero_AA_jump_up")} //上昇中
else{_parent.zero_AA.gotoAndStop("zero_AA_jump_down")} //下降中
}
・「if(_root.velocity_zero_y<0)」:上昇中の場合。
・「else」:それ以外(=下降中)の場合。
・上昇中における下降への移行
上昇中にジャンプキーの入力がなくなった場合は、y方向の速度を0にする。この処理により、いわゆる「小ジャンプ」が可能になる。
バネに関しては、
バネを参照。
↓上昇中における下降への移行。
ASのファイル:zero_action_jump.txt
if(keydown_jump==0 and _root.velocity_zero_y<0 and zero_spring_jump==0){_root.velocity_zero_y=0} //上昇中にジャンプキーの入力がなくなった場合,y方向の速度を0にする(バネによるジャンプ判定がない場合)
・「keydown_jump==0」:ジャンプキーの入力がない。
・「_root.velocity_zero_y<0」:上昇中。
・「_root.velocity_zero_y=0」:y方向の速度を0にする(=下降に移行する)。
・速度、方向
・・概要
ジャンプ中のx方向の速度は、「ダッシュ属性がない場合」と「ダッシュ属性がある場合」の2種類あり、それぞれ「歩きの速度」と「ダッシュの速度」の値を用いている(原作準拠)。
歩きの「・他のアクションへの移行」の「・・歩きの継続、速度の付加、方向の変更」とほぼ同様の記述なので、詳細な解説は省略する。
↓x方向の速度の付加。
・・ダッシュ属性がない場合
ASのファイル:zero_action_jump.txt
if(_root.zero_dash==0){ //ダッシュ属性がない場合
if(keydown_right==1){_root.velocity_zero_x=velocity_zero_walk;_root.zero_direction=1} //右キーの入力がある場合,速度を付加,右向きに変更
else if(keydown_left==1){_root.velocity_zero_x=-velocity_zero_walk;_root.zero_direction=-1} //左キーの入力がある場合,速度を付加,左向きに変更
else{_root.velocity_zero_x=0} //x方向の速度を0にする
}
・・ダッシュ属性がある場合
ASのファイル:zero_action_jump.txt
else{ //ダッシュ属性がある場合
if(keydown_right==1){_root.velocity_zero_x=velocity_zero_dash;_root.zero_direction=1} //右キーの入力がある場合,速度を付加,右向きに変更
else if(keydown_left==1){_root.velocity_zero_x=-velocity_zero_dash;_root.zero_direction=-1} //左キーの入力がある場合,速度を付加,左向きに変更
else{_root.velocity_zero_x=0} //x方向の速度を0にする
}
・沈む地形から脱出した場合
・スプラッシュジャンプ、ホバリング、ダブルジャンプ、エアダッシュ
記述の通り、判定の優先順位は、「スプラッシュジャンプ>ホバリング>ホバリングの解除>ダブルジャンプ>
エアダッシュ」となる。
・他のアクションへの移行
・・壁ずり落ちへの移行
ここでは、「
氷の壁との接触判定がない場合」「風との接触判定がない場合」の解説をしている。
「氷の壁との接触判定がある場合」「風との接触判定がある場合」に関しては、それぞれ、
氷の壁、
風、コンベアを参照
下降中、壁との接触判定があり、壁に向かう方向の左右キーの入力がある場合、
壁ずり落ちに移行する。
↓壁ずり落ちへの移行。
ASのファイル:zero_action_jump.txt
if(_root.velocity_zero_y>=0 and ((_root.zero_hit_wall_right!=0 and keydown_right==1) or (_root.zero_hit_wall_left!=0 and keydown_left==1))){_root.zero_action="wall_slide"} //下降中,壁との接触判定があり,左右キーの入力がある場合,壁ずり落ちに移行
壁(右)の場合は、以下の通りとなる。
・「_root.velocity_zero_y>=0」:下降中。
・「_root.zero_hit_wall_right!=0」:壁(右)との接触判定がある。
・「keydown_right==1」:右キーの入力がある。
・「_root.zero_action="wall_slide"」:壁ずり落ちに移行する。
・・壁蹴りへの移行
ここでは、「氷の壁との接触判定がない場合」の解説をしている。
「氷の壁との接触判定がある場合」に関しては、
氷の壁を参照
「
壁蹴りを可能にする判定」があり、ジャンプキーの入力がある場合、壁蹴りに移行する。
「壁蹴りを可能にする判定」に関しては、
壁の「・壁蹴りを可能にする判定」を参照。このようにすることで、
壁と多少離れている場合においても、壁蹴りに移行できるようにしている(原作準拠)。
↓壁蹴りへの移行。
ASのファイル:zero_action_jump.txt
if(zero_wall_kick_enable!=0 and keydown_new_jump==1){ //壁蹴りを可能にする判定があり,ジャンプキーの入力がある場合
_root.zero_direction=zero_wall_kick_enable //ゼロの方向を修正
_root.zero_action="wall_kick" //壁蹴りに移行
}
・「_root.zero_direction=zero_wall_kick_enable」:ゼロの方向を修正する。これは、同時に左右キーの入力があった場合、逆向きに壁蹴りすることを回避するための処理となる。
なお、「壁ずり落ちへの移行」と「壁蹴りへの移行」に関しては、「壁蹴りへの移行」が優先されるようにしたほうが良い。そうしないと、ジャンプキーの入力をしても壁蹴りに移行できないフレームが生じることになる。
ここにおいても、「壁蹴りへの移行」に関して「壁ずり落ちへの移行」の後に記述することで、「壁蹴りへの移行」が優先されるようにしている。
・・床・傾斜床などとの接触判定がある場合
・・・概要
ジャンプ中に、床・
傾斜床などとの接触判定がある場合には、「通常状態」または「歩き」に移行する。
沈む地形に関しては
沈む地形を参照。
ASのファイル:zero_action_jump.txt
if(_root.zero_hit_floor!=0 or _root.zero_hit_sloped_floor!=0 or (_root.zero_hit_sink!=0 and _root.velocity_zero_y>0)){ //床・傾斜床・沈む地形(下降中)との接触判定がある場合
︙
}
・・・通常状態への移行(1)
「ジャンプチャージセイバー」のモーション中の場合は、通常状態に移行する。
同時に、「ジャンプチャージセイバー」から「通常状態のチャージセイバー」に移行させている(原作準拠)。詳細は、
セイバー発動の「・セイバーモーション(チャージセイバー)」の「・・ジャンプ開始・壁蹴り以外」の「・・・チャージセイバーの移行」を参照。
↓通常状態への移行(1)。
ASのファイル:zero_action_jump.txt
if(_root.zero_saber=="charge_jump"){_root.zero_action="normal"} //ジャンプチャージセイバーの場合,通常状態に移行
・・・歩きへの移行
左右キーの入力がある場合は、歩きに移行する。
↓歩きへの移行。
ASのファイル:zero_action_jump.txt
else if(keydown_right==1 or keydown_left==1){_root.zero_action="walk"} //左右キーの入力がある場合,歩きに移行
・・・通常状態への移行(2)
上記の条件が満たされない場合は、通常状態に移行する。
ASのファイル:zero_action_jump.txt
else{_root.zero_action="normal"} //通常状態に移行
最終更新:2020年12月12日 11:41