ぼくのかんがえたさいきょうのばーちゃるぱっど

スマホで遊びにくいゲーム 島国大和のド畜生

これの「等速直線運動」について。
ぼくも最近スマホでゲームを作り出した身なので、このへんの話には関心がある。

たとえばスマホに往年のファミコンゲームを移植するとしたら。
いかにしてファミコンのコントローラーによる操作感をスマホ上に再現するかが大きな課題となる。
その、おそらく唯一の解答がバーチャルパッドだ。
バーチャルパッドに不満は多々あるけど、これでやるしか無いよね~という話になる。

そこで、どうすればバーチャルパッドの操作性を向上させることができるか?を素人なりに考えてみたい。
ちなみにぼくは、バーチャルパッドを使ったアプリを作ったこともなければ、バーチャルパッドを使ったアプリで遊んだことも殆ど無い。
バーチャルパッドひとつをとっても、きっと日々進化しているだろうから、ぼくのイメージしているバーチャルパッドはすでにずいぶん古めかしいものかも知れない。
本当はきちんと調べて語るべきなのだけど、まぁ、素人の思考遊びということでご容赦下さい。

バーチャルパッドのタイプ

バーチャルパッドには、大きく2つのタイプがあるようだ。
はじめから画面上にパッドが表示されているタイプ(固定タイプ)と、タッチした場所を中心としてパッドが表示されるタイプ(呼び出しタイプ)と。

固定タイプは、遊んでいるうちにどこにパッドがあるか分からなくなって(指がずれる)、ときどき目で見て確認しないといけなくなるのが辛いところ。
その点呼び出しタイプは、タッチした場所にパッドが出現するのでその心配がない。
それゆえ多くのゲームで、呼び出しタイプのほうが遊びやすいのではないかと思う。

呼び出しタイプの問題点

リンク先のブログにあるように、呼び出しタイプにも「切り返し」に弱いという弱点がある。
例えば、右方向に移動させていたキャラクターを、急に上方向、あるいは左方向に移動させたいといった場合。

呼び出しタイプでは、最初にタッチした場所にパッドが表示される。
そこから最初の方向を入力するのは簡単だ。
指を入力したい方向にずらすだけでいい。

しかし、そこから二番目三番目と入力方向を変更するときには、「すでに表示されているパッドに対して正しい位置に指をずらす」という操作になる。
これはつまり、固定タイプでの操作と同じなので、遊んでいるうちにどこにパッドがあるか分からなくなって(指がずれる)、ときどき目で見て確認しないといけなくなるのだ。

移動タイプ

それならば、入力方向の判定を最初にタッチした場所を基準点にして行うのではなく、現在指のある場所を基準点にして行う方法はどうだろう。
つまり、最初にタッチした場所から見てどの方向に指があるかではなく、いま指のある場所から見て次にどの方向に動かすかで、入力方向を判定するやり方だ。
もしくは、これだと入力方向の判定が敏感になりすぎるかもしれないので、「前回指が静止した場所から見て〜」としても良い。

言わば、パッド自体が指の動きに追従して移動するタイプである。
これならば、今指のある場所が常に方向判定のための基準点になるので、何番目の入力方向の変更であっても、常に呼び出しタイプの一番目と同じ操作になる。

しかし、この移動タイプには別の大きな問題がある。
たとえば、右→上→右→上→・・・と繰り返すような場合、パッドがどんどん画面の右上に移動してしまい、ついには指が届かなくなってしまうだろう。
そうなっては、さすがに操作感がいいとはいえない。

ただ、ゲームによっては、こうしたケースはほとんど起こらないと割り切れるものもあるかもしれない。
(指が届かなくなる前にキャラクターが画面の端に到達するとか)
あるいは、これ以上移動すると指が届かなくなりそうだとなったら、ゲームを強制的にポーズして「指の位置を戻してください」とアナウンスする、といったことが出来れば使えるかも知れない。
アクションゲームでなければ、届かなくなった時点でプレイヤーが指をタッチしなおせば良いだけの話だし。

操作ミスの補正

移動タイプは使えない、やはり呼び出しタイプでなんとかしたいという場合。
一番目はともかく、二番目以降の方向の入力をプレイヤーが正確に行うことは、まず不可能と考えて良いだろう。
であるならば、不確かな入力情報を、いかにしてプレイヤーの意図を読み取って正確な入力情報に補正してやるか――というのが、検討すべき方向性になるのではないかと思う。

プレイヤーが入力方向を切り替えたとき、それは何らかの意図を持って切り替えたと考えるのが基本だ。
その意図が分かれば、プログラムが受け取った方向の入力値がプレイヤーの意図する通りのものであるのか、それとも意図せぬ操作ミスであるのかを判断できる。
判断できれば、意図せぬ操作ミスは意図した通りの操作に補正してやればいい。
それができれば、バーチャルパッドの操作感は大幅に改善されるのではないかと思う。

ただし、プレイヤーの操作意図を正確に読み取って操作ミスを補正することは、はっきり言って不可能だろう。
なので、できることは「いかにそれっぽく見せるか」ということだ。

状態に応じた補正

たとえばシューティングゲームを考えた場合、プレイ中のゲーム状態は、大きく以下の3つに分類できる。

  1. 通常時…普通に自機を移動させているとき。
  2. 攻撃時…敵を攻撃する(もしくはアイテムを取る)ために移動しているとき。
  3. 回避時…敵の攻撃や障害物を避けるために移動しているとき。

この中で、操作ミスがプレイヤーのストレスや憤りにもっとも直結するのが回避時だろう。
回避時の操作ミスさえ解消できれば、バーチャルパッドへの不満はほとんど解消できるのではないかとさえ思う。

一方、通常時の操作ミスについては、どうしても補正しなければならないという緊急性は低い。
「上に移動させたかったのに右上に移動した」なんて場合でも、プレイヤーはおそらくほぼ無意識に指の位置を調整し直して、方向を「上」へと直すだろう。
そんなふうに、プレイヤー自身による補正を待てる状況なら、プログラム側で強制的に補正してやる必要はない。

攻撃時に関しては、プレイヤーには「このタイミングであの場所へ行きたい」という明確な意図がある。
操作ミスでそれを達成できなければ当然ストレスになるので、補正できるならするべきだ。
ただ、回避時ほど緊急性は高くないので、「弱めの補正をかける」といった話になるだろう。

回避時の補正

考え方としては、こうだ。

回避時にプレイヤーが入力方向を変更するのは、「弾を避けるため」である。
しかし、この入力値で移動すると弾を回避できない。
でも、この方向なら回避できる。
ならば、これは操作ミスだということで、回避できる方向に補正してやる。

操作ミスの補正の考え方として、プレイヤーの入力方向がAかBか疑わしいという場合、ABどちらがプレイヤーにとって得かを判断し、得する方を採用すればいい。
その結果、本当は逆側の損する方が正解だったとしても、それはそれで構わない。

「操作ミス」でラッキーにも弾を避けられたというケースでストレスを感じるプレイヤーはまず居ないだろう。
場合によっては、自分の入力した方向と違う方向に自機が動いたことすら気づかずに、「俺って上手い!」と勘違いしてくれる可能性すらある。

バーチャルパッドに操作ミスが付きまとう以上、作り手側にできることは、「プレイヤーにとって気持ちいい操作ミスを起こす」ことだと思う。
ゲームはプレイヤーをいかに楽しませるかという接待の側面も持つのだから、厳密に判定して不快にさせるより、ゆるゆるに判定して気持よくさせるほうがゲームとしては正解なのだ。

入力方向を補正したあと、パッドを移動させるか否かという話があるけど省略。

*****

とりあえずここまでで書きたいことを書いた感があるので、尻切れトンボだけど終了。
所詮は机上の空論というか、思いつき未満の域を出ていないので。
実際にやって試してみないと、上手くいくともいかないとも言えない。

結論としては、もしも自分がバーチャルパッドを作るなら、ゲーム状態に応じた入力補正(プレイヤーハッピー補正)を行う方向で考えてみたい、ということで。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です