偉そうなタイトルですが、要はこれまでいくつも実験してきた中である程度わかってきたことと仮定について、ひとまずまとめてみよう…というのが今回のネタ。
まずはレバーやボタンの物理的な特性による操作レスポンスの問題。
レバーの場合はセンターつまりニュートラル、触れていない中立の状態から、スイッチが押されるまでの距離と反力の強さ。この距離が長かったり反力が異様に強かったりするとレバーの物理的な特性でレスポンスを悪く感じたり、操作していて疲れたりします。中立からスイッチまでが近ければ、よりクイックな操作が可能になりますが、レバーをはじいたときに反対側に誤入力される恐れも高くなります。そこらへんのバランスで各社・各型番でのレバーの好みというものが出てくるわけですが、そこらへんは個人差で好みがあるようなので、興味があるならばいくつものレバーを触って何度もプレイして比べてみるのがよいと思われます。個人的にはベストはやっぱりセイミツ工業製のLS-32系です。LS-40も良好。LS-32よりちょっと軽めですね。
ボタンの場合は押し込んでからスイッチに到達するまでの距離、これが短ければ短いほど反応の敏感なボタンということになります。また、ボタン自体を押すための重さつまり必要な力が軽ければ軽いほど疲労しにくい、というのもあります。ただ、軽くて超反応のボタン…最近だとホリがファイティングエッジ用に作った玄ユニットがそんなボタンですが、指を乗せただけで超反応するようなボタンなので、プレイスタイルや使用するゲームが極端に制限されそうな気がしました。それよりも一般的で軽いのがサンワボタン、これは玄ほど軽く超反応ではないですが、比較的軽めのボタンです。ただ、個人的にはこれも誤爆の恐れがないとはいえないボタンだと思います。また、連打のときに確実にボタンから指を離さないとスイッチがONのままになったりするのも厄介。わたしはというと、やっぱり好みはセイミツ工業製のボタンです。ある程度押し込まないとスイッチが入りませんが、逆にそのおかげで操作の確実性は高いなーと思っています。指を乗せている程度では反応しないけど、押したいと意図して押したときはきっちり反応してくれるので、操作する意思を伝えるデバイスとしては良好なつくりです。とはいえ、ボタンの場合はそこまで極端にレスポンスに差は出ないと思われます。ボタンの場合はある程度は慣れでなんとかならなくもない…とは思えます。
ここまでは物理的な操作機器の特性。
ここからがいつもの実験とかで試している回路や基板に起因するレスポンス差についての考察です。
考察といってもそんな大げさなもんじゃないんですが(苦笑)。
いまどきのコントローラーはほぼすべてUSBでの接続ですが、まず前提として、本体(たとえばPCだったり、Xbox360だったり、PS3だったり)と、各コントローラーの処理は、非同期であるわけです。これはどういうことかというと、プレーヤー的にはゲームの処理つまり本体の処理時間単位が秒間60フレームであればそれが基準に見えるわけですが、各コントローラーはそれとは同期していない、と見られます。つまり、各コントローラー、たとえばRAPVXだったりRAPN3だったりTEだったりは、それぞれのスイッチから入力された結果を本体側へUSBの信号として送り出すコンピューターを基板上に本体とは別途で持っていますが(というかコントローラーそのものがそういう『入力を信号化して送る』装置です)、それらの処理速度は本体の処理速度とは一致していないし、同期もしていない、ということです。レバーやボタンの換装のためにフタをあけて、ついでに基板も見た人ならおわかりいただけるかもしれませんが、小さな処理チップと、それの駆動のためのクロックが基板に搭載されているのを見たことがあるんじゃないでしょうか。要はコントローラー自体も本体からは独立したひとつのコンピューターなわけです。で、その処理速度が本体と同期されていないために、各コントローラーの処理速度の差がゲームに対する反応速度の差という結果となって現れる…現れている、のではなかろうか?と考えられます。
Host ____|____|____|____|____|____|____|____|____|____|____|____|
VX ___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|_
TE ______|______|______|______|______|______|______|______|____
超大雑把なAAですみませんが、上記のような感じで処理の時間単位がそれぞれ異なる…とイメージしてもらえると分かりやすいんじゃないか?ということで作ってみました。
見方としてはそれぞれの縦線までの間に入力されたものが縦線の段階で送信されていて、それがホストの縦線の区切りまでに入っていればその単位で入力と判定される…逆に分かりづらいでしょうか(涙)。
Host ____|____|____|____|____|____|____|____|____|____|____|____|
VX _:_|___|___|__:|___|___|___|_:_|___|___|___|___|__:|___|___|_
TE _:___|______|_:____|______|_:____|______|______|_:____|____
ちょいとずれてて分かりづらくてすみませんが、ここでボタンが押されたタイミングをコロンで打ってみました。
テキストで打ってる以上、多少ずれが出ていてすみませんが、コロンの打たれたタイミングは同時押しされていると見てください。
1回目と3回目は同時押しでホストの処理時間単位でも同じ枠に収まっているので同時押しとして判定されますが、2回目と4回目は同時には押しているのですがホスト側での処理時間単位の枠には同時に収まってないためにVXの方が先に押されたという判定になる…という解釈です。
要は時間に対する分解能がホストつまり本体(PCや360やPS3)よりも細かければゲーム内で操作に対して機敏に反映されますが、それより粗いと遅延が発生する、という仕組みではないかと。
また、たまに逆転が起こるのもボタンが押されたときの処理タイミングの相違によるもの…というのが、上の図を見てご理解いただければ幸い。この結果にホストとコントローラーの相性問題というものはなく、どんなホスト(本体)であろうと同じ結果が出ることは、これまでにわたしがあげてきた実験の結果を見ていただければ、それもおわかりいただけることだと思います。いまだに『機器間の相性が』とか言い出す人は、そこらへんが理解できてないと思われますのでもはや論外です。
また、同じコントローラーでも逆転現象が起こることは、要はホストとも各コントローラーとも処理が非同期であることに起因していると思われます。
Host ____|____|____|____|____|____|____|____|____|____|____|____|
VX ___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|_
VX _|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___
つまりこういうことです。
実のところ現状までの実験では動作中にコントローラーをとっかえひっかえしてるので、おそらくこういったずれが発生しているために同じコントローラーで同時押しを行ってまれに相互に前後してずれることがあると思われますが、同じコントローラーを二つ接続した状態で電源投入した場合は完全に同時になるんじゃないの?というのは試してません。これについては仮定ですが、その場合はおそらくある程度は一致した結果が出やすくなるんじゃないかなぁ、と。要は各コントローラーは電源が入った時点から処理を開始するであろうという仮定ならば、同時に電源が入れば処理タイミングも一致してくるんじゃないかなー、と。あくまで仮定ですが。
あと、このAA自体は今回わかりやすくということでVXがホストよりも細かく書いていますが、実際にはVXもホストの処理時間より単位が粗い可能性もあります。ただ、それでも他の機種よりは細かいことは間違いないですが。それもこれまでの実験結果から容易にわかることだと思われます。
また、このように処理単位時間が細かいということは、つまり同時押しとかは逆に難しくなる…ということもご理解いただけるかと。たとえばこれまでにレスポンスが速いとされてきたVSHGとか、RAPVXにおいて、同時押しが難しいとかコマンドが入りづらいといった話があがることがありましたが、それはコントローラー側が速いために、プレーヤー側にも、よりゲームに合わせた正確な操作が要求されている…と、いうことではないでしょうか。要は入力に対する時間単位がゆるいコントローラーなら同時押しとして判定されやすいけど、その時間単位が細かくシビアなコントローラーだとプレーヤーの操作で同時押しのつもりでも少しでもずれているとずれた状態でホストに送信されるので、同時押ししたつもりが実際にはずれていてそのまま正直に送信されて、ということなのではないでしょうか。
また、ここではっきりさせておきたいのは、ゲーム中に遅延が顕在化する状態としては、よく勘違いされますが何回かに1回、1フレーム程度の遅れが発生する…ということのために、何回かに1回しか遅延しないんじゃん、と認識されている方がいることです。それは実験方法として格ゲーで相打ちという方法をとっているからであって、認識としては表層の結果を捉えているだけで誤りだといわざるを得ません。実際には遅い側のコントローラーは速いコントローラーよりも常に処理が遅いので、そのため、実験で出ている結果よりも操作で体感として得られるレスポンスにははるかに差があります。ただ、それを体感できるかどうかは個人差がありますが…。また、格ゲーというジャンルの特性上、遅延には気がつきづらいというのもあるかと思われます。それについては、常に自機を移動させて切り返しなどの移動方向の変化が頻繁にあるようなアクションやシューティングといったジャンルで触り比べてもらうのが一番分かりやすいんじゃないかと思います。
以前から何度も例に出していますが、RebRankさんのRedRiveをプレイしていただくのがわかりやすいかなぁ、と。
自機を動かしまくってボタンのタイミングで敵を潰していくアクションゲームなので、コントローラーのレスポンスの差は格ゲーよりも比較的わかりやすいと思います。フリーのゲームなのでやってみてもらえるとよいかと(お気に召しましたらRefRainとかもどうぞお買い上げをー)。これで比べるとわかりやすいんですが、レスポンスのいいコントローラーだと操作していての気持ちよさが全然違います。遅いコントローラーだと常に操作感が重いと感じるのではないでしょうか。
比較にわかりやすいからということでRedRiveをあげさせていただいていますが、純粋にゲームとしてかなり面白いので、比較抜きで楽しんでもらえたらそれはそれで幸いです。
それはさておき。
本来ならばレバーやボタンのスイッチが入ったタイミングとコントローラーからホストへ送られる信号の時間差を計測できれば一番いいんでしょうが(おそらくその結果には若干の誤差はあれ常に一定しているはずなので)、そういった装置を組める知識も技術もないので、とりあえずコントローラーごとに同時押しで相打ちをさせてみてどれが速いか比べてみよう…ということをやってきたのが、これまでの実験結果です。
視覚的にもそれなりにわかりやすいし、まあいっか、と。おかげさまで遅延が何回かに一回程度しか発生しないものだとかいうような誤解を生む原因にもなってしまいましたが(涙)。だからしつこいようですが、遅いコントローラーは常に遅いんですよ、っていう。そこを理解してないならこの問題については触れるべきではないかと。
以上、ここまでで、これまで出た結果に基づいていろいろ考えられることをまとめてみました。
要はハードメーカーさんはめっちゃ処理の速いコントローラーを作ってくれれば本体との同期を取ってない以上はレスポンスのいいコントローラーができあがるんじゃあないの?とか。でもってここでアホなネタとしては、たとえばレスポンスの悪かったTEとか、クロックアップしたらどうなのよ?っていう。搭載チップがわからないからどのくらいまでできるのかとかさっぱりわかりませんけど。クリスタルオシレータの載せ換えで何とかなってしまったりしたら、それはそれで面白そうだなぁ…とか。面倒くさいし何が起こるかわからないんでわたしはやりません。もうTEは全部手放しちゃったし。
ご意見・ご感想等あればコメントからよろしくお願いいたします。
最近のコメント