めっちゃ久々に再構築を始めました。実質7年くらいやってなかったので、別ゲーになってて驚きですw。
またぼちぼち楽しむこととします。
さてタイトルの件、EVG Animated Traversal。アクティベータを設置した場所で、飛び越えやよじ登り、はしご動作(もあるんでしたっけ?まだ見れてないけど・・)等のアクションをしてくれる、イマーシブ捗る良MODです。
なのですが、少々トラブりましたので、解決対策案をメモっておきます。
- 抜刀状態でのレバーアクション発生
- Open Animation Replacerの動作確認
- EVGATアニメーションへの置換条件
- EVGATエフェクトの時間遷移
- 抜刀時でもレバーアクションを起こさない対策案
- 対策による『お釣り』の可能性
- おまけ雑記
抜刀状態でのレバーアクション発生
最初のSS、ちょっとわかりづらいんですが、EVGATのアクティベータから壁をよじ登ろうとしています。真ん中は正常動作してますが、右のはレバーを引くアニメーションが発生してます。Descriptionのトラブルシューティングは確認済で、アイドル状態では正常動作します。
発生条件が、武器を構えている時(抜刀状態、unsheath)のみ。
1年前にバグレポ上がってるようですが、再現性が低いのか、あまり話題になってないですかね。何かレアな条件があるのかも。
という訳で、自分で調べることに。
Open Animation Replacerの動作確認
OARの機能で、ゲーム内で実行されたアニメーションのログを見れるので、それを使いました。動的にアニメーションのスワップができる上、リアルタイムで確認もできるとは、ほんとすごい進化ですね。ビックリ仰天。
正常時のアニメーション動作
赤枠内。選択されたレバーアクションを、OARがよじ登りアニメーションに置換してます。[Replaced]の表示が出てますね。正常によじ登ってます。
前後で置換してるのは、待機アニメーションのランダム再生。
ちなみにSCARが入っていると、コンボアニメーションを続々置換する為だと思いますが、ダミーのアニメーションログですぐに画面が埋まってしまいますので注意。
レバーアクション時のアニメーション動作
さて、問題の方。[Replaced]が付いておりません。OARが置換しなかったようです。そりゃレバーアクションが再生されますわな('_')
ここで考えることは、「OARのせいかよ!?」ではなくて、「どうして正常に置換されなかったのか!?」ってことです。
そう、まず疑うべきは、アニメーションを置換するトリガ条件から!
EVGATアニメーションへの置換条件
置換成功時のログから、Replace先のアニメーションは「6005100」フォルダに置かれていることがわかります。Dynamic Animation Replacerのフォーマットですね、OARは上位互換とのことで問題無し。
アニメーションの置換トリガ
置換条件を記述したtextファイル(_conditions.txt) も格納されてる筈なので、それをあさります。以下引用。
HasMagicEffect("EVGAnimatedTraversal.esl"|0x000088D)
よじ登り、はしご、飛び越え等の各アニメーションの識別子として、EVGATがエフェクトを付けてると思われます。このエフェクトが付いている時は置換して、エフェクトが無ければ置換しない(レバーアクションになる)ということに。
EVGATエフェクトの付与状態
正常動作時の様子です。ちゃんと付与されてますね。eslなので上位5桁がロードオーダーな為、88Dで合ってます。
レバーアクション時です。0x88dのエフェクトが付与されていません。エフェクト数が1つ少ないので一目瞭然。そのせいでSOSエフェクトが見えてしまった。
置換トリガが無い以上、OARは動いてくれない為、レバーアクションになるのは必然。とはいえあまり騒がれた様子も無いので、何か微妙な発生条件がありそうです。
そこで、「このエフェクトがどうやって付与されてるのか?」を見ていくことに。
EVGATエフェクトの付与方法
これはSSEEditで見れば一目瞭然で、アクティベータにスクリプトが括られてます。触ったら赤枠内のSpellが発動して、プレイヤキャラにエフェクトが付与されるのでしょう。
納刀or抜刀時の如何は無関係なので(powerofthree's Tweaksが無いと戦闘中にアクティベートはできないですけども)、ここ自体は問題なさそうです。
赤枠内のスペルを見ていきます。注目すべきは「Duration」。エフェクトの効果時間ですね。これが今回のトラブルの根っこであります(あくまで僕の環境での話!)。
EVGATエフェクトの時間遷移
効果時間を念頭に、もう一度状態を確認します。
正常なEVGAT動作時
正常動作時です。これからジャンプして手をひっかけて、よじ登り開始するところ。この時点でDurationの残り時間は約1.7。
上りきる前に効果時間終了となり、エフェクトが無くなりました。とはいえOARでの置換が済んだ後ですから、もうどこで切れても問題無しです。
レバーアクション発生時
さて、問題の抜刀時なのですが・・・1つ重要ポイント。
アクティベータを触った後に納刀アニメーションが発生します。
そして納刀が済んでからレバーアクションをOARが置換する訳なのですが、エフェクトはアクティベータを触った時点で付与されてる為、納刀アニメーション中もDurationのカウントダウンが発生します。
その結果、納刀完了直前で残り時間が0.09しかありません。
つまり僕の環境での流れは、
- 抜刀状態でEVGATアクティベータを触る(エフェクト付与、カウントダウン開始)
- 納刀アニメーション発生
- EVGATエフェクト時間切れ
- EVGATアニメーション再生開始
- 置換条件のエフェクトが無い為、OARがアニメーションの置換をしない
- 置換無しでレバーアクションが発生
という流れだと思われます。
抜刀時でもレバーアクションを起こさない対策案
エフェクトの時間切れが問題なので、Durationを伸ばしてみることに。
結果、抜刀状態からの正常動作を確認!ちゃんと上ってくれました。
対策による『お釣り』の可能性
そもそもDurationが2であることが問題なのか?というと、推測ですが(実験してないので)、多分大方の環境では問題無いのではないかと思います。
僕の環境だと、結構ギリで間に合ってない感なんですよね。なので大方の環境はギリで間に合ってるのかも?
そうでなければ1年前のバグレポが放置されてるとも思えない(この記事書いてる50日前くらいにアップデートされてる)ですし、もっとバグレポ自体が多そうな気が(Nexusのポストもそんな読んではいないですが・・)。納刀アニメーションの再生時間も影響しそうですかね。
Durationを伸ばすことの副作用として、逆に今度は納刀状態での問題が考えられます。Duration3で、納刀時に上り切った所での状態です。まだそこそこ効果時間が残ってます。
これ、この状態で即座に次のアクティベータに触ったら、おかしな置換になることは明白ですね。なので、理想はやはり、再生終了前にエフェクト効果が切れることだと思うのです。このDurationは多分intしか使えないのが難点ですかね。小数使えればよかったのですが・・。
一応これで僕の環境は対策としましたが。
そもそもMODの構造からして、レバーアクションのバグ報告が上がった時点で(トラブルシューティングに書いてある物も含めて)、作者さんはこのDurationを気にしたと思いますが、現時点でもEVGATアクティベータは大体2っぽいので、多分2大半の環境は2で動いてるんだと思います。
おまけ雑記
まさかこれだけ年月が経って、Skyrimが廃れるどころかますます進化してるとは、正直思いませんでした。侮りすぎていましたぬ。
特にHDTであれがナチュラルにばるんばるんすぎて凄いですね!(頭より大きくしても大丈V!)
AEからちんちくりんコンバートしてこようと思ってたんですが、中止して新規でばるんばるん姉さん作りましたです。
戦闘面も凄いですね、コンボにローリングとびっくり仰天。メロン2つ持ってどうやってローリングしてんだろう。
なんかダクソ2くらいの所まではいけんじゃないか?みたいな。まああんまり他ゲーと比較するのもナンセンスだとは思いますが。
という訳で、またちょいちょい遊ぶかも・・・しれませぬ。
以上、おしまいです!