Jeroblo
RSS

マウスやパッドのレビュー用に

2012 年 4 月 5 日 0:20 1 コメント 5,498 views

日々マウスやマウスパッドの検証を行っている中で、ネガティブアクセルの検証等をゲームで感覚的に掴むというのは「なんだかなぁ」と思っていました。そこで今回、以前作成していたポーリングレートを測るソフトを改良してDirectInputのログをとれるソフトを作ってみましたので、公開と共に何が出来るか紹介しておきます。まずはトップメニューバーからJBMTをクリックして一読ください。

はじめに

一応ながら、つらつらと長ったらしく書いておりますが、てんで大したことのない、数時間でできたレベルの(名前だけ一人前に付けている)ロギングソフトです。これを使えばマウスが出しているデータ(いわゆる生値)が保存できます。まぁ機能はそれだけであり、当初の予定(発想)としては解析機能も考えていましたが、csvでエクセル等に渡してしまえば、とりあえず解析はどうとでもなるし、その方が色々とやりやすいと気づいてしまいましたので特に実装していません。実装するにしても、ロギングとは分けて、このソフトが吐いたファイルに対して解析をかけるソフトを別途用意した方がずっと簡単だという考えです。

ソフトについて

前置きが長くなってしまいました。ソフトの紹介に入ります。

  • ポーリングレートが(実測・理論値ともに)確認できるよ!
  • x,y,z(ホイール)とマウスボタン5までの情報が記録できるよ!

機能としては以上です。ポーリングレートの実測値と理論値について説明しておくと、実測値は1秒間に何回情報を取得できたか?という、まんまポーリングレートという値です。125Hz、500Hz、1000Hzが一般的ですが、これは要するに1秒間にそれぞれ125回、500回、1000回情報が来ています。対して、理論値というのは、前の情報からの時間間隔から、ポーリングレートを計算する方法です。いわば瞬間最大風速的なイメージをしてもらうと良いかと思います。これは単純に1000msを間隔で割ると計算できます。1000/8=125、1000/2=500、1000/1=1000といった風です。要はデバイス好きには知られている「DirectX mouserate checker」と同じ測定方法です。ちなみにその「DirectX mouserate checker」と同時に起動させてみると分かりますが殆ど同じ値が取得できます。

実例

もう一つ、ロギング機能がありますが、例えばこんなデータが取得できます。

image

出力されたcsvファイルをエクセルで開いたところです。こういったデータがつらつら続いています。

image

データを少し加工することでこういったグラフもすぐ書けます。これはMambaとAMP1000の組み合わせにおいて右に20センチ程動かした時のX軸移動量と時間のグラフです。縦軸がピクセル、横軸が時間になります。要するに傾きが速度となり、最終的に7081ピクセル移動していましたので、計算{7081/(800[dpi]/2.54)}からも22.48cmということで実際の移動量と差が無いことが分かります。

具体例として、ネガティブアクセルを測りたいときなど、「固定点から素早く右に動かし、ゆっくり元の場所に戻す」という基本動作は変わりませんが、それの実値が取得できます。全てのデータを取ってしまうと解析しにくくなりますので、データ上の目印として、ログフィルターに左クリック、右クリックをチェックし、記録を開始します。固定点から右に素早く動かすときには左右ともクリックした状態で動かし、ゆっくり変えるときに左クリックを離すなどしておくと、解析する時にはっきり区別がつきます。

得られたデータ(左クリック、右クリックが1,1のものと右クリックのみ1のもの)のX軸データと時間間隔を全て足し合わせ積算値に補正します。そして最終的な移動ピクセル量を行きと帰りで比較すればネガティブアクセルの検証ができるわけです。

上のグラフは試しにやったネガティブアクセル検証の時の行きのデータです。帰りのデータはピクセル量が-6881、時間が18.8秒でした。これを比較すると6881/7081で約97%ということが分かります。帰り(遅い方)のデータ量が若干減っているのでネガティブアクセルではなく、実距離にして6mm程の差ですので、測定誤差であることは明白ですね。

考察として

加工に少しの手間がかかりますが、ゲーム内での感覚的な話からすると随分マシな検証ができるようになります。得られるデータはDirectInputのそのままの(間隔のみソフトで測定している)データですので、いろいろな検証が考えられます。

  • ネガティブアクセル、ポジティブアクセル
  • データ飽和(速度耐性)の確認
  • カーソルスキップの検出
  • クリックぶれの確認
  • リコイルコントロールの軌跡確認

上項のような検証は割と簡単にできますね。このソフトで得られたログを食わせて、こののような解析を自動でやってくれるソフトがあれば非常に便利ですね。

最後に

ある程度は確認してリリースしましたが、私はこういった.Netアプリケーションの専門家でなく、思いつきで作成したものですので、不具合など多々あるかもしれません。何か気づいたらその都度報告頂けると非常に助かります。特に多様な環境での評価は不十分ですので、動作報告だけでも十分ありがたいですね。

使用例

文章だけでは少し分かり辛かったので使用例として動画をとってあります。

関連する記事