押す・押し続ける・離す

何気なく押しているボタンだが、押すだけで色々できるのはなぜだろう

非常ボタンは気軽に押すな!
これがアフォーダンスというやつでしょうか

ボタンを押すということ

 ボタンを押すという行為は、インタフェースに真剣に取り組んでいないと気付かないが、実は4つの状態に別れている。
 つまり、「触れていない(OFF)」「押す(PUSH)」「押し続ける(ON)」「離す(RELESE)」である。
 これをきちんと把握して使い分けないと、インタフェースが破綻したソフトができあがってしまう。
 逆に言えば、インタフェースを少しでも考えているならば、これは常識といえる。
 まず以下の、ボタンを押すという行為に際して起きる、ボタンの状態の変化を見てほしい。

触れていない
OFF
ボタン
押す
PUSH
押す
押し続ける
ON
押し続け
離す
RELESE
離す
触れていない
OFF
ボタン

 これらの状態変化を基本として、適切な状態をアクションに割り当てなければいけない。

状態とアクション

 ゲーム制作に際しては、ボタンの4つの状態に適切にアクションを割り当てて行かなければいけない。
 まず基本として、特に理由がない限りは一番早く発生するPUSHで判定すべきである。
 インタフェースの基本は、ユーザーのアクションに対して、とにかく早くリアクションを出すということにつきる。
 少しでも遅れると、ユーザーはハードウェアの故障などを疑いはじめてしまう。

 次に、そもそもの道具や仕組みやアクション感覚に合わせること。
 既に知っている感覚とインタフェース感覚が異なると違和感が出るからだ。
 例えば、「銃」であった場合、「押す」で弾が発射されるべきで、使っている武器が「弓」の場合、「離す」で矢が発射されるべきである。
 ただし、RELESEでアクションが発生する場合は、PUSHの時点で弓を引き絞ったグラフィックに変えるなどの工夫が必要。
 ゲームのルール的には意味のないことであったとしても、ユーザーのアクションに対しては、何らかのリアクションが必要だからだ。
 以下は、武器による発射タイミングの違い。

ボタン
拳銃押す
マシンガン押し続け
離す
ボタン

 コナミメタルギアソリッド2などは、ボタンを押して構え、離した時に発射されるため感覚が弓っぽく、少々違和感がある。

 マウスでGUIオブジェクトをクリックする場合は、PUSHではなくRELESEで判定するべき。
 というのも、ボタンの上でPUSHした後、ポインタを移動してボタンの外に出し、RELESEをすることで、簡単にキャンセル可能だからだ。
 また、ドラッグ操作を併用できるという利点もある。
 この場合もユーザーのアクションに対し最速でリアクションを起こすということは大切なので、PUSHの時点でボタンの色を変えるなどのリアクションが必要。
 マトモに作ってあるパソコン用のアプリケーションは、皆このような工夫がされているはずだ。とりあえず、このページのリンクをクリックするなどして確認してみてほしい。

 ただし、モグラたたきなどのアクションゲームはスピードが大切なので、マウスであってもPUSHで判定すべき。

押し続けるということ

 そもそもボタンを「押す」という行為は、身体的には「力を入れる」事であるから、ゲームに於いても「力を入れる」という意味として利用できる。
 となると「押し続ける」は「力を入れ続ける」ということを意味するのは自明だろう。そこで、所謂「溜め」としてボタンを押し続けることが良く利用されるわけだ。
 有名なのはアイレムR-TYPE。逆にナムコドラゴンセイバー(ドラゴンスピリッツ2)のように離している時に溜めるタイプもあるが、これは「力を抜いてる時に力が溜まる」ことを意味して、強い違和感がある。
 よほどの事であっても、妥協して「押した時に溜まる」ように設計すべきだろう。実際この、離している時にエネルギーが溜まるタイプのシステムは、極端に採用率が低い。

 例えば、ジャンプアクション系のゲームでは、押し続けていると飛距離がのびるとか、格闘ゲーム(ADKワールドヒーローズなど)では、押し続けているとパンチやキック攻撃力が増す、といったことで「押し続ける」=「力を入れる」を利用している。
 ボタンを押す長さを、チョイ押し、グイ押し、といった表現で区別を付けているゲームもある(チュンソフト風来のシレンシリーズなど)。

チョイ押し ボタン 押す 押し続け 離す ボタン
グイ押し ボタン 押す 押し続け 押し続け 押し続け 押し続け 押し続け 押し続け 離す ボタン

 なお、長押し、という表現の場合は、効果がRELESE時に発生するのではなく、ある程度のDOWNが持続(例えば2秒間)した時点で効果が発生する。
 長押しについては、携帯電話などの電源OFF操作でお馴染みかと思う。
 攻撃方法の変化などの状態変化に長押しが使われている場合、画面がフラッシュする、特徴的な効果音が鳴るなどで、ユーザに知らせる必用がある。
 画面の一部の色が変わるとか、自機を含めたアイコンが変化する程度では、状態が変わった瞬間には気付きにくい。
 もちろん併用するのは問題ない。

一瞬だけのチャンス

 PUSHとRELESEには共通点がある、それはボタンのONとOFFの2つの状態が切り替わる「瞬間」いうことである。
 逆にONやOFFの状態は、連続した時間であり「瞬間」ではない。

右のようにPUSHは続けて発生しない ボタン 押す 押す
RELESEも同様に続けて発生しない ボタン 押す 押し続け 離す 離す

 PUSHが発生すると必ずRELESEが発生するし、PUSHが発生せずにRELESEだけ発生する事もない。常にPUSHとRELESEは対になっている。
 別の言い方をするとボタンを1度押す間には、PUSHもRELESEも1回しか発生しない。
 ボタンを1回押すという行為には、必ず2回のタイミング判定のチャンスがあるとも言える。

 色々なゲームで連続してタイミング判定を行う必要があるシチュエーションがある。
 2回ともPUSHで判定すると、どうしてもONそしてRELESEの間隔が生まれる、結果スヒード感が損なわれてしまう。
 そこで、最初の判定をPUSHで行い、次の判定をRELESEで行うことによって、スピィーディーなゲーム展開が可能になる。

 陸上ゲームやゴルフゲームなどの、角度ゲージをPUSHで開始しRELESEで決定することも分りやすい例だろう。
 同様の操作を、2回のPUSHで判定しているゲームもあるが、その場合は多少アクション性を落とすことになる。
 アクション性が高いゲーム=良いゲームとは限らないが、基本的にはアクション性が高い(リアクションが素早い)ほうが操作が気持ちいい。

 格闘ゲームの、通常技をキャンセルして必殺技を出す行為も、PUSHとRELESEを利用した連続判定が利用されている。
 ボタンの連打でも「通常技キャンセル必殺技」が出せるのだが、実は多くの格闘ゲームでは1回ボタンを押すだけで「通常技キャンセル必殺技」が出せるようになっている。
 これは必殺技がPUSHでもRELESEでも発生するため。PUSHで通常技が発生しRELESEの部分で必殺技が発生するのだ。

 先ほど紹介した、押している時間で発生するアクションが変わる操作も、PUSHとRELESEで2回判定を行うものの一種と言える。

感圧ボタンについて

 プレイステーション2以降やドリームキャストやゲームキューブのLRトリガのように押した強さを判定できる感圧ボタンが付いているコントローラが標準装備されていても、案外感圧を利用しているソフトは少なかったりする。
 デジタルなON/OFFだけのボタンでも上記のように細かな判定が可能なので、さほど問題がなかったりするのだ。

 そこで結論。

このへんボタンの基本です