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

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

レベルデザイン論1 ~古典的2Dアクションゲームのレベルデザイン~

ステージ設計を料理に例えるなら

アクションゲームを作る過程の中でも、ステージの設計はもっとも面白い花形の作業です。プレイヤーキャラクターや敵キャラクターを料理の食材とするなら、食材を統合して料理として完成させるための調理作業がステージ設計にあたります。

いかに良い食材を揃えても、調理が下手だと料理は台無しになります。どうすれば、良いステージを作れるでしょうか?ここでは、主に古典的な2Dアクションゲームのステージの設計方法について取り扱います。

ステージの基本は緊張と緩和の繰り返し

ステージ設計の基本は「緊張」と「緩和」の繰り返しにあります。
目の前に落とし穴があると、プレイヤーは「飛び越えなければならない」という一種の緊張状態になります。無事に穴を飛び越えることが出来たら、プレイヤーは緊張状態から解放され、軽い達成感のようなものが生じます。

常に緊張が続くと疲れてしまいますし、緩和が続くと張り合いがありません。そこでこのような緊張→緩和→緊張→緩和…の波を作ってあげることがステージ作りの基本になります。

ここでいう「緊張」とは、落とし穴などのトラップや、敵キャラの登場などを指します。これらの「小課題」を、適度な休憩区間を挟みつつ並べていくことで、緊張と緩和の波を持つステージを作ることができます。

 小課題の出題順序

トラップや敵キャラの登場する順番にも工夫が必要です。たとえばA,B,Cの3種類の敵キャラがいるなら、その登場順にも以下のように無数のパターンが考えられます。

  1. 単純配置
    Start→A→B→C→END
    敵キャラをただ順番に並べただけのパターンです。工夫があまりなく、単調に感じられます。

  2. 繰り返し
    Start→A→B→C→A→B→C→END
    一度登場した敵キャラを再登場させるパターンです。同じ敵キャラの再登場により、プレイヤーは過去の経験を生かすことができます。(この問題、前にも解いたことがある!)

  3. 組み合わせ
    Start→A→B→C→(A+B)→(B+C)→(C+A)→END
    敵キャラを複数組み合わせて登場させるパターンです。敵キャラ単独での登場が基礎問題だとすれば、組み合わせて登場するのは応用問題にあたります。まず基礎問題を提示してから応用問題を課すことで、ゲームの難易度を無理なく引き上げることができます。

こうした登場順を考える際に意識したいのは、プレイヤーにどういう順番で小課題を学習させるかです。
初めて登場するトラップや敵キャラは、なるべく単独で出現させるほうが良いでしょう。単独で出現することで、プレイヤーはじっくりとその性質を学習することができます。そうして学習した後に、今度は敵キャラを複数まとめて配置したりすることで、プレイヤーの応用力を問うことができます。

ステージ内の難易度曲線

ゲームは普通、終盤ほど難易度が上がっていくものですが、一つのステージの中にも難易度の起伏を作ることができます。長いステージの場合は単調になるのを防ぐためにも、難易度の高い箇所と低い箇所のメリハリを付けたほうが飽きが来にくくなります。

以下のように、敵キャラが単独で登場する箇所と、複数で登場する箇所を交互に織り交ぜることで難易度のメリハリをつけることができます。
Start→A→B→(A+B)→A→C→(A+C)→(A+B+C)→End


以上が、古典的な2Dアクションゲームのステージの設計方法の例となります。これに当てはまらない設計方法もありますが、一つの例としてご参考ください。

敵キャラクターの設計 ~ゲーム世界の住人たち~

敵キャラクターは何のためにいるのか

アクションゲームに欠かせないものといえば敵キャラです。彼らは何のためにいるのでしょうか。

スーパーマリオメーカーなどで敵キャラのいないコースを作ってみると分かるのですが、何も動くものがない世界は寂しいものです。たとえグロテスクなゾンビや無機質な機械であれ、敵キャラはゲームの世界の住人です。彼らの存在によって、ゲームの世界が生きているように感じられるのです。

それと同時に、敵キャラはプレイヤーに対して緊張を強いる存在でもあります。敵キャラが登場するとプレイヤーは緊張感を感じ、それを乗り越えることでプレイヤーは緊張感から解放されます。
こうした緊張感の波を適切に配置することはゲームを面白くする秘訣の一つで、敵キャラクターはそのために欠かせない存在です。

このように敵キャラは多面的な存在といえます。

ステージのパーツとしての敵キャラクター

古典的なアクションゲームでは、まっすぐ横に進むだけ、縦に往復するだけ、といったシンプルな動きしかしない敵キャラがほとんどでした。今でも2D作品にはこうした敵キャラが登場することがあります。

このようなタイプの敵キャラは、ゲームのステージを構成するパーツの一つといえます。何もない地面の上に、横に往復する敵を配置しただけでは簡単に飛び越えられてしまいますが、敵キャラの前後に穴を配置したり、天井を低くしたりすれば簡単には突破できなくなります。地形と敵キャラを組み合わせてステージを構成するわけです。

 

この場合の敵キャラは、プレイヤーに対して「歩いてくる敵を飛び越える」「敵に弾を命中させる」といった「小課題」を与えるための存在です。そのため敵キャラを設計する際は、プレイヤーに対してどんな「小課題」を与えるかを意識することが重要です。
もし自由に空を飛び回れるゲームなら、地面を歩いてくるだけの敵は簡単に飛び越えられるので課題として成り立ちません。そのようなゲームなら、敵キャラも単に地面を歩くのではなく、たまに飛び上がったり、弾のようなものを撃ってきたりといった工夫が必要になるでしょう。

ステージのパーツを超えて

ここまでは古典的なゲームにおける敵キャラの話でしたが、こと3D作品においては話が変わってきます。
まっすぐ横に進むだけ、縦に往復するだけ、といった敵キャラは3D空間ではいかにも作り物のように感じられて世界の表現に馴染みません。あのクリボーでさえ、スーパーマリオ3Dワールドではマリオを見つけると飛び上がって追いかけるような思考ロジックが組まれています。

 

3D作品では、敵キャラのAIが非常に重要になってきます。高度なAIが組まれた敵キャラは、3D空間でまるで生きているかのように振る舞い、世界をより現実的なものに感じさせます。
こうした敵キャラはもはやステージのパーツとは呼べず、真にゲーム世界の住人と呼べるものになります。ゲームの内容も「歩いてくる敵を飛び越える」といった単純なものではなくなり、敵のAIとの駆け引きを楽しむようなものに変化します。

逆に、3D空間であえて「歩いてくる敵を飛び越える」ようなシンプルなゲームを作る方向性も考えられますが、その場合は敵キャラの作り物っぽさを感じさせないためのデザイン上の工夫が必要になります。3Dのスーパーマリオシリーズなどは、作り物っぽさを逆手に取ったデザインがうまいと思います。

3D作品では、世界表現のあり方に応じて敵キャラのAIのレベルを調整することが重要となります。それによってゲームの内容まで変わってしまうことには注意が必要でしょう。

プレイヤーキャラクターのデザイン ~キャラクターデザインのもたらす説得力~

しっぽマリオにはなぜしっぽがあるのか

スーパーマリオブラザーズ3というゲームに、しっぽマリオというキャラクターが登場します。マリオが木の葉を取るとタヌキのしっぽが生えて、空を飛べるようになるのです。

これは驚異的なキャラクターデザインだと私は感じます。普通、空を飛ぶといったら羽根やプロペラです。しっぽで空を飛ぶなんて例はほとんど聞いたことがありません。しかし実際に遊んでみると、しっぽで空を飛ぶことに妙な説得力があり、違和感は感じられません。

もししっぽがないままマリオが空を飛んだとしたら、やはり違和感があったと思います。人間が空を飛ぶはずがないからです。それを言ったら、しっぽがあったとしても空を飛べるはずはないのですが、それが不思議なところです。このしっぽで空を飛ぶのに違和感を感じさせない技術こそが、私が驚異的だと感じるものです。

こうした「キャラクターデザインの説得力」が、今回の話のテーマです。

キャラクターデザインとアクションの関係性

ゲームの主人公のキャラクターデザインは、いわばゲームの「顔」にあたり、ゲームのビジュアルイメージを決定付ける大事な要素です。キャラクターデザインのクオリティによって、ゲームの売り上げは大きく変わることでしょう。

しかしそれと同時に考えておきたいのは、アクションゲームの場合、キャラクターデザインがゲームデザインにも影響してくるということです。分かりやすい例として、キャラクターの身体の大きさは、そのまま当たり判定の大きさとなります。

もっと深堀りすると、そのキャラクターが取る行動の「説得力」にキャラクターデザインは関わってきます。たとえば「壁にネバネバと張り付いて進むゲームを作ろう」と思ったら、普通はスライムのような壁に張り付けそうなキャラクターを主人公にすることになります。ただの人間が壁に張り付いたとしても、ネバネバとした感触を表現することは簡単ではありません。

ゲームデザインとキャラクターデザインは、どうしても切り離せない関係なのです。

人間という制約

ここで考えてみたいのは、主人公が「人間」だと決まっている場合です。人間同士のドラマを描きたい場合や、原作ありきの二次創作などでは主人公が「人間」だと初めから決まっている場合も多いでしょう。

主人公が「人間」という時点で、そのキャラクターが取れる行動には自ずと制約がかかります。

人間は普通、丸くなって転がったり、背中から針を突き出したり、身長が2倍に伸びたりしません。主人公がたとえば丸いボールのようなキャラクターなら、転がることを違和感なく表現できるのですが、下手に「人間」にそれをやらせると、激しい違和感が出るばかりか、キャラクターのイメージ崩壊にも繋がりかねません。


それでも敢えてそのようなゲームを作るなら、説得力のあるキャラクターデザインが必要となります。スーパーキノコを取ったマリオは身長が2倍に伸びますが、これはマリオというキャラクターだからこそ許されることです。マリオの持つキャラクターイメージや、適度にデフォルメ化された外見があってこそ、身長が2倍に伸びても違和感が出ないのです。

つまりは主人公を「人間」にした時点でゲームのアイディアに制限がかかり、それを乗り越えるにはキャラクターデザイン面で相応の考慮が必要になる、ということです。

 キャラクターらしさの表現へ

ゲームのアイディアとキャラクターデザインがかっちりと噛み合った時、良いゲームが生まれます。そのキャラクターらしい動作を生き生きと表現したゲームは、遊んで楽しいものになるでしょう。アクションゲームにおいては、ゲームのアイディアから逆算してキャラクターをデザインするのも一つの方法です。

もっとも、そうやって作ったキャラクターのビジュアルが魅力的なものになるかは、また別の問題ですが。

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

操作感とは何か

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

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

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

 

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

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

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

ジャンプと物理法則

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

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

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

 

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

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

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

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

アクションゲームの原点 ~最も根源的な快感~

スイッチを押すのは楽しいか否か

ある年齢の子供は、照明や家電製品などのスイッチに興味を示します。スイッチを無意味に押して反応を楽しんだり、何度も押して喜んだりしている子供の姿はよく見られます。
子供向けのおもちゃにも、スイッチを押すと音が鳴ったり光ったりするタイプのものは多く、そういうおもちゃで子供は喜んで遊びます。大人からすれば、なんでそんなことが楽しいのか分からなくても、子供とはそういうものです。

しかし、ゲームを遊んでいる時は大人も同じようなことをしているのではないでしょうか。
アクションゲームで、特に意味もなくジャンプをしたり、何もないところで剣を振ったりしたことのある人は多いはずです。これらは、子供がスイッチを押して遊ぶことの延長にあります。よく出来たゲームは、ボタンを押すだけで楽しいものです。

コンピュータから返されるフィードバック

子供がスイッチを押したり、ゲームで剣を振ったりすることが楽しいのは、それらの結果として、フィードバックが返ってくるからです。もしスイッチを押しても何も起こらなかったら、子供も興味を失うでしょう。何かが起こるから、スイッチを押すのが楽しいのです。

これは、「行動」とその「結果」を学習するために備わっている、人間の非常に根源的な欲求だと思います。

アクションゲームの場合は、剣を振った結果としてキャラクターがカッコいい動きをしたり、鋭い音が鳴ったり、目の前の敵が両断されたりします。これもまたフィードバックの一種です。

この時、剣が空振るよりも、何かを斬った手ごたえがあるほうが快感が増します。単にフィードバックがあればよいというものでもなく、フィードバックの質によって快感が増減するということです。
ゼルダの伝説シリーズの草むらなどは、まさに剣で斬って遊ぶために存在する場所です。これらの小さい快感の積み重ねで、アクションゲームは成り立っているといえます。

ボタンを押すのが楽しいゲーム

実はこれはアクションゲームに限らず、すべてのゲームに共通したことです。RPGでコマンドメニューを開くのだって、楽しくすることは可能です。

RPG作品の中には、コマンドボタンを押してからメニューが開かれるまでのタイミングをコンマ何秒の単位で調整しているものがあります。ボタンを押したら即座にメニューが開かれるのではなく、わずかに遅延したほうがメニューを開くときの快感が増す場合があるのです。

よく練られたゲームは、たとえRPGであっても、ボタンを押すこと自体が楽しくなるように工夫されています。この工夫は地味ながら、ゲーム全体の快適性に大きな影響を及ぼします。

 

そしてこの点は、アクションゲームにおいてはなおさら重要です。アクションゲームは、ボタンを押すタイミングやテクニックなど、ボタンを押すこと自体にフォーカスを当てた作品ジャンルなので、ボタンを押すのが楽しいかどうかは、プレイヤーのゲーム体験に直結する重要なポイントです。

もし、格闘ゲームでキャラクターのパンチが決まった時に、変な間の抜けた音がしたら、興ざめすることでしょう。

どうすればボタンを押すのが楽しくなるかは、実際に試行錯誤してみないと分からない部分が多く、言葉にしにくい部分です。視覚的な演出や気持ちよい効果音、そして何よりボタンを押した手ごたえが重要だと思います。これら「視覚」「聴覚」「触覚」は、アクションゲームの手触り的な部分を決定する3要素だと思います。
これらに手を抜かず、ボタンを押すのが楽しい作品を作っていきたいものです。