勝手に防御する不具合について調べてみた

環境構築

いつの間にか勝手に防御するようになってしまいました。

現象

近接武器を持つと勝手に防御します。

どうやらアイドルアニメーションの再生開始時に防御からスタートするようです。

近接武器を持って抜刀、近接武器に持ち替え、ジャンプ後、POV変更後、スプリント停止後など、どうやら防御が可能になったタイミングで1回防御してしまうようです。

詳しく調べてみた

近接武器の時だけなので、入力デバイスの不具合の可能性は低そうです。コントローラーの防御のボタンが入力しっぱなしになっているなら、銃でも何でも入力されてしまうはずだからです。

防御するということは、防御に関係するアニメーション周りで不具合が起こっていると考えられます。

SkyrimでMod作成を行った経験から、アニメーション変数に iWantBlock というboolean型の変数があることを知っていました。この変数を表示するデバッグコードを書いてみたところ、近接武器で1度でも防御すると、それ以降はiWantBlockがtrueのまま固定されてしまうことを確認できました。

おそらく、iWantBlockがtrueになっていると防御するような制御が近接武器のアイドルアニメーションファイル内にあるのでしょう。ですので、このアイドルアニメーションを新たに再生開始するタイミングは常に防御するわけです。上で書いた現象と一致します。

対策してみた

スクリプトからiWantBlockをfalseにしてみました。ほとんど効果がありません。おそらくすぐにtrueに戻されてしまっているものと思われます。

原因はBiped Slot 59のShield

防具にはスロット番号がありますが、59番のShieldというスロットに何かを装備していると、防御した後はiWantBlockがtrueで固定されてしまうようです。

最近PIP-PadというModを導入したのですが、スロット番号を自由に選べるので59番を設定していました。これを別の番号に変更したところ、改善しました。

残念ながら、一度iWantBlockがtrueで固定されたセーブデータでは、後からPIP-Padの設定をかえてもダメでした。

タイトルとURLをコピーしました