malaybaku / VMagicMirror

VRM Software for Windows to move avatar with minimal devices.
https://malaybaku.github.io/VMagicMirror/
MIT License
466 stars 38 forks source link

ゲーム入力モード時にWASDの複数キーを同時に離すと歩行モーションが流れ続ける #1000

Open malaybaku opened 11 months ago

malaybaku commented 11 months ago

ユーザー報告です。

malaybaku commented 9 months ago

v3.5.0 + 手元環境で簡単に試した範囲で再現しておらず、調べ方から考え直す必要あるかも

malaybaku commented 3 months ago

1031 の

キーボードに関してdown/upする間にactive windowの変更を含めた操作を行うとうまく反映されない

が真因っぽいので、active windowが変化したときkey up扱いにできないか調べる (とくにVMMのactivenessが切り替わってるケース)

malaybaku commented 3 months ago

発生条件は「キー押下中にVMMが非foreground → foregroundに切り替わる」っぽい (逆だと再現しない)

malaybaku commented 3 months ago

1040 はworkaroundで、

workaroundを行ったうえでの根本対策の指針はこんな感じ:

utagestudio commented 3 months ago

[ v3.8.1 ] 対応ありがとうございます! 確認したところ、移動ロックが生じた際に一定時間後に待機モーションに切り替わるのを確認できました!! しばらくこれを配信で使わせていただきたいと思います!

malaybaku commented 1 month ago

1043 の追加対応でだいぶ発生頻度が減っているはず…ということでcloseします

utagestudio commented 1 month ago

@malaybaku Closeされたあとで申し訳ございません。

今、3.8.2を使用しており、実際に #1043 により問題は生じていないのですが、 逆に #1040 でご対応いただいた「 key downイベントが一定時間途切れたらkey upした扱いにするようにした 」により、 「押しているのに、棒立ちになる」 という問題が起きております。 こちら、ご対応可能でしょうか…

malaybaku commented 1 month ago

@utagestudio

issueをreopenしました。

押しているのに、棒立ちになる

について再現頻度と再現方法を確認したいです。内容によっては対応を見送る可能性があります、ご了承下さい。

再現頻度

v3.8.2で、特定の手順さえ踏めば再現しますか?また、再現頻度はどの程度ですか?(100%, 10回に2回程度、など)

再現方法

手元環境ではv3.8.2 Full Editionで以下の手順を行って棒立ちになる挙動が再現できていないため、詳細な再現手順をご共有下さい。 特定のアプリケーション(ゲーム)を起動中のみ発生する、キーの連打操作で発生する、下記と同じ手順で発生している…などのケースがありうるつもりで、アプリケーションの種類によって発生の有無が異なる場合、具体的なアプリケーション名も記載して下さい。

手元で再現を試みたものの再現しなかった(棒立ちにならず移動しつづけた)手順:

utagestudio commented 1 month ago

頻度としては、ほぼ確実に、という感じになります。 先日の配信でも、短時間で数回確認ができました。 https://www.youtube.com/live/O6_1gI2eZoc?t=706 https://www.youtube.com/live/O6_1gI2eZoc?t=786 https://www.youtube.com/live/O6_1gI2eZoc?t=802 https://www.youtube.com/live/O6_1gI2eZoc?t=850

ちょっと試したところ、まずWキーで前進し、そのままShiftキーを押すと、少しして立ち往生するようです。 Wキーの代わりにASDでも同じでした。 また、Shiftキーの代わりに、別のWASDキーでも同じでした。 ただし、Shiftキーを押してから、WASDのどれかを押した際には、モーションが解除される事はありませんでした。 おそらく、順番に2キー入力されたときに、先に入力されたWASDが一定時間で無効化されるようです。 こちらでご確認いただけますでしょうか。

malaybaku commented 1 month ago

詳細ありがとうございます、

Wキーで前進し、そのままShiftキーを押す

の方法で手元でも確認できました。 テキストエディタで見たところ、記載の手順で入力すると直近のキー以外の連打入力がなかったことになることをあわせて確認しています。

大筋では #1040 の処理を廃止すれば改善しそうですが、ごくまれにキーが押しっぱなし扱いになる問題が既知であるため、対応方法は少し検討します。