地道開発日記 防御システムのバグ取り作業完了
防御システムで発生したバグ取り作業を完了。
防御システムでは主人公以外の敵味方のシールド(一撃もらうと消える防壁)は
毎回ターン終了時に初期化&生成されるのだけど、
プレイヤーキャラでは問題無かったその初期化&生成が
敵キャラと仲間を対象にすると上手く動かず。
(プレイヤーキャラだけシステムが複雑で手順が違うため
何処かに差異がある模様(細かくは調べておらず)
そんなワケで、バグを調査してみたところ
シールドを解除するメソッド(スクリプト)を使ってシールド状態を解除し、
直後にシールドを張り直すと
その命令は即実行されず、先送りされるという状態である事が判明。
果たして原因は、使用している状態(ステート)系のプラグインか
あるいは、状態変化の即解除、即再実行を
スクリプトで行うと、基本的にそうなってしまう仕様なのか、
その辺りを調べるのは面倒極まりないので
(使用プラグインが多過ぎるので調べたくない)
原因は無視して解決方法のみを模索。
そしてスクリプトを使用しての状態変化&即張りは無理ながら、
MZの命令で同じ作業を行えば、問題無く実行できると判明したため
100個以上ある状態変化(ステート)を
一つずつ解除するよう設定していき、
それを一つにまとめて一括呼び出しして使用する事にした次第。
計130個x敵味方分、合わせて260項目を
ポチポチと手作業で設定していると、何か不毛な作業感が半端無いも、
原因を細かく調べたり、尋ねたりする手間を考えると
ゴリ押しの方が数段早く問題解決できるので、長々と地道に一つずつ項目を設定。
そうしてつつがなくシールド解除&再張りできるようになったため
目出度く問題解決。
しかしスクリプトなら1、2行で済むので、比べると手間暇が半端なし。
そんなこんなしつつ、
反撃用武器の画像をインターフェイスに反映し、
どの武器で反撃するかを、直に見て分かるよう表示強化し終えた所で
本日の作業終了。
バグが出ると作業の進みが悪くなるのが辛いところも
バグ無しに収めるのはほぼ不可能な話なので、致し方なし。
明日はできるだけバグが出ない事を願いつつ、
データ作りに勤しみたい、と思う次第。