・コンセプト
・・概要
ロックマンX2におけるアジールフライヤーの強化版。ネタ要素が強すぎるため、戦ってもあまり面白くないボスかもしれない。
ちなみに、EXは、例の「昇龍拳」に対する報復らしい。だったらエックスにやれよ(正論)。
・・アドリブ性の要求
このボスには、「空中からの攻撃」「落下後の攻撃」の2つのパターンの攻撃があるが、それに応じて回避方法も変わる。「落下後の攻撃」の場合は、ボスと接触しないように回避する必要がある。
・・バランス調整
空中にいる場合は、セイバーコンボを入れることはできないが、落下させることにより、セイバーコンボを入れられるように調整している。ただし、「落下後の攻撃」に警戒する必要がある。
ボスは、EXにより、足場を消滅させる。これにより、攻撃の回避の難易度が上昇する(はず)。
・通常状態
・・概要
このボスは、
通常状態においても加速度が付加される。また、一定のタイミングで敵(落下する炎)を出現させる。
・・加速度の付加
加速度を付加する。x方向は、ゼロの方向に加速度が付加され、y方向は、上下に揺れるように加速度が付加される。
ASのファイル:boss_agile_flyer_action_normal.txt
_root.velocity_boss_x+=acceleration_boss_fly_x*enemy_direction //加速度を付加
if(_root.velocity_boss_x>velocity_boss_fly_x){_root.velocity_boss_x=velocity_boss_fly_x} //速度の制限
else if(_root.velocity_boss_x<-velocity_boss_fly_x){_root.velocity_boss_x=-velocity_boss_fly_x}
_root.velocity_boss_y+=acceleration_boss_fly_y //加速度を付加
if(_root.velocity_boss_y>velocity_boss_fly_y){acceleration_boss_fly_y*=-1} //速度が一定の値より大きくなった場合,方向反転
else if(_root.velocity_boss_y<-velocity_boss_fly_y){acceleration_boss_fly_y*=-1}
・・EX拳の前の位置調整への移行
ボス戦開始直後・ライフが1/2以下の場合は、EX拳の前の位置調整に移行する。
ASのファイル:boss_agile_flyer_action_normal.txt
if(count_boss_time==1 and (count_boss_ex_fist==0 or (_root.boss_life<=_root.boss_initial_life/2 and count_boss_ex_fist==1))){ //カウントが1の場合,EX(ボス戦開始直後・ライフが1/2以下の場合)
count_boss_ex_fist++ //EX拳の回数を増加させる
︙
_root.boss_action="position_adjustment_before_ex_fist" //EX拳の前の位置調整に移行
}
・・敵の出現
カウントが特定の値の場合は、敵(落下する炎)の出現の処理を行う。
・・乱数でアクションを選択
カウントが最大値の場合は、乱数でアクションを選択する。
・落下前の追尾
・・概要
ゼロの位置の方向に速度を付加し、ゼロが近接した場合は、落下に移行する。
落下する位置を適切に誘導しないと、「落下後の攻撃」の回避が困難になる場合がある。
・落下
・・概要
落下し、床と
接触判定がある場合は、敵(拡散炎)を出現させる。
また、「落下判定」を付加する。
「落下後の攻撃判定」がない場合は、乱数でアクションを選択し、「落下後の攻撃判定」を付加する。「落下後の攻撃判定」がある場合は、上昇に移行し、「落下後の攻撃判定」をリセットする。
この処理により、「落下後の攻撃を行う」「(落下後の攻撃を行わずに)上昇に移行」を、交互に繰り返すことになる。
↓落下→上昇。
ASのファイル:boss_agile_flyer_action_falling.txt
if(boss_falling_attack==0){ //落下後の攻撃判定がない場合
enemy_random=Math.floor(Math.random()*100) //乱数でアクションを選択
︙
boss_falling_attack=1 //落下後の攻撃判定
}
else{
_root.boss_action="rising" //上昇に移行
boss_falling_attack=0 //落下後の攻撃判定をリセット
}
・上昇
・・概要
上昇し、初期位置に近接した場合は、通常状態に移行する。
また、「落下判定」をリセットする。
ASのファイル:boss_agile_flyer_action_rising.txt
if(_parent._y<=initial_boss_y){_parent._y=initial_boss_y;_root.velocity_boss_y=0;_root.boss_action="normal"} //初期位置に近接した場合,通常状態に移行
・突進
・・概要
左右に突進する。
突進中は、ダメージ関連の処理を行わない。「・ボスと攻撃との接触判定がある場合の処理」の「・・突進以外の場合」を参照。
ガード用のMCの出現に関しては、
ボスの「・ガード」を参照。
↓突進(「落下後の攻撃」)。回避は慣れないとシビアかもしれない。
・・壁との接触判定がある場合
壁との接触判定がある場合は、「突進における壁との接触回数」を増加させ、敵の方向を反転させ、速度を付加する。速度は、「突進における壁との接触回数」によって変化する。
また、敵(壁に沿う炎、落下する炎)を出現させる。
ASのファイル:boss_agile_flyer_action_rush.txt
else if(hit_wall_right!=0 or hit_wall_left!=0){ //壁との接触判定がある場合
count_boss_hit_wall++ //突進における壁との接触回数を増加させる
enemy_direction*=-1 //反転
_root.velocity_boss_x=(velocity_boss_rush-count_boss_hit_wall*velocity_boss_rush/15)*enemy_direction //速度を付加
︙
}
「突進における壁との接触回数」が最大値の場合、「落下判定」がある場合は上昇に移行し、「落下判定」がない場合は位置調整に移行する。
ASのファイル:boss_agile_flyer_action_rush.txt
if(count_boss_hit_wall==count_boss_hit_wall_max){ //突進における壁との接触回数が最大値の場合
count_boss_time=0 //カウントをリセット
count_boss_hit_wall=0 //突進における壁との接触回数をリセット
_root.velocity_boss_x=0
if(boss_falling==1){_root.boss_action="rising"} //上昇に移行
else{_root.boss_action="position_adjustment"} //位置調整に移行
}
・ミサイル(小)
・・概要
ミサイル(小)を2基×2セット発射する。
「空中からの攻撃」の場合は、ミサイル(大)に移行する。
↓ミサイル(小)(「落下後の攻撃」)。
・・ミサイル(小)
発射後は、ゼロの方向に加速度が付加される。
また、ミサイルの角度(回転)は、ミサイルの速度の方向と一致するようにしている。
ASのファイル:boss_agile_flyer_missile_small.txt
else if(count_enemy_time>=count_enemy_wait_time_max){ //カウントが特定の値以上の場合
radian_enemy=Math.atan2(_root.zero_y-_parent._y,_root.zero_x-_parent._x) //ゼロとの角度を算出
velocity_enemy_x+=accerelation_enemy*Math.cos(radian_enemy);velocity_enemy_y+=accerelation_enemy*Math.sin(radian_enemy) //加速度を付加
_parent._rotation=(Math.atan2(velocity_enemy_y,velocity_enemy_x)/Math.PI)*180+90 //回転
}
カウントが特定の値以上の場合は、直進する。
ASのファイル:boss_agile_flyer_missile_small.txt
if(count_enemy_time>=count_enemy_go_straight_time){ //カウントが特定の値以上の場合
velocity_enemy_x+=accerelation_enemy*Math.cos(radian_enemy);velocity_enemy_y+=accerelation_enemy*Math.sin(radian_enemy) //加速度を付加
_parent._rotation=(Math.atan2(velocity_enemy_y,velocity_enemy_x)/Math.PI)*180+90 //回転
}
地形かゼロとの接触判定がある場合、破壊判定が付加される。そして、ミサイル(小)の爆発を出現させる。ただし、雷属性の攻撃で破壊された場合は、出現させない。
ASのファイル:boss_agile_flyer_missile_small.txt
if(enemy_break!="none"){ //破壊判定がある場合
if(enemy_hit_attack_element!="thunder"){ //雷属性以外で破壊された場合
enemy_appearance_name="boss_agile_flyer_missile_small_explosion"
#include "zero_AS/enemy/enemy_appearance.txt"
︙
}
}
・・ミサイル(小)の爆発
ミサイル(小)の爆発は、カウントが特定の値の場合、透明度の変化の値を変化させ、敵の攻撃のダメージを0にする。
ASのファイル:boss_agile_flyer_missile_small_explosion.txt
if(count_enemy_time==count_enemy_vanish_time){add_alpha_enemy=-5;enemy_attack_damage=0} //カウントが特定の値の場合,透明度の変化の値を変化・敵の攻撃のダメージを0にする
・ミサイル(大)
・・概要
処理の順序は、ボスが照準を出現させる→照準がミサイル(大)を出現させる→ミサイル(大)がミサイル(大)の爆発を出現させる、となる。
ミサイル(大)とミサイル(大)の爆発は、連鎖値を高く設定している。
↓ミサイル(大)(「落下後の攻撃」)。
・・照準
カウントが最大値未満の場合は、ゼロを追尾する。
カウントが最大値の場合、ミサイル(大)を出現させる。
・・ミサイル(大)
分かりにくいとは思うが、画面奥から手前に向かってくる(ように見える)紫色のMCがミサイル(大)。
スケールが一定の値となった場合、敵の攻撃のダメージを変化させる。更にスケールが大きくなった場合、破壊判定を付加する。
破壊判定がある場合は、ミサイル(大)の爆発を出現させる。
・・ミサイル(大)の爆発
「・ミサイル(小)」の「・・ミサイル(小)の爆発」とほぼ同様の処理を行っている。
・位置調整
・・概要
初期位置(y方向)まで位置調整し、通常状態に移行する。
・EX拳の前の位置調整
・・概要
初期位置(x方向)まで位置調整し、EX拳に移行する。
・EX拳
・・概要
もっとマシな技名はなかったのだろうか?
左右に拳を出現させ、落下させる。
↓EX拳。ダメージは即死級。初見殺し。
・・EX拳の出現
EX拳の出現の際に、「EX拳の回数」を伝達する。
ASのファイル:boss_agile_flyer_action_ex_fist.txt
enemy.enemy_hitrect.count_boss_ex_fist=count_boss_ex_fist //EX拳の回数を伝達
・・EX拳
床との接触判定がある場合、地形無効判定を付加する。「EX拳の回数」により、「地形無効の番号」を変化させている。
地形無効に関しては
地形無効を参照。
↓床・壁には「地形無効の番号」の記述をしている。
ASのファイル:boss_agile_flyer_ex_fist.txt
if(count_boss_ex_fist==1){_root.landform_invalidate[1-1]=1} //地形無効判定の付加
else{_root.landform_invalidate[2-1]=1}
・雷落下
・・概要
「・ボスと攻撃との接触判定がある場合の処理」の「・・雷落下への移行」を参照。
雷落下の間は、敵の攻撃のダメージを減らしている。カウントが最大値の場合は、敵の攻撃のダメージを元に戻し、上昇に移行する。
・ボスと攻撃との接触判定がある場合の処理
・・雷落下への移行
突進中に、雷属性攻撃との接触判定がある場合は、雷落下に移行する。
この処理は、連鎖値とは無関係に行われる。例えば、セイバーの攻撃による無敵時間の間でも、分裂ソニックによって、雷落下に移行させることができる(ただし、分裂ソニックによるダメージは入らない)。
↓突進→雷落下。大ダメージを与えるチャンスになる。
ASのファイル:boss_agile_flyer_hit_attack.txt
if(_root.boss_action=="rush"){ //突進の場合
if(enemy_hit_attack_element=="thunder"){ //雷属性攻撃の場合
︙
_root.boss_action="thunder_falling" //雷落下に移行
}
}
・・突進以外の場合
突進以外の場合は、(通常通り)ダメージ関連の処理を行う(=突進の場合は、ダメージ関連の処理を行わない)。
ASのファイル:boss_agile_flyer_hit_attack.txt
if(_root.boss_action!="rush" and enemy_chain>enemy_chain_old){ //連鎖値が大きい場合
︙
}
最終更新:2020年12月19日 09:26