Brynhildr

KeroRemote

リモートデスクトップエンジニアのブログ。

アナログゲームパッド対応リモートデスクトップ
アナログゲームパッドに対応したリモートデスクトップって珍しいですよね、ってテーマでちょっと記事を書いてみようかと。もちろんプラットフォームはWindowsでする。

タイトルをアナログゲームパッドかゲームパッドかアナログコントローラーかで迷いましたけどアナログゲームパッドで。ネット上ではゲームパッドかアナログコントローラーの方が正解のような雰囲気ではありますが、アナログ入力(アナログスティック&アナログボタン)付きのゲームパッドという風に御考え下さい。

結構色んなリモートデスクトップがある訳ですが、知ってる範囲ではアナログゲームパッドに対応しているリモートデスクトップってかなり珍しいです。ま、単に自分が知らないだけかもしれませんので、もし御存知の方がいらっしゃいましたらコメントを頂けると幸いです。要注目です、この記事のコメント欄。

ま、アナログゲームパッドどころか普通のゲームパッドもそれほど対応したリモートデスクトップもそんなに無いんじゃないかと思うんですが、そもそも何でこんな事を言うのかちょっと経緯について。

当方の開発・配布しているリモートデスクトップのコントロール周りは、マウスとキーボードのみです。通常のアプリだとこれで十分なのですが、やっぱりゲームとかになるとゲームパッドを使いたいものです。

最近では3Dのゲームがもはや当たり前になってしまい、PCでも3Dゲームが続々と登場しています。最新の3Dゲームをヌルヌルと動かすには強力なGPUが必要になりますので巨大なデスクトップPCは当たり前となり、軽量なタブレットPCとかゆー非力な端末ではカックカクも良いトコでヘタすれば起動しません。ただ、出張ともなるとデスクトップPCを持ち歩くわけにもいかず、GPU搭載のノートPCだと高価だわデカイわ重いわで、厳しすぎますので、タブレットPCで我慢しないといけないワケです。

そこで、リモートデスクトップの出番ではないかと。非力なタブレットPCでもリモートデスクトップくらいは動くのでとりあえずゲーム画面は表示できます。が、肝心の操作がイマイチで特にパッド勢の自分はちょっとツライものがあります。ま、Diablo3みたいにマウスとキーボードだけでOKのものもあったんですけれども、海外のFPSとかゲームパッドが無いと超キツイっす、自分。そう言えば、ふとFPSで思い出しましたけど、「攻殻機動隊 First Assault」が非常に楽しみでならんです。

で、どーしてもゲームパッドをリモートデスクトップで利用したい場合は、クライアント側に「JoyToKey」を入れて、ゲームパッドのボタンとかに特定のキーボードのキーを割り当てていた訳です。ただ、この場合は入力がデジタルになってしまい、アナログスティックの値が上手く取得できず、傾きが検知出来ません。ゆっくり移動とか、ちょっと斜めに移動、とか出来ません。とは言いつつもJoyToKey側では解決する術は無いように思えました。

それならばと、クライアント側のアナログゲームパッドの入力信号をフックして、サーバー側でアナログゲームパッドとして出力させようかと思って、DirectInput周りを駆使して全部自作しよーかと思いましたけど、推測段階でサーバー側の処理がかなり厄介になる事が目に見えたので、考えるだけでヤメにしました。ま、ゲームによっては動かない事も容易に予測出来ましたし、恐らくドライバーを開発するよーなレベルになってしまうんで、これは老後の楽しみに取っておこうと。

さて、次に目を付けたのが「USBをIPに変換する技術」です。「USB/IP」とか「IP over USB」とか「USB over IP」とか「Ethernet over USB」とか「net.USB」とか様々な呼ばれ方があります。ソフトウェアもハードウェアもあります。ハードウェアだとIO-DATAの機器とか「DOKO」とか有名ですよね。ただ、ハードウェアだと嵩張るので、モバイル用途には適しておらずちょっとスルーかと。結構色々なデバイスサーバーとか試してみたですけどね。いずれUSBメモリーみたいな大きさで、USBの先に挿してそのまま通信できるとかゆー製品出来ると嬉しいのですが。

で、ソフトウェアの「USBをIPに変換する技術」ってあんまり無いんですね。いえ、あるにはあるんですけど、この分野のソフトウェアってなかなか高額な有償なんですよね。ま、海外製がほとんどなんでどこがメジャーなのかちょっとわかりかねるんですけど。

あと、この「USBをIPに変換する技術」にはちょっと欠点がありまして、サーバー側のゲームにクライアント側のゲームパッドを認識させる場合、サーバー側からクライアント側のIP(USB)を把握する必要があるので、クライアント側を固定IPにする必要があるかもしくは常にIPを伝えるようなそんな仕組みが必要になりそうなんです。1つ試してみたソフトウェアがありましたが、そんな感じでしたのでちょっと実用レベルでは難しいのかなと。あと、開発中の中継サーバーのタイプだとまず無理になりそうですね。もちろん例外のソフトウェアとかハードウェアもあるんでしょうけど、現状では難しいような気もしています。

この「USBをIPに変換する技術」分野をもうちょっと突き詰めて開発が出来れば、国内でも珍しいみたいですし、ちょっとしたビジネスになりそーだなーと思いつつも、確実にUSBデバイスドライバーを開発するよーなレベルになるんでどーしたもんかなー、と思ってて、早数年。

ふと「仮想ゲームパッド」なる世界を垣間見る機会がありました。どうも、主にMMOのゲーム内でキャラクターをマクロで自動操作させて、レベリングしたり金策したりする時に利用するようです。もちろん、仮想ゲームパッドの全てがそれ故に存在とゆー事じゃないと思いますけど。いやいや、自動操作とかゆーインチキは極めてイカンと思いますし、ゲームによってはアカウント削除とかバンバン実施している分野です。もちろん自分も自動操作には大反対です。ゲーム運営には厳しく取り締まって欲しいところであります。

ただ、この「仮想ゲームパッド」にはSDKがありまして、開発したアプリから仮想アナログゲームパッドを操作する事が可能です。とゆー事は、リモートデスクトップのクライアント側でアナログゲームパッドの入力信号さえ検知できれば、アナログゲームパッドの入力信号をクライアント側からサーバー側に送って、それをさらに仮想ゲームパッドに送る、とゆー事も可能になるって事です。困難と思われたゲームパッドのドライバーは仮想ゲームパッドのものを使えば良いですし。

て事でいくつかの仮想ゲームパッドを試してみましたけど、「vJoy」てのがかなり良さげです。ちなみに「VJoy」ってゆーのもありますので注意が必要です。紛らわしいですな。ただ「vJoy」でも自分の環境(Windows7)だとアンインストール時にブルーバックになる事があるのでこりゃ上級者向けかなとw

さて、そんなこんなで、クライアント側でアナログゲームパッドで入力信号をサーバー側に丸ごと転送して、さらにそれを仮想ゲームパッドに送るようなリモートデスクトップがあれば実現は可能!って御話でした。

あ、もちろんプロトタイプは既に作ってみてました、結構前なんですが。自分はPS4のゲームパッドが御気に入りですので、出張先でタブレットPCにPS4のゲームパッドをUSB接続して、インターネットを介して、遥か彼方の自宅のデスクトップPCで動いている3Dゲームを操作できる感じです。PS4のゲームパッドってボタン配列が正しくないので設定ファイルで変更できるようになっております。ま、正しいつもりの配列でも別のゲームパッドで接続すると何かおかしいので、結局配列を変更せねばならんとゆー感じなんですが。何でか未だに不明ですが。

そんなアナログゲームパッド対応リモートデスクトップのプロトタイプなんですが、欲しい人いますかね?

たまたま最近そーゆーのを欲しい人が身近におりましたので、ひょっとしたら需要あるパティーンか!と思って記事にしてみた次第で御座います。自分用にテキトーに作ったヤツだけど、需要があるのであれば「初蔵出し秘蔵の一品」とゆー事にしてみようそうしよう。

そして記事がすげー長い。




コメントはまだありません ... ( 管理人承認制 )





... 不具合報告の際は、アプリのバージョンやOS等の動作環境の記載を御願い致します。

表記されている会社名・製品名・システム名などは、各社の商標、または登録商標です。
当サイトはAmazon.co.jpアソシエイトプログラムに参加しています。
© 2010 IchiGeki