近日公開予定のゲームを動画にて先行公開しました

毎々大変お世話になり、深謝申し上げます。ねんがです。

題記のとおり、近日公開予定のゲームを公開中です。

作品名は「ペギちゃんランド S・O・S♥」に決定しました。

な、なんと本格アクションゲームなのです。

ネンガソフト23年間の活動で、一度もチャレンジをしてこなかったアクションゲームというジャンル。今回の作品が一発目なのです。

たいへんな苦労がありました。なにせアクションゲームに関するノウハウがないものだから、「これ、こんなに大変なの?」とか「これ、どーやって実現するのよ?」という試行錯誤の連続でした。

アクションゲームを作りなれた人には当たり前の内容かもしれませんが、代表的な苦労話とその対策内容を書きとめておきます。

着地判定の課題

アクションゲームって、ジャンプ、しますよね。

もし、ジャンプ中にもういちどジャンプボタンが押されたら?ジャンプ、しませんよね。(サルゲッチュという2段ジャンプするゲームはありますが・・・。)

着地状態からジャンプは可能
着地していない(ジャンプ中や崖から落ちているとき)にジャンプは不可能

この判定が地味に大変です。

2Dのアクションゲームのステージがマスで構成されているのは、なんとなくご存じですよね。

(RPGだとマップチップと呼びます。小さな画像をいくつも並べて、上写真のようなステージを構成している。) 上の写真のように、地面が単なるマスで構成されているなら、着地判定は簡単に実装できます。

では、これはどうでしょう。

斜め床。SFCドラえもん2で当たり前のように使われていた

斜めの床。。。

こうなった場合、床の左端にいるか右端にいるかで、着地判定を線形的に変えなくてはいけません。

これが厄介だった!

自分のいる位置のマスが斜めブロックならいいが、その隣は何もないマスになる。(下写真の②と①の話)

この場所から右に進みましょう。すると、歩きながら①に入った瞬間だけ、キャラが浮きます。

その直後、また②に入るので着地判定される・・・という不自然な挙動になってしまいます。

さらに困ったのが、境界です。ちょうど上写真のように②なのか③なのか微妙な場所にいるとき、なんとジャンプできなくなってしまうのです。これは、③は進入禁止エリアなので、強制的に1つ上のマスにキャラクターを固定させるため。

着地判定の対策

そこでとった対策は、マスで着地判定するのではなく、そのキャラクターからみた床の座標(Y軸)を常に計算する、というものでした。

こうして、マスで判定するのをやめて、「自分から見て床より浮いているか?」を判定するようにし、解決しました。

この方法で上記の問題(着地判定が一瞬解かれる・ジャンプできない)を解消できました。

おわりに

人生初のアクションゲーム開発でしたが、作ってみないとわからない苦労やノウハウがあるんだなあと痛感しました。きっと、着手しなかったら一生知らないままだったでしょう。

着地判定の課題に対し、最終的には対策を思いつき解決に至りました。

この方法を思いついたのは自動車の運転中(本業の職場への通勤)であり、やはり気分転換はインスピレーションをくれるものだと感じました。高校生の時も、登山の遠足があり、そこで一人延々と歩いているときに当時作っていたゲームのアルゴリズムを思いついたりしていましたね。

また、今回はアクションゲーム特有のノウハウでつまづいたのですが、それ以外についてあまり悩まずに進めたのは23年間RPGを作り続けてきたノウハウがあったからなのだと思います。引き出しをもっていれば流用できるということですね。

以上です。