DirectInputとXInputの比較
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2019/12/26 17:44 UTC 版)
「DirectInput」の記事における「DirectInputとXInputの比較」の解説
DirectInputはDirectX 8から大きな変更が無く、XInputは後のDirectX 9で導入され、2つのAPIの現状と将来には若干の混乱がある。現在はお互いにない特徴があり、そしていずれもDirectX 10で大きな変更はない。 Xbox 360用コントローラーとマイクロソフトのデフォルトのWindowsドライバの組み合わせにおいてDirectInputを使う場合、XInputと比較して以下の制約がある。 左右のトリガーは単一のデジタルな方向として動作し、独立したアナログの軸としては動作しない。 振動機能は利用できない。 ヘッドセットデバイスの確認ができない。 MSDNによると、以下のような説明および解決策が記載されている。 DirectInput の左右のトリガーの組み合わせは、意図的なものです。ゲームでは、DirectInput デバイスとユーザーとの対話操作がない場合、このデバイスの軸は常に中央に配置されると想定しています。ただし、トリガーが保持されない場合、Xbox 360 コントローラーは中心ではなく最小値を登録するように設計されていました。したがって、以前のゲームはユーザーの対話操作を想定しています。この解決策とは、トリガーを組み合わせて、あるトリガーを正の方向に設定し、もう 1 つのトリガーを負の方向に設定するというものでした。それによって、DirectInput に"制御"が中央にあることをユーザーの対話操作で示すことがなくなります。 これはしかしながら、デュアルアナログスティックのあるゲームパッドやハンドルコントローラーなどのような様々なDirectInputコントローラーが既にトリガーやペダルに個々に割り当て済みであるという事実を無視していた。しかも多くのDirectInputデバイスには振動機能も搭載されていた。Xbox 360用コントローラーで振動機能をサポートし、デッドゾーンの検知や、(オプションとして)独立したトリガーをDirectInput経由で利用できる、XBCDというドライバが存在している。これはDirectInputとXInputのAPIの違いによるものというよりはむしろ、マイクロソフトが提供するXbox 360用コントローラーのドライバは「意図的に」DirectInputでの機能を制限していることを示している。 現在XInputのAPIはDirectInputにはない制約もある。 次世代のコントローラーのみをサポートする。基本的にWindows用のドライバがあるXbox 360用のコントローラーに制限される。旧式のWindows用のコントローラーはサポートしていない。 最大同時接続数4台。これはXboxからWindowsに持ち込まれた制約である。今のところ4つのコントローラーを必要とするPC用ゲームはまずないが、DirectInputにはこのような制限が無く、不合理な制限と考えられる。 キーボード、マウス及びマウス型デバイスの非サポート。DirectInputはこれらのデバイスに対しては推奨されないものとするマイクロソフトの意向を反映しているが、DirectInputでこれらのデバイスを利用すること自体は可能である。 1コントローラーあたり、アナログ4軸、10ボタン、デジタル8方向のみをサポートする。XInputがサポートする軸とボタンの数はXbox 360用コントローラーと直接対応しているためである。対してDirectInputはアナログ8軸、128ボタン、フルレンジのPOV (ハットスイッチ) をサポートする。 DirectInputは従来から存在する規格のため、対応するドライバーが用意されているデバイスも豊富だが、XInputは後発のため、主要な対応デバイスとしてはXbox 360用の純正コントローラーおよびXbox One用の純正コントローラーのみである。ただし、サードパーティー製の各種コントローラーもDirectInput/XInput両対応の製品がいくつか発売されている 。 Windows 8で導入されたWindowsストアアプリでは、XInput 1.4のみが使用可能であり、デスクトップアプリ向けのXInput (1.1/1.2/1.3, 9.1.0) およびDirectInputは使用できない。XInput 1.4ではオーディオヘッドセットの問い合わせ機能が追加されている。
※この「DirectInputとXInputの比較」の解説は、「DirectInput」の解説の一部です。
「DirectInputとXInputの比較」を含む「DirectInput」の記事については、「DirectInput」の概要を参照ください。
- DirectInputとXInputの比較のページへのリンク