FPSゲームにおけるAIMに関する備忘録
2年前ぐらいにRyanguru先生が話題になりKHさんが補助的な動画を出していたのと、去年デバイス含めてAIM調整した暫定的な自分なりの考え方がまとまったのでメモしてみたい
★AIMの仕方 水平方向編
基本的にこの動画が唯一の正解かと思う。手首固定とか腕ぶんぶん丸とか肘を浮かす浮かさないとか色々やってきたけど、固定するという意識をすればするほどAIMが悪くなる。経験的に間違いなくそうだった。
人体工学は大学では少しかじったぐらいなので、代わりに機構学で文字に起こしてみる。手首も肘も何なら肩も節(リンク)で構成される物という感覚を持つと、固定個所を作るとその分のリンクを失われることになり、引いては自由度が無くなるということになる。
https://monoist.itmedia.co.jp/mn/articles/1104/15/news003_2.html
また、産業用ロボットのティーチングをしたことがある人(例えば、ロボット教示の資格取得で講習を受けたりとかも含む)なら、もっと直感的にわかるかと思うけど、リンクの数が少なるほど、ある点からある点まで動かすためのルートの数に制限が掛かってしまう。要は軌跡の自由度が無くなってしまうので、最短時間でのルート取りができなくなる、という考えを持つことが重要かと思う。下の動画にあるようなロボットアーム先端がマウスのセンサーに相当すると思えば良い。ただ、ここでRyanguru先生の動画に戻ってみると、マスパッドを上から俯瞰した絵、パッドに対して水面方向での移動しか議論されていないことに違和感が出てくる。
★stop & go
AIMの動作は大雑把に①止める、②動かすの2動作に分けて考えることができる。基本的にここまで文字起こしした内容は②動かすの動作範疇(厳密には更に限定的で、動き続けている時)の話でしかない。①止める、を考えることで垂直方向に関わるAIMをイメージすることができる。ただ、あんまり難しく考えている訳ではなくて、小学校で学んだ摩擦力の概念だけで充分イメージできる。要は、止めるときの動作に必要なのはマウスを握っている手からかける垂直方向の荷重になる。
★AIMの仕方 垂直方向編
これを意識すると、肘の高さ位置はある程度の範囲に固定しなければいけなくなる。水平方向は固定しない。このある程度の範囲というのは個人差があって、人の腕力だったり握力だったりに左右されるが、止める動作に必要な荷重からマウスを介してマウスパッドに押しこむ高さ分がその範囲になる。この押し込む高さって何?ってなる人は、ちょっと何言ってるか分からないかもしれないけれども、ヘルツの接触理論で考えて欲しい。簡単にいってしまえば、物体間が接触している場合に荷重がかかるとその分の物体表面近傍が弾性変形するから接触面積が増減するよねって話です。簡単には荷重/接触面積/押し込み量がバランスするという理解をしてもらえれば良くて、そのバランス分の許容量を肘の高さの範囲量に設定するイメージを持つように自分はしている。
★椅子と机の調整、アームカバーの必要性
ここまでRyanguru先生の動画をきっかけにしながらAIMの基本的な考え方やパッドに対して垂直方向への拡張まで述べてきたので、徐々にデバイス関連の話に入っていきたい。まずは、比較的調整方法が単純な肘の高さについて。当然のことながらパッドに対する垂直方向は、机の高さ or 椅子の高さに依存する。自分の場合は手首から肘までの橈骨がパッドに対して水平に接することが出来るように机の高さを調整している。昇降式デスクが一番調整しやすいけれども、無い場合は椅子の高さ調整でケアすればよいと思う。そして、その高さになると腕とマウスパッドが接触するので、出来るだけ摩擦が小さくなるようにアームカバーをつけている。この辺は相当腕力がある人でない限り(=止める・動かすという荷重をかける・逃がすと言う動作の瞬発力が早いためにケアする必要がないという人以外)は、共通の調整指針かと思う。アームカバーは、パッドとの接触が摩あるからと言って、マウスソールに対して接触面積がでかすぎるために、stop&goの調整になりうるような摩擦力を発生出来ない・しない方が良い。出来る限り表面が滑りやすいアームカバーならなんでもいい。但し、マウスパッドによっては特殊な織り方故に水平方向の左右奥行で異方性があって、とんでもなく摩擦が高くなる組み合わせがあるので柄物のパッドを使いたい人は要注意。
★パッド・ソールの選択
ここから一気に技術的な難易度が上がるので御容赦頂きたい。パッド・ソールの選択は、摩擦係数を選択するということになる。小中高の一般教育課程のカリキュラムで取り扱われるこの摩擦係数は、あたかも1つの物質が持つ表面の状態で固定される値として取り扱われるが、それはテストや試験の簡易化のためにそうなっているだけで、現実世界の取り扱いは異なる。ここは界面力学やトライボロジーの学問になるが、摩擦係数を考える上での基本概念として、ある物体の表面のエネルギーはその物体と別の物体がくっついた状態から切り離すのに必要な仕事で決まる(、これを接着仕事という)。なにが言いたいかというと、おおざっぱに言えば2つの物質の組み合わせによって摩擦係数が決定されるとこの場で覚えて欲しい。よって、AIMにおける摩擦係数は、マウスパッドとマウスソールの組み合わせで決まるということであり、ただでさえマウスパッドの数が多いにもかかわらず、ソールの種類と掛け合わせた組合せを試すことを考えなければいけない。ただ、そんなのはお金がいくらあっても足らない。
という中で頑張っている有志という人柱が、定性的な評価ではあるが、いろんなマウスパッドを相対比較して、コントロール系・スピード系といったグルーピングをしながら使用感を動画投稿する形でニーズに答えているのが昨今の状況である。おすすめはミオニさんなので、彼のyoutubeをフォローすることをお勧めする。こういうのは個人差があって意見の相違が出てもおかしくないが、彼のGOD Tier扱いのサンプルを試してきたところ、レビューにはかなり安定と信頼があったのでお勧め。彼のサイトもおすすめで、普段使っているマウスパッドを基準に、滑りやすくしたいのか、滑りにくくしたいのかで次の購入候補を決めるのが良い。マウスソールはパッドに比べれば種類が少ない部類なので、味変程度で考えるのがよい。ソールは大別すると、ガラス・樹脂・セラミックの3種類で直近はフッ素系樹脂のソールが目立つ。ただ、聊か政治的ではあるが、例のPFAS・PFOA規制の世界的な情勢から、いつ購入できなくなってもおかしくないため、これからの使用はおすすめしない。ここで整理したいのは、摩擦係数を選択する意味はどこにあるのかという点。具体的には、stop&goの中で、止めるときにマウス(センサー)がブレないようにちゃんと止まる摩擦係数であって、動き出すときに引っ掛かりを感じない摩擦係数を選択すること、これが一番大事。その次に滑走中の速度がなるべく早い組合せをチョイスすること。最近ガラスパッドの上でマウスをハンドスピナーみたいにくるくるしてアピールするような動画が出回っているけども、あんなのは二の次で良い。だいたい計算しなくても感覚的にわかるはずだけど、どんなにデカいマウスパッドであっても滑走時の最高速はほんの短い時間でしかキープできないし、プレイ中に常に最高速を求められ続けるようなシチュエーションが生まれるようなゲームも存在しないし、よっぽどゲーム中の立ち回りがおかしいか、CODのトリックショットぐらいの特定用途しかないから大道芸人に買わせとけばいい(ガラスパッドアンチ過激派の意見)。
★マウスの選択 シェル・重量・ポートレート
一番重要なのはシェル、次に重量とポートレートが選択する際に重要な事項になる。注意しなければいけないのは、ryanguru先生の動画ではマウスの持ち方は関係ないとなっていてこれは(プレイヤーから見れば)正しいのだけれども、マウス側が要求するプレイヤーの持ち方は存在する。具体的に言えば、ペンの持ち方の例があるように、マウスセンサーに一番近いところに指をかけるようにシェル設計がされており、それがマウス側が要求するプレイヤーの持ち方になる。例えばG-Wolves HTX-4Kだと、センサを親指・薬指・親指の付け根の3点で挟むようになっている。一方で、Vancer・Arbiter AKITSUは親指と薬指の第二関節でセンサを挟むようになっている。


なんでそんなこと言いきれるの?ってなるかもしれないけど、シェル形状がそうなるようになっているから持ってみれば一発で分かる。ここでシェルのプロファイルを計測して公開しているELO Shapesのデータベースを引っ張ってくる。マウスパッドのミオニさんサイトと同じように、マウス購入するときにこのデータベースを用いてシェルを決めて、次のマウスを検討してほしい。HTXの特徴としてマウス先端側の横幅が大きくとられている所が良く特徴として挙げられているが、これはセンサーの最短距離でakitsuのように親指と薬指の第二関節をシェルに合わせようとすると、第二関節よりも先に指先端がマウス角に自然と来るようになっている。明らかにセンサを親指以外の個所で挟み、親指は横移動にスライドさせる力方向を意識させやすいようになっている。なかなかこのシェル形状を採用しているマウスはないので、プロの一部でも愛用されていたりする理由はここにあると思う。akitsuは逆にセンサ横のくびれが強く否応でもセンサーを最短距離で把持することができる。こういうのはあくまで一例であって、いろんなマウスがいろんな握り方を要求しているのでマウスの声を聴いてほしい。ただ、それが自分の手に会っているか否かは運なので、その運要素をできるだけなくすように、以下のデータベースを使うことを推奨する。

ちなみにRyanguru先生も動画で言及していたエルゴノミックデザインについても触れておく。動画内では力をいれないような設計になっているからとか少しあやふやな表現だったので、これもシェル形状で見てみる。代表的なLAMZU Thoronのプロファイルを持ってきたが、HTXやAKITSUと比べて横幅が大きくとられているのにもかかわらず、背が高い特徴がわかる。これが今市場に溢れているエルゴノミックデザインのマウスの欠点。横幅が大きくとられているのでどの指でもセンサからの位置は大体同じぐらいの距離になる。つまりAKITSUのように特定の指でセンサーを掴むような形状じゃない。また、背が高いために親指・小指の高さ位置に比べて薬指が中指・人差し指の高い位置に来てしまう。この場合に何が起こるかというと、マウス全体の重心位置が高くマウスパッドから離れるため、マウスをスライドしたときに転びやすくなる。仮にコントロールしてるつもりであっても、どの指でもセンサーの位置決めをしやすくなっているため、必ずマウスパッドの水平面に対してどこかが傾いてしまい、センサーが捉える位置が斜めになって、水平方向の移動量が正確にセンサーに反映されない。そのためゲーミングで求められる高速移動には精度的に適していないという結論になる。こういうのもシェル形状から見て取れるので、如何にマウスの形が重要なのかが分かってくると思う。あれ?Logicoolのマウスは良く用いられてない?と気づいたあなた、あれはマウス重量をあげることでこの問題が解決してしまっているだけなのです。軽量化しはじめたらブランド的に死ぬ方向へ行ってしまいます。大体エルゴノミックスという表現で特定形状になるのがおかしくて、なにを目的とした人間工学的設計なのかハッキリいわんかい、適当に流行り言葉で販売してんじゃないぞって話です、はい。

次点でマウスを選ぶ基準になるのは、重量とポートレートで、基本は重量は全体の滑走速度をあげる(=摩擦力を小さくし、移動させるための力を最大限発揮させる)ために可能な限り軽く、ポートレートは数値が大きく設定できる方(最近は8,000Hz)を選択するのが良い。但し、ここで2つの要素とシステムでバランスする可能性があり、その可能性を決めるのがDPIになる。
★マウスのDPI設定
奇しくも低dpiのメリットを説明している以下の動画でdpiの基本的な概念が垣間見えるので掲載する。動画内途中で出てくる静止摩擦・動摩擦を考えた時にマウス移動量の下限が生まれるというのがポイントで、これがマウス重量の最小値を決める要素になる。この辺りは正確に計算できていない現代技術の限界かと思うが、体感的に1600dpiよりも高いdpiで40g以下のマウスを使用することは実質不可というのが筆者の感覚である。また、高DPIの場合にポートレートを上げるとグラフィックでの描写遅延、フレームレートの処理能力が足を引っ張ってくる可能性が出てくる。一例としてVALORANTでは、120FPS以下のシステム環境で8,000Hz/1,600dpiは運用は不可の感覚があるのでこれはご参考。このあたりはいよいよデバイスだけではなくPC本体の性能に関わり始めてくるので、今回の記事はここまでにしたい。以上
おまけ:筆者のHS率
こんだけ述べといて実力しょぼかったらアレなのでblitzから掲載。

