いつの間にか勝手に防御するようになってしまいました。
現象
近接武器を持つと勝手に防御します。
どうやらアイドルアニメーションの再生開始時に防御からスタートするようです。
近接武器を持って抜刀、近接武器に持ち替え、ジャンプ後、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の設定をかえてもダメでした。