sam113のアクションゲーム研究室

おもにフリーや同人、インディーズなどでアクションゲームを作っている方に向けて、アクションゲームを作るヒントになるような情報を発信していきたいと思います。

操作感の謎 ~究極のジャンプを求めて~

操作感とは何か

人間は、道具を使いこなす生き物です。長い棒を手に持つと、棒の先端が自分の身体の延長のように感じられ、棒を自在に操ることができます。これは人間の脳が持つすぐれた能力の一つです。

ゲームを遊ぶ場合も同じです。私たちはゲームパッドなどの入力デバイスを使って、ゲーム内のキャラクターを動かします。
ゲームに慣れないうちは、キャラクターを自在に操るのに苦労しますが、ゲームに慣れてくると、キャラクターが自分の身体の延長のように感じられて、半ば無意識的にキャラクターを動かすことが可能になってきます。

この独特の感覚が、操作感と呼ばれるものです。

 

アクションゲームは、キャラクターの操作に慣れていく過程を楽しむゲームだといえます。格闘ゲームなんかが分かりやすいですが、上級者は本当に針に糸を通すような正確さでキャラクターを操ります。
この慣れる過程に大きなストレスがあると、そのゲームは操作感が悪いと言われたりします。ストレスなく操作に慣れていけるゲームは、初心者から上級者まで遊びやすいものとなります。

そのためアクションゲームにおいて、操作感の良さはプレイの楽しさに直結する重要な要素となります。

ではどうすれば操作感の良いゲームを作れるかというと、ひたすら試行錯誤を繰り返すしかない、言語化しにくい話になってきます。

ジャンプと物理法則

ここで一つ、キャラクターの「ジャンプ」を例に取りたいと思います。
2Dタイプのアクションゲームでは、ボタンを押すとキャラクターがジャンプするのはドンキーコングの時代からの定番です。そのジャンプをどうやって実装すれば、操作感が良くなるでしょうか?

物理を学んだことのある人なら、ジャンプといえば放物線運動だと考えるはずです。実際に、放物線運動をシミュレートすることでジャンプを実装することは可能です。Unityなどに搭載された物理エンジンを使えば、簡単に放物線運動をシミュレートすることができます。

しかし、実際に実装すると分かるのですが単に物理法則をシミュレートするだけだと、どうも操作感が悪いのです。
うまく言語化しにくい部分なのですが、重力を大きく設定しすぎると、キャラクターの滞空時間が短くなりすぎ、かといって重力を小さくしすぎると、今度は落下速度が遅くなりすぎる、といった若干のストレスが生じるようになります。

 

そこで既存のゲームを細かく観察してみると、たとえばスーパーマリオブラザーズでは、ジャンプが厳密には放物線を描いていないことがわかります。フリーソフト洞窟物語でも、おそらく放物線は描いていません。それぞれ、操作感の良いジャンプを実装するための独自のアルゴリズムがあるのだと思います。

私自身が過去に作った作品でも、操作感の良さを求めた結果、単純な放物線運動は採用しませんでした。詳しいことは秘密ですが、ジャンプの途中で重力が変化するような仕組みを入れてあります。その方が操作感が良かったからです。

もちろん、場合によっては物理法則をそのまま当てはめたほうが良い場合もあり、そこはケースバイケースとなります。重要なのは、時には物理法則を捻じ曲げてでも、操作感のよい実装方法を何度も試行錯誤して決めていくことです。これはプログラムの実装技術寄りの話なので、分業している場合はプログラマーの協力が欠かせません。

操作感はアクションゲームの土台となる重要な要素なので、手を抜きたくないものです。