このQ&Aは役に立ちましたか?
同時押しできない特定キーの問題
2023/10/13 10:34
- 特定キーの同時押しに問題があります。
- 同時押しできる方向キーと比較して、特定の組み合わせでは同時押しできません。
- ハードウェアの問題ではないと思われるため、解決方法を教えてください。
特定キーの同時押しが出来ない。
2021/07/31 20:44
↑↓→は同時押しできるのに、↑↓←はできません。
前者が出来ている以上ハードウェアの問題ではないと思うのですが、どうすれば同時押し出来ますか?
ideapad gaming 3 15IMH05 windows10
※OKWAVEより補足:「Lenovo:ノートブック (IdeaPad・Lenovo等)」についての質問です。
回答 (3件中 1~3件目)
キーボードマトリックスの問題。パソコン側では対処出来ない。キースイッチが独立してる高価なメカニカルキーボードなら、各スイッチにダイオードを入れることで、完全なNキーロールオーバーを実現可能。安価なメンブレンスイッチのキーボードではダイオードを入れる事が不可能。何とか誤魔化してるので、押すキーの組み合わせによっては同時押しが認識されない。
このQ&Aは役に立ちましたか?
この質問は投稿から一年以上経過しています。
解決しない場合、新しい質問の投稿をおすすめします。
不具合ではありません。
キーボードというハードウェアの構造上の制限です。
キーボードというのは、通常のフルキーで109個、マルチメディアキーやアプリケーションキーのあるものは120個近くも、スイッチが付いています。
と言うことは、120個のスイッチのON/OFFを検出するために、GNDは共通としても、121本もの配線をして、120個の入力ポートを用意し、どのスイッチが押されたか監視する…みたいなことになってしまいます。
しかしこれには「キーマトリクス方式」という解決法があり、これにより配線数・ポート数を2√(ボタン数)にまで減らせるのです。
120個のキーだったら、22本も配線すれば十分と言うことになり、これはかなりのメリットです。
例えばこちらのページを参照してください。
>FAQ 1006587 : マイコンでのキー・スイッチ入力 | Renesas Customer Hub
>https://ja.na4.teamsupport.com/knowledgeBase/17796057
[キー・マトリクス] の項目では、16個のキーを、4×4の配線で読み込める図が書かれています。
(1つ1つ検出する場合、キー16個+GND1本=17本必要だったところ、4+4=8本で済んでいる)
----
劇的に配線・ポート(IC数)を削減できる、キーマトリクス方式なのですが。
ここに、同時押しという問題が出てきてしまいます。
キーマトリクス方式では、任意の2キーまでは、同時押しされたことがわかります。
しかし3キー目が、たまたま2キーで押したマトリクスの交点にあるとき、押されたことを検出できないのです。
3キー目も縦横独立している位置のものが押されたならば検出できるのですが、キーが同時に押されるほど、バッティングする確率は高まり、最悪3キーでも発生してしまうという訳なのです。
まあ普通のキーボードタイピングでは、2キーが押されるか押されないか、という程度で、基本的に一つずつ押されていきますので、これでも十分なのですが。
ゲームなどで3キー・4キーが同時に押されるようになると、キーボードによっては押せなくなってきます。
ただ、「キーマトリクス方式」自体はほぼ全てのキーボードで採用されていても、内部的な配線の規格まではありませんので、マトリクス上にどういうキーを配置していくかはメーカー次第です。
(ただ、配線の都合上、近いキーが縦または横の線上に並んでいることも多く、物理的に近いキーの同時押しはバッティングする確率も高いです。)
ゲーミングキーボードでは、WASDやカーソルキーを完全に独立したマトリクス上に置き、どのような同時押しにも対応できるようになったりしているかもしれません。
あるいはキーマトリクスを、100個のキーを10x10で検出するのでは無く、5x5のマトリクス4つで検出、みたいなことをすれば、線が20本→40本には増えますが、バッティングする確率を下げられます。
しかしまあ、どのキーボードならきちんと「↑+↓+←」が出来るかどうかは、買ってみて試さないとわかりません。かなりの博打となります。
ここにゲームコントローラの利点があります。
ゲームコントローラは、キーマトリクス方式を使わず、上下左右キーおよび全ボタンを独立に検出しているはずです。
なので、「左と上を押したら△が反応しない!?」なんて事はありません。(そんなコントローラがあったら欠陥品ですよね。)
----
そういうわけで、キーボードを複雑なゲーム操作に流用するのは元々無理のある話なんですが…。
キーカスタマイズの出来るゲームであれば、3キー同時押しでバッティングしない別の位置のキーに変えてみるとか。
ゲームコントローラと、キーエミュレータを組み合わせて、操作できるようにするとか。
(もちろんゲーム自体が直接ゲームコントローラに対応しているならその方が良いのですが)
そんな方法が考えられます。