Open malaybaku opened 11 months ago
v3.5.0 + 手元環境で簡単に試した範囲で再現しておらず、調べ方から考え直す必要あるかも
キーボードに関してdown/upする間にactive windowの変更を含めた操作を行うとうまく反映されない
が真因っぽいので、active windowが変化したときkey up扱いにできないか調べる (とくにVMMのactivenessが切り替わってるケース)
発生条件は「キー押下中にVMMが非foreground → foregroundに切り替わる」っぽい (逆だと再現しない)
workaroundを行ったうえでの根本対策の指針はこんな感じ:
WM_INPUT
の取得抜けを防いでIPCするようにしたい[ v3.8.1 ] 対応ありがとうございます! 確認したところ、移動ロックが生じた際に一定時間後に待機モーションに切り替わるのを確認できました!! しばらくこれを配信で使わせていただきたいと思います!
@malaybaku Closeされたあとで申し訳ございません。
今、3.8.2を使用しており、実際に #1043 により問題は生じていないのですが、 逆に #1040 でご対応いただいた「 key downイベントが一定時間途切れたらkey upした扱いにするようにした 」により、 「押しているのに、棒立ちになる」 という問題が起きております。 こちら、ご対応可能でしょうか…
@utagestudio
issueをreopenしました。
押しているのに、棒立ちになる
について再現頻度と再現方法を確認したいです。内容によっては対応を見送る可能性があります、ご了承下さい。
v3.8.2で、特定の手順さえ踏めば再現しますか?また、再現頻度はどの程度ですか?(100%, 10回に2回程度、など)
手元環境ではv3.8.2 Full Editionで以下の手順を行って棒立ちになる挙動が再現できていないため、詳細な再現手順をご共有下さい。 特定のアプリケーション(ゲーム)を起動中のみ発生する、キーの連打操作で発生する、下記と同じ手順で発生している…などのケースがありうるつもりで、アプリケーションの種類によって発生の有無が異なる場合、具体的なアプリケーション名も記載して下さい。
手元で再現を試みたものの再現しなかった(棒立ちにならず移動しつづけた)手順:
頻度としては、ほぼ確実に、という感じになります。 先日の配信でも、短時間で数回確認ができました。 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が一定時間で無効化されるようです。 こちらでご確認いただけますでしょうか。
詳細ありがとうございます、
Wキーで前進し、そのままShiftキーを押す
の方法で手元でも確認できました。 テキストエディタで見たところ、記載の手順で入力すると直近のキー以外の連打入力がなかったことになることをあわせて確認しています。
大筋では #1040 の処理を廃止すれば改善しそうですが、ごくまれにキーが押しっぱなし扱いになる問題が既知であるため、対応方法は少し検討します。
ユーザー報告です。