今日の進捗~ボスの行動パターン完成~
昨日から色々微調整して納得できる形になったので、開発メモとして残します。
リレー式に行動パターンを切り替える
今回NPCに様々な行動を取らせるにあたって、
イベントごとにスイッチをリレー式に切り替える方法を取りました。
ニュートラル
ニュートラルの行動。
プレイヤーに近づいたりふらつきながらして、汎用スイッチ1(以降は「汎用」を省略)が定期的にONになるような移動ルートを組む。
スイッチ1
スイッチ1がONになったら、NPCは一定時間停止。
停止時間に、別の並列イベントを走らせてプレイヤーが同軸上にいるかどうか監視している。
スイッチ1がONの時に起動する並列イベント。
座標を取得して壁を認識するところまでは視界制御の時とだいたい同じ。
3マス以上10マス以下を範囲としている。
プレイヤーが同軸上にいた場合には、スイッチ1とスイッチ2が切り替わる。
いない場合はスイッチ1をOFFにして、ニュートラルに戻る。
スイッチ2
スイッチ2がONになると、NPCは突進するために助走をつける。
このとき、NPCのイベントページで移動速度を3にを設定しておくと助走がスムーズになる。
助走が終わったらスイッチ2とスイッチ3が切り替わる。
スイッチ3
実際に突進を制御する並列イベント。
突進距離は10マス。壁もしくはプレイヤーにぶつかった時のため、「移動できない場合は飛ばす」に設定している。
ぶつかったら、それが壁かどうか判定。
目の前の地形タグを読み取って、1以上だったら逆向きにジャンプして、
スイッチ5に切り替わる。
プレイヤーにぶつかった場合はNPCのイベントの方で処理をしており、ぶつかったらNPCの背後にジャンプして、スイッチ4に切り替わる。
なお突進の並列イベントは自動的にスイッチ3がOFFになるので、
壁にもプレイヤーにもぶつからなかった場合はニュートラルに戻る。
スイッチ4
プレイヤーの操作を受け付けず、無防備状態。
敵が「突き飛ばす」を食らったような感じ。
その間はNPCもスイッチ4がONの場合の行動を取り、ニュートラルで接触したのとは異なる行動を取る。
一定時間でスイッチ4がOFFになり、ニュートラルに戻る。
スイッチ5
NPCが壁にぶつかった場合の並列イベント。
フキダシの「くしゃくしゃ」を三回ポップさせた後、スイッチ5をOFFにしてニュートラルに戻る。
スイッチ毎のNPCの挙動
スイッチが切り替わると、NPCのイベントページも切り替わるようにして、特定の状況下で接触した際のNPCの挙動も変わるようにしています。
(助走中に接触したり、壁にぶつかった直後に接触したりした時で敵のステータスやセリフが変化する)