ゲーム「ワガハイ式ぷよぷよ」 制作手順1

ゲームの設計を考えよう

私ワガハイは初心者時代、↓の本を用いてUnityの勉強をしましたので、基本的なゲームの作成順序は↓の本の考え方をベースにしております。

まず新しいゲームを作成しようとする場合、ゲームの部品は何か、どの部品にどういうスクリプトを付けたら良いかを一旦整理しよう、というのがこの本では繰り返し言われてましたので、まずこのページではそういった整理をしていきましょう。

その前に、とりあえず遊んでみよう

とこぷよ風景まず、今回は既にあるゲームを再現するのが目標なので、とりあえずぷよぷよで遊んでみましょう。100回ぐらい、とことんぷよぷよをやれば、何となくゲームの基本的な挙動は分かってくると思います。以降では、ぷよぷよの基本的な動きについては分かっているものとして、解説していきます。

ゲームの部品を考えよう

ワガハイ式ぷよぷよ基本構成要素では、このゲームの基本部品を並べると、右のようになります。他にも、ぷよの消した個数を示すテキストUIなどが必要になりますが、基本部品は右のような感じでしょうか。

次に、スクリプトをアタッチさせる必要のある「動くオブジェクト」はどれでしょう?まぁゲームやると分かりますが、「ぷよ」オブジェクトですよね!なので、「ぷよ」オブジェクトに付けるスクリプトを作成する必要があります(本記事の後半にて、このスクリプト作成に関する注釈を付けていますので併せて参考にして下さい)。

また、オブジェクトを生成するための工場が必要になりますね。2個セットの落下ぷよ(組ぷよ)オブジェクトをランダムで生成する工場を稼働するための生成スクリプトが必要です。

他に、監督スクリプトも必要ですね。例えば、「4個以上揃ったらぷよを削除する」工程については監督スクリプトに記述していきます。また、今回のワガハイ式ぷよぷよでは「何個ぷよが削除されたか」を上のテキストUIにて表示します。そこへの書き換えも監督スクリプトにて記述しましょう。他には「積み上げたらゲームオーバー画面に移行」なども監督スクリプトに記述します。

それ以外にも、レベルを決める最初の画面の挙動、ポーズ画面作成、など細かな作業は様々ありますが、とりあえずゲームのメイン部分に必要なのは大体こんなものでしょうか。

各スクリプトの作成については別記事にて書いていきます。ゲームが遊べるページの下部にて目次を掲載しておりますので、そちらから目的の解説ページへジャンプするしていくのがオススメです。

シーンにオブジェクトを配置しよう

ワガハイ式ぷよぷよ基本構造では次に、オブジェクトを配置していきます。とりあえず、上で挙げたこのゲームの基本部品を並べてみます。ワガハイ式ぷよぷよでは、右図のように配置しました。x軸y軸の交差点(図中真ん中)が原点(x,y)=(0,0)になります。また、右図中での正方形1マスは幅1.0fで、ぷよのサイズは直径1.0fのため、この1マスに丁度入るサイズになっております。

今回はぷよオブジェクトの中心を、右図のように(x,y)=(○.5f,○.5f)という位置に設置しました。ただ、後のスクリプトの感じでは中心位置は(x,y)=(○.0f,○.0f)とした方が楽にスクリプトを書けたかも…?

注:「ぷよ」オブジェクトに付けるスクリプトについて

後々でも良いのですが、「ぷよ」オブジェクトの挙動については少し気を付けたいことがありますので、一旦ここでまとめておきます。何に気を付けるべきかと言うと…

「ぷよ」という1つのオブジェクトでも、「2個セット(組ぷよ)の時(落下中)」と「着地した後(落下後)」での動き方が多少異なる

このことには注意しておきましょう。もう少し具体的に書くと、

・「組ぷよの時(落下中)」:プレイヤーの命令により左右移動したり、左右回転したりする。組ぷよの内、片方だけでも地面とか他のぷよの上に着地したら、2個セットの組ぷよはバラバラになり、着地していない方のぷよは落下する。

・「着地した後(落下後)」:4個以上揃ったら消える、下のぷよが消えると上のぷよは落下してくる、さらに揃うと連鎖になる。

要するに、ぷよオブジェクトは状況によって全然動き方が異なるのです。それをどのようにスクリプトに書いていくかは色々あります。例えば1つのスクリプト中で「落下中」と「落下後」の状況を全て書いてしまってもOKですし、別々のスクリプトにしてしまうのも手です。

ワガハイ式ぷよぷよでは「落下中」と「落下後」の状況を別々のスクリプトで記述しました。と言っても1つの「ぷよオブジェクト」に2種類のスクリプトを付ける訳にはいきませんので、下図のような方針で作成しました(この考え方が最善かは分かりません、ご意見あれば私ワガハイまでお願いします)。

ぷよに付けるスクリプトの仕組み

「組ぷよの時(落下中)」の2つのぷよぷよ(子)は1つの空オブジェクト(親)に属しています。「落下中」の動きについてはこの空オブジェクト(親)に付けたスクリプトに記述します。そして、どちらかのぷよが着地するとこの空オブジェクト(親)は消滅します。

「落下後」の動きは各ぷよに付けたスクリプトに記述します。「落下中」ではこのスクリプトは働かないようにして、「落下後」になった時、つまり↑で書いた「空オブジェクト(親)が消滅した瞬間」に各ぷよのスクリプトが発動するような仕組みを作っていきます。

具体的にどのようなスクリプトにするかは制作手順2以降に書いていきます。次回以降もよろしくお願いします!!

シェアする

  • このエントリーをはてなブックマークに追加

フォローする