北海道発 漆黒の渡り鳥 第2本拠

はてなダイアリーより移行しました。更新不定期です

『ダミー特殊能力名』について

エリアスファイルで頻繁にお目にかかる上記の特殊能力について。

「特殊能力の名称は○○だけど、SRCウィンドウ上では△△と表示させたい」といった場合に使われるもの。
私の場合は種割れ関係でお世話に。
…何故かって?Gジェネクロスドライブのように、パイロット別に発動条件と発動時の効果を定義したからさ。

……とまあ、解説はここまでにしておいて。
裏で弄ってる分も含めて、つい先程までこれに関するバグに悩まされてた。



製作中のエースボーナスインクルテストシナリオの内部データで起きた事項を例に説明。

1.SEEDが消えた!?
種割れ前のキラで起こった例。
彼自身の特殊能力として、以下のようにデータ定義。
(※説明時と発動時の能力を別定義してます)
SEED説明(キラ),1
んで、エリアスではこう定義してた。
SEED説明(キラ)
ダミー特殊能力名=SEED
SEED=解説 アビリティ『SEED覚醒』使用で発動。射撃・命中に+10され、機体性能が一部変化する。

彼のエースボーナスとして設定してたのは、『命中率+10%、ヒット&アウェイ習得』。
命中率〜は何も起こらなかったので、ヒット&アウェイ関連について補足。
蒼城 醒さんの一撃離脱風味インクルを使用していた為、こう定義してた。

一撃離脱
ダミー特殊能力名=ヒット&アウェイ
ヒット&アウェイ=解説 移動せずに攻撃した場合、攻撃後に移動のみ出来る。

ヒット&アウェイについてはエースボーナスインクル内でSetSkillコマンドを使って習得処理を行ってた。

……ここで問題発生。
インターミッションのユニット一覧にて表示確認をしていたら、エースボーナス習得状態の時に彼のSEEDが表示されず、何故か一番最後に来なければならないはずのヒット&アウェイが最初に来てた。

理由はおそらく『ダミー特殊能力名』をどちらも使っていたからだろうと考え、SEEDのダミー表記を以下に変更。
ダミー2=SEED
こうしたらうまく表示された。ヒット&アウェイの処理もうまく行われた。



2.なして君も動いちゃう!?
これが解決した後、またしてもヒット&アウェイ関連でバグ発生。
ヒット&アウェイを習得していないシンに対して、何故かそれを持っているかのようにインクル処理が行われていたと言うもの。

セーブデータを確認した所、確かに持ってない。もちろんエースボーナスにも設定してない。なら何故?

ここで他にもバグが出てないか確認してみたけれども、他の持ってないメンバーはちゃんと持っていない処理をされてた。
そして各パイロットのデータをみて、ダミー表記を使用している特殊能力を習得していたのが(上記のキラを除いたら)シンだけだと言う事を確認。

もしかして?……と思い確認してみたら、シン用のSEED関連能力の記述に『ダミー特殊能力名』が含まれてた。
……これのせいで持っていると誤認された?

そう思いキラの例と同じ様にダミー能力名を変えたら、今度はちゃんと持ってないかのように扱われた。
……んー、名称だけで誤認しちゃうものなんだね。



以上の例により、判明した事項。
パイロットに対して同一のダミー表記を持つ複数個の能力を習得させた場合、それらの動作は必ずしも保証されない』。

そして、教訓。
各能力のダミー表記の左辺は、可能な限りユニークにしましょう』。