2017年7月7日金曜日

アクションゲームを作るのを大変にする方法

ゲームエンジンをClickteam Fusion2.5にしてから
アクションものを作るようになりました。

RPGはたくさんの数字が行き交って結果が算出されますが、
アクションは主にオブジェクトとオブジェクトの接触によって結果が生まれます。
つまりアクションゲームは現実世界をデフォルメされたものだと言い切る事が出来ます。

<概念作りから>
アクションゲームに最も大事なのは重力です。
主人公が歩いたり、落下したり、ジャンプするには重力という概念が必要です。
現実世界と同じようにあらゆる万物は重力によって地球に張り付いています。

重力設定を2にすれば主人公は速度2の重力によって落下します、
重力設定を大きくすればそれだけ落ちる速度も速くなります。

このままでは主人公は永久に落下し続けるので、地面をという概念を作ります。
主人公は重力2によって落下してますので、主人公が地面に接触した場合に
重力2によって押し上げてみると、押す力と押し上げる力が相殺して主人公は
現実世界と同じように地面に立つ事ができました。


<接触による反応>
接触による反応はアクションゲームの仕組みとなり面白さに繋がります。
これとこれをぶつけ合ったらどうなるか?プレイヤーは試してみたくなります。

例えば、吐き出したファイアボールが地面に落ちたらどうなるでしょうか
これはゲームの規模によって変化します。

デフォルメであれば・・・
地面が草原問わずに接触すればボフンと音を立てて消える

リアルに近ければ・・・
地面が草原だったら草原は燃え、焼け野原になり進行が難しくなる
地面が湖だったらファイアボールは蒸発して消える
地面が石畳だったら、軽い爆発を起こすため近くにいてもダメージが発生する

など、現実に近くなればなるほどプログラムが複雑になり、
SEやアニメーションが必要になります。

そればかりかファイアボール一つにこれだけのパターンの処理を作らなければ
いけないというのは、とても大変です。

しかし、実装すればゲームはグッと深みを増し無数の攻略パターンが
存在すれば、多くの人に評価してもらえるゲームになるかもしれません。

<はじめに>
上記では現実世界と同じようにするとアクションゲームが仕上がると書きましたが
標準な横スクロールアクションをイメージされたと思います。

今度は現実離れしたアクションゲームを想定してみましょう

フローチャートなどを作って概念を選択してみれば、世界観がイメージし易かったり
突飛なゲームデザインが生まれたりもします。

例えば・・・

Q1:重力はあるか?
→はい   Q2へ
→いいえ  宇宙空間を彷徨っていろんな所へ行くゲーム

Q2地面はあるか?
→はい  標準的な横スクロールアクション
→いいえ 空から落ちて、ひたすら下へ強制スクロールしていく

など、上記だけで三つのタイプのアクションゲームが想定することができました。

今の状況や技術、スケジュールや資金などでアクションゲームの規模が変化します。
どれが今の自分に当てはまっているのかを制作前に考えておかないと
今の自分のようにアクションゲームを作るのが大変だなと感じてしまうことを
自分に言い聞かせたいと思いますー。