・概要
操作キャラクター(以下、「ゼロ」)に関して解説する。
「アクションの状態」や、「各種地形との接触判定」などの処理は、敵やボスにも応用している。
・ゼロのMCの構造
ゼロのMCの構造は、以下の通りとなる。ゼロのhitrectは2種類ある。
zero(ゼロのMC)
┣zero_AA(ゼロのAA)
┃┣zero_AA_normal(「通常状態」のAA)
┃┣zero_AA_dying(「通常状態(瀕死)」のAA)
︙︙(アクションの状態関連のAA)
┃┣zero_AA_buster_normal(「通常状態、バスター」のAA)
︙︙(バスター関連のAA)
┃┣zero_AA_saber_normal_1(「通常状態、セイバー1段目」のAA)
︙︙(セイバー関連のAA)
┃┣zero_AA_charge_saber_normal(「通常状態、チャージセイバー」のAA)
︙︙(チャージセイバー関連のAA)
┃┣zero_AA_ex_saber_rising_slash(「EX上昇斬り」のAA)
︙︙(EXセイバー関連のAA)
┃┣zero_AA_damage_front(「被ダメージ状態(前方)」のAA)
┃┗zero_AA_damage_back(「被ダメージ状態(後方)」のAA)
┣zero_hitrect(ゼロのhitrect(本体))(ここにASを記述する)
┃┣zero_hitrect_normal(「ダッシュ・エアダッシュ以外」のhitrect)
┃┗zero_hitrect_dash(「ダッシュ・エアダッシュ」のhitrect)
┗zero_front_hitrect(ゼロのhitrect(前方))
↓ゼロのAA(それぞれにモーションを設定している)。
↓ゼロのAAのモーションの例(zero_AA_charge_saber_normal)。
↓ゼロのhitrect(本体のみ表示)。「ダッシュ・エアダッシュ以外」(縦長の長方形)と「ダッシュ・エアダッシュ」(正方形)で、hitrectの形状が異なる。
・ゼロのhitrect
ゼロのhitrectは2種類ある。
↓「zero_hitrect」。「ゼロのhitrect(本体)」。大半の地形・敵・アイテムなどとの接触判定を取得するためのhitrect。「・ゼロのMCの構造」の動画で示した通り、2種類ある。
↓「zero_front_hitrect」。「ゼロのhitrect(前方)」。(壁蹴り関連で)壁との接触判定を取得するためのhitrect。詳細は
壁の「・壁蹴りを可能にする判定」を参照。
・ゼロのMCの出現
・ゼロのASの構成
ゼロのASの構成の概要は、下記の通りとなる(エフェクト関連は省略)。操作キャラクターということもあり、全ASの中でも最も長く複雑な構成となっている。
また、「#include」を多用している。
ゼロのAS
┣loadの処理
┗enterFrameの処理
┣一時停止判定がある場合(処理を行わない)
┣イベント停止判定がある場合の処理
┗一時停止判定がない場合の処理
┣各キーの入力に関する判定(1)
┣重力加速度の付加、速度の制限
┣hitrectの変化の処理
┣各種「アクションの状態」関連の処理、その他のアクションの移行
┣各種の値のリセット
┣イベント停止判定がある場合の処理
┣バスター発射、セイバー発動
┣各種地形・敵関連の処理、方向の反転・移動
┣無敵時間のカウント
┣一時停止判定を付加するための処理、ポーズメニューの出現
┣簡易属性変更
┗各キーの入力に関する判定(2)
・loadの処理
・・キー入力
・・hitrectを非表示にするための処理
hitrectを非表示にするための処理。敵やアイテムなどのMCにおいても同様の処理をしている。
ASのファイル:zero_load.txt
this._visible=false //hitrect(本体)を非表示にする
_parent.zero_front_hitrect._visible=false //hitrect(前方)を非表示にする
・・位置
「_root.zero_x」「_root.zero_y」は、ゼロの位置(x・y方向)を保存するための変数である。
この変数は、様々なMCから参照される。
・・速度
なお、「loadの処理」において設定されている各種アクションなどの「速度」の値は、方向が「右」の場合を基準としている。
・・加速度・減速度
・・方向
「_root.zero_direction」はゼロの方向である。
ASのファイル:zero_load.txt
if(_root.zero_direction!=-1){_root.zero_direction=1} //ゼロの方向(1:右,-1:左)(出現元のMCが指定していない場合は1)
上記のように、「右方向」を「1」、「左方向」を「-1」と定義すると記述を簡略化できる。「・方向の反転・移動」の「・・方向の反転」を参照。
ゼロが出現する際に、出現元のMC(
ボード)が「-1」と指定していない場合は、「1」となるように設定している。
・・アクションの状態
「・アクションの状態」を参照。
ここでは、初期値として「"normal"」(通常状態)を代入している。
・・その他
・アクションの状態
・・概要
「_root.zero_action」は、ゼロのアクションの状態である。
「通常状態」の場合は「"normal"」、「歩き」の場合は「"walk"」、「ジャンプ」の場合は「"jump"」、「ダッシュ」の場合は「"dash"」、…となる。
↓「_root.zero_action」とゼロのアクションの状態(歩き、ジャンプなど)が対応していることが分かる。
それぞれのアクションの状態に関する詳細な解説は、それぞれの項目において行う。
・・アクションの移行
上の動画にもある通り、アクションの状態は移り変わる。
この解説では、「あるアクションの状態(A)」から「別のアクションの状態(B)」になる場合、「AからBに移行する」と表現している。
例えば、「通常状態」からは、「ジャンプ」「ダッシュ」「歩き」などに移行できる。また、敵との接触判定がある場合には、「被ダメージ状態」などに移行する。
アクションの移行に関する詳細な解説は、それぞれの項目において行う。
・方向の反転・移動
・・概要
「アクションの状態」などにおける処理の結果、ゼロの方向や速度の値が決定される。そして、これらの値に基づき、方向の反転・移動を行う。
・・方向の反転
ASのファイル:zero.txt
_parent._xscale=100*_root.zero_direction
「_parent._xscale」は、「_root.zero_direction=1」(ゼロが右向き)の場合、「100*1」となり、「_root.zero_direction=-1」(ゼロが左向き)の場合、「100*(-1)=-100」となる。
このように、(条件文を記述しなくとも)「*_root.zero_direction」を作用させるだけで済むので、記述を簡略化できる。
・・移動
ASのファイル:zero.txt
_parent._x+=_root.velocity_zero_x;_parent._y+=_root.velocity_zero_y //移動(地形による位置調整の前)
「地形による位置調整の前」とある通り、この処理の後で、「地形による位置調整」が行われ、ゼロの最終的な位置が確定する。
最終更新:2020年12月19日 09:29