モニターディスタンスで感度を変換する FPSとFOV④

FPSとFOV

前回モニターディスタンスが出てきました。

普通は振り向きを〇センチにするかと振り向き変換を行っていますよね。今回はモニターディスタンスを利用して視覚的な感度の変換、MD%変換をします。

視野角を上げると感度が高く感じます。振り向きは変わらないのに、という話です。

前の記事:FPSとFOV③ 通常時視野角からADS視野角を求める

感度のMD%変換とは

マウス感度の高い低いは手の感覚で振り向きを何センチに設定するかどうかで考えると思います。

しかし視野角を大きくすると視覚的な感度が高く、視野角を小さくすると視覚的な感度が低く感じます。振り向きは変わっていないのに。

この視野角を変えたときに視覚的な感度を揃えようというのがモニターディスタンスの感度変換です。

そもそもMD変換はすべてのFPSゲームで使用されています。

当然ゲームのADS時は振り向きが一緒ではありません。ADSすると振り向きは長く、振り向き感度は低くなりますよね。つまりMD変換でADSしたときに違和感がないように感度を変換しているわけです。

例えば

・APEXはMD0%変換によってADS感度を変換しています。他ゲーに比べADS感度は低めですよね。

・ValorantはMD100%変換です。スナイパースコープの感度高く感じますよね。

・旧R6SではADS感度84以上だと腰だめの振り向きと等倍サイトの振り向きが一致するMD∞%変換です。振り向き変換ですね。

・BF2042はデフォルトでMD75%変換ですが統一照準の設定によって0から169%の間で選択することができます。

という風にモニターディスタンスは知らず知らずのうちに利用しています。

またMD〇%の値は小さい方が感度が低く、大きい方が感度が高くなります。

そしてMD〇%の値は何を示すのかというと異なる視野角やADSしたときの画面上で、画面の〇%へのフリック感覚が一致するということです。画面の〇%までエイムするときのマウスの移動距離が一致するということです。

・MD0%のとき0%の内側はありませんから画面上どの位置へフリックしても感度が遅く感じますがクロスヘア近傍での操作感覚が一致します。

・MD75%のとき75%より内側ではフリック感度が高く、外側ではフリック感度が低くなります。

・MD100%のとき画面内へのフリック感度は高く感じます。

・MD∞%のとき無限の前では有限はすべて等しくみなせますから異なる視野角間で振り向きが一致する、振り向き変換となります。

感度をMD%変換する

マウスの移動量はこの図の中のどこと対応しているでしょうか。マウスを動かすことで視野が回転するわけですから、角度あるいは円周と比例します。

角度∝マウス移動距離

つまり 180[deg]と振り向き[cm] は対応しているというわけですね。

MD変換ですからMD〇%までのマウス移動距離を二つの視野角に対して一致させればよいわけです。これが今回の満たすべき条件となりますね。

2つの視野角間の変換ですから、変換元の視野角について図中のθ。変換先の視野角に対してφを全く同じ図で考えましょう。

ここで比例関係から、θ’とφ’が一致させたいマウス移動距離に対応してきます。θ’とφ’ に対応した一致させるべきマウス移動距離を d とします。

また変換するための変換元感度の振り向き[cm]、求めるための変換先感度の振り向き[cm]を考えます。

よって比例関係から、180[deg]に対するθ’の割合と、(変換元振り向き[cm])に対するdの割合は等しくなります。

同様に180[deg]に対するφ’の割合と、(変換先振り向きcm])に対するdの割合は等しくなります。

$$\frac{θ'[deg]}{180[deg]}= \frac{d[cm]}{\mbox{(変換元振り向き[cm])}}
$$
$$\frac{φ'[deg]}{180[deg]}= \frac{d[cm]}{\mbox{(変換先振り向き[cm])}}
$$

マウス移動距離dが等しくなるように変換元・先で式を立てることができました。dを消去します。

$$\mbox{(変換先振り向き)}=\frac{ θ’ [deg]}{ φ’ [deg]}\mbox{(変換元振り向き)}$$

よってどうすれば感度をMD変換し求めることがわかりました。

ではθ’とφ’に具体的な数値を入れていきましょう。前回求めたものを使います。

$$θ'[rad]=atan(MD tanθ)$$
$$φ'[rad]=atan(MD tanφ)$$

このとき振り向き変換するときに好きな振り向き何センチと決めて変換するように、好きなMD何%と自由に設定します。75%なら0.7を入れればいいわけですね0%なら0を入れると計算できませんから.00000000001とか0に近い値を。∞%なら999999999とかでかい値を入れればいいですね。

前回同様[rad]のままでは扱いにくいので[deg]に直しましょう。またθ、φを変換元視野角[infov]、変換先視野角[outfov]に直しましょう。

$$θ'[deg]=atan\left[MD tan([infov]\frac{\pi}{360})\right]\frac{360}{\pi}$$
$$φ'[deg]=atan\left[MD tan([outfov]\frac{\pi}{360})\right]\frac{360}{\pi}$$

代入

$$\mbox{(変換先振り向き)}=\frac{ θ’ [deg]}{ φ’ [deg]}\mbox{(変換元振り向き)}$$
$$\mbox{(変換先振り向き)}=\frac{atan\left[MD tan(\mbox{[infov]}\frac{\pi}{360})\right]}{ atan\left[MD tan(\mbox{[outfov]}\frac{\pi}{360})\right]}\mbox{(変換元振り向き)}$$

よってモニターディスタンスによる感度変換ができました。

$$\frac{atan\left[MD tan(\mbox{[infov]}\frac{\pi}{360})\right]}{ atan\left[MD tan(\mbox{[outfov]}\frac{\pi}{360})\right]}$$

この振り向き倍率を元の振り向きにかけてやればMD変換感度が求まります。

また前回同様このときのinfov、outfovは16:9タイプの視野角でなくてはなりません。

例えば16:9視野角を106から120に上げたけどなんか感度低く感じるなというときにinfovに106をoutfovに120をいれMD75%にしてみようと思ったとしてMDに0.75をいれます。すると振り向きを85.6%にすればよいということがわかります。

ADS感度倍率をMD%変換する

MD変換するのは腰うち感度だけでよいのでしょうか。最初に言ったようにゲームによってADS時のMD%は異なります。例えば0%のAPEXのADS感度をMD75%でプレイしたいときにADS感度倍率もMD変換する必要があります。

腰うち視野角とADS視野角をそれぞれinfov、outfovとして先ほどのMD変換係数を求めます。その係数をゲーム内MDと求めたいMDとで比を取ってやればそれが設定するべきADS感度倍率になります

$$
\mbox{(ADS感度倍率)}=
\frac{
\left(atan\left[gameMD tan(\mbox{[hipfov]}\frac{\pi}{360})\right]\right)
\left(atan\left[myMD tan(\mbox{[adsfov]}\frac{\pi}{360})\right]\right)
}
{
\left(atan\left[gameMD tan(\mbox{[adsfov]}\frac{\pi}{360})\right]\right)
\left(atan\left[myMD tan(\mbox{[hipfov]}\frac{\pi}{360})\right]\right)
}
$$

例えばここにAPEXの腰うちとADS時の16:9fovをいれgameMDに0.0001を、myMDに0.75を入れ求まったADS感度倍率を設定するとAPEXのADS時の感度がMD75%に合わせて設定したということになります。

 

求めた結果から視覚的イメージをつかむ

MD0%に限って言えば、長々とした式は必要ありません。電卓もマウスを動かすことも必要ありません。視野角の値すら必要なく感度変換の計算ができてしまいます。このお手軽さから、MD%は楽でいいなと思います。

振り向き倍率=tan(16:9infov/2) /tan(16:9outfov/2)という単純な式で計算することができます。

さらにこれは単純に画面上での長さの日ですから、fovを変える前後で画面上で横幅が拡大縮小した比を求めるだけです。つまり前後でスクショを取って横幅がどれだけ変化したか見るだけで変換することができます。

ここまで円周とマウス移動量を一致させるように見てきました。つまりこのピンクの部分です。

一度円の半径を1→1/cosθに置き換えたように、実数値でなく比での話をしてきましたね。

今度は弦の長さを対応させて考えてみます。

弦を対応させ、相似になるようにします

すると今度は弦に対する弧の長さがマウス移動量に一致します。

円の程度が変化します。

この上をマウスで動かすようなものです。

MD0%を考えてみます。0で割ると無限になりますので、無限に大きい円とします。つまりその弧は直線となります。画面です。

よって先ほど述べたようにMD0%の場合計算式が簡単になります。異なるFOV間で画面上の長さと感度の比が一致するということです。

逆にMDが100%以上、感度が高い場合についてみてみます。このようになります。

おわり

当然感度をモニターディスタンスで合わせたところで1ミリも強くはなりません。しかしADSが存在するすべてのゲームで使用されている計算ですから知っておいて損はないと思います。

最強の感度は何かというと設定を変えるたびに高くしたり低くしたり微調整しながら決めていくのが最強だと思います。しかし設定を変えるたびに毎回やっていては日が暮れてしまいます。この設定はMD〇%で自分にあっているかもしれないとか思ったり設定コロコロ変えるときに機械的に感度を変換して移植できたら楽だと思います。この設定はこういう設定だという尺度が増えますそういう楽をするために知っておきましょう。

 

MD変換を行う計算フォーム:

[計算機]モニターディスタンスで感度を変換-Sensitivity Converter by Monitordistance

関連:[計算機]APEXの感度・ADS感度をモニターディスタンスで変換-Apex Sensitivity Converter By Monitordistance

コメント

タイトルとURLをコピーしました