・概要

 基本的な処理は、とほぼ同様である。
 ここでは、ボスに特有の処理に関して解説する。

 ボスの個別の解説に関しては、それぞれのボスの項目を参照。

・ボスを制作するにあたっての個人的な思想

・・アドリブ性の要求

 ボスの行動への対処には、”ある程度”のアドリブ性が要求されるようにしている。
ボスのアクションの選択には、ランダム性を持たせている
ゼロの位置・ボスの位置などの変化に合わせて、攻撃などへの対応の方法が変化するようにしている。
ボスのライフの変化に応じて、速度・ダメージ・範囲などが変化する攻撃がある。
ボスがEX(使用回数に制限がある特殊な攻撃)を使用する前後で、ボスの行動が変化する場合がある。

 このような思想があるため、個人的には、「パターンハメなどで容易に撃破できるボス」「攻撃などの位置が固定されたボス」「アクションの順序が固定されたボス」をあまり好まない。

 ただし、”ある程度”の規則性を持たせる場合もある(「特定のアクション」をn回行うごとに、「(別の)特定のアクション」を行う、など)。これは、理不尽な難易度にならないようにするための措置となる。

・・バランス調整

 ボスに関しては「バランス調整」が極めて重要となる(一応、雑魚も重要だが)。
ボスには、”ある程度”の隙をもたせる。ただし、長すぎても良くない。
特定の条件(特定の状況で弱点属性での攻撃をヒットさせるなど)が満たされた場合に、攻撃チャンスが発生するようにしている。
ボスの攻撃のダメージ・範囲などの調整も重要となる

 極めて良くないことだとは思うが、テストプレイを繰り返す過程で、制作者がボスに慣れすぎてしまい、ついつい、ボスの強さを上方修正してしまう場合がある。これは本当に良くない…。

・ボスの出現

 敵の出現・消滅の「・敵の出現用のhitrectからの出現」も参照。

 ボスの場合は、「ボス判定」を付加する。この判定は、連鎖値の処理などで用いられる。

ASのファイル:boss_appearance_hitrect.txt
 
	enemy_appearance_name="boss_"+this._name	//敵の名前を取得
 
	#include "zero_AS/enemy/enemy_appearance.txt"
	enemy._x=_parent._x;enemy._y=_parent._y	//敵の位置調整
	enemy.enemy_hitrect.boss_identify=1	//ボス判定(0:ボス以外,1:ボス)
 

・loadの処理

・・概要

 基本的な処理は、とほぼ同様だが、ボスに特有の変数も存在する。
 これらの値は、他のMC(ボスが出現させた敵、ボスのライフゲージなど)から参照される

・・ボスの敵の番号

 「ボスの敵の番号」に「敵の番号」を代入する

ASのファイル:ボスのloadのAS
 
_root.boss_number=number_enemy	//ボスの敵の番号
 

・・ボスの位置

 「ボスの位置」を保存するための変数である。

ASのファイル:ボスのloadのAS
 
_root.boss_x=_parent._x;_root.boss_y=_parent._y	//ボスの位置
 

・・ボスのライフ

 「ボスのライフの初期値」「ボスのライフ」にライフを代入する

ASのファイル:ボスのloadのAS
 
_root.enemy_identify[number_enemy-1]=256	//敵の出現判定用の配列にライフを代入する
_root.boss_initial_life=_root.enemy_identify[number_enemy-1]	//ボスのライフの初期値
_root.boss_life=_root.boss_initial_life	//ボスのライフ
 

・ボスと攻撃との接触判定がある場合の処理

 敵と攻撃との接触判定がある場合の処理とほぼ同様の処理をしているが、ボスの場合は、ゼロが破壊されていない場合にのみ処理を行う(ゼロが破壊された後にボスが破壊されないようにするため)。

ASのファイル:ボスのAS
 
if(_root.zero_life>0){	//ゼロが破壊されていない場合}
 

・ガード

・・概要

 ボスの場合、ボス以外とは無敵時間が異なるため、の「・頻出する処理」の「・・ガード判定」のような処理を行うことができない。そこで、「ガード用のMC」を出現させることで対処している。

 ここでは、アジールフライヤーの突進の「ガード用のMC」を例にして解説する。

↓アジールフライヤーの突進の「ガード用のMC」。hitrectの大きさ等はボス本体に合わせている。

・・ガード用のMCの出現

 ガード用のMCを出現させる

ASのファイル:boss_agile_flyer_action_rush.txt
 
	enemy_appearance_name="boss_agile_flyer_rush_guard"
	#include "zero_AS/enemy/enemy_appearance.txt"
	guard_MC=enemy	//参照先を変数に保存
 

・・ガード用のMCの位置調整

 ボスの位置調整の処理の後で、ガード用のMCの位置調整を行う

ASのファイル:boss_agile_flyer.txt
 
		if(_root.boss_action=="rush"){guard_MC._x=_parent._x;guard_MC._y=_parent._y}	//ガード用のMCの位置調整
		else{guard_MC="none"}
 

・・ガード用のMCの消滅

 特定の条件が満たされた場合は、消滅させる

ASのファイル:boss_agile_flyer_rush_guard.txt
 
		if(_root.boss_action!="rush" or enemy_break=="other"){_root.enemy_identify[number_enemy-1]="none";_parent.removeMovieClip()}	//ボスのアクションの状態が突進ではない場合,破壊判定がある場合,消滅
 

・その他

・・ボスの位置

 ボスの位置を保存する。

ASのファイル:ボスのAS
 
_root.boss_x=_parent._x;_root.boss_y=_parent._y	//ボスの位置を保存
 

・・ボスのライフ

 ボスのライフを代入する。

ASのファイル:ボスのAS
 
_root.boss_life=_root.enemy_identify[number_enemy-1]	//ボスのライフを代入
 

最終更新:2020年12月19日 09:15