Categories: making

ゲーム「ワガハイ式ビリヤード」 制作手順1-1

ゲームの設計を考えよう

今回のゲームも新しく作成するに当たり、ゲームの部品は何か、どの部品にどういうスクリプトを付けたら良いかを一旦整理していきましょう。

そのためにも、これまでのゲーム制作と同様、とりあえずビリヤードを100回ぐらい遊んでみましょう。実際のビリヤード(スポッチャとか、漫画喫茶とか…)でも、スマホのアプリでも、WEB上のゲームでも、何でも良いので遊んで、ゲームの基本的な挙動を掴んでいきましょう!

ゲームの部品を考えよう

では、このゲームの基本部品を並べると、上図のようになります。一応注意ですが、私ワガハイはビリヤード知識についてはニワカですので、正式名称でない物が多数含まれています!!m(_ _)mただし、本ブログ中では基本、上図中の名称を使用します、分かりづらかったらすいません。

他にも、手球発射調整のためのテキストUI、次に狙う数球表示のNext欄なども必要ですね。

次に、スクリプトをアタッチさせる必要のある「動くオブジェクト」はどれでしょう?今回は手球・数球ですね。今回のビリヤードですと、手球発射時に力を加える、手球・数球がポケットに入ると球オブジェクト自身が消滅、などのスクリプトを書いていきます。

あとは、いつもの監督スクリプトですね。今回のビリヤードでも、基本的なゲームの進行については全て監督スクリプト任せになります。具体的に何をさせるかについては、監督スクリプト制作手順の最初のページで書いていきますが、まぁ簡単に例を挙げると、プレーヤーの手球発射向き等の調整作業、CPUの操作、ファールしていないかの監視、テキストUIの操作、等々という感じです。

ちなみに、手球を打つためのキューも動くスクリプトになりそうですが、今回のワガハイ式ビリヤードではキューの動きは上述したプレーヤーの手球発射向き等の調整作業に含みましたので、キュー自身にはスクリプトは不要です。

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

オブジェクトの作成・画像の貼り付け・配置

今回、オブジェクトの制作等は簡単に済ませたかったので、Unity内にデフォルト搭載されている3Dオブジェクトをムリヤリ使いまわして制作しました。本当なら、blenderを用いてビリヤード台形状を制作するのも面白いのかもしれませんが…、今回そこの作業は省略気味で…。m(_ _)m

また時間が取れたら、その辺りもこだわっていきたい…!

ビリヤード台オブジェクトについて

ビリヤード台のサイズについては、右図中緑の部分(「Plane」オブジェクト)を縦7.6f×横15.2fというサイズにしました。えらく中途半端な値ですが、一応この寸法になった経緯としては以下の通りです。

①台全体がゲームフィールド内に入るサイズ(maincamera 撮影範囲内に収まるサイズ)

②台サイズは大体縦1:横2の縦横比になっているので、それを守る

③図のように台を4×8の正方形に分割した際、正方形の1辺(今回は長さ1.9f)に数球1~9の初期配置が大体収まる(上図中のようなイメージです)

個人的にこだわったポイントは③になります。幾つかの写真を見て台とボールとのサイズ感を確認しましたが、およそ③のような傾向にある?と思い、こだわった次第です!

また、原点は台の中央にあり、画面中向きがX軸(注:左が正の方向)上向きがY軸(注:上が正の方向)になります。ちなみに、maincamera はZ=10の位置にあります。上から見下ろしている感じですね。

あとは、4方向に壁(「Cube」オブジェクト)、6ヶ所にポケット(「Cylinder」オブジェクト)を配置して完成です。

ただ、ポケットオブジェクトと書きましたが、3D的には、右図のようにただ円柱がそびえ立っておりそこに触れると何故か球が消滅する仕組みになっております。上から(2D的に)見ればそこまで気にならないかもしれませんが、斜めから見てしまうと、右図のように違和感がスゴイ…。見ないでほしい…(笑)。

手球・数球オブジェクトについて

「Sphere」の3Dオブジェクトをベースに、手球は全面白塗りで、数球は上から画像を貼り付けました。画像はどうやって…?と言いますと、お得意のMicrosoft PowerPoint Presentationによる自作になります!何度でも言いますが、本当にパワポは便利です。

右図みたいな画像を1~9まで作成して、オブジェクトの表面に貼り付けただけです。「Sphere」オブジェクトに貼り付けた際、大体白い所が真円に見えるようにサイズ調節してあります。

ちなみに、ゲームの性格上、極力数字を大きく表示させるために、若干本物とはバランスが異なっています。まぁじろじろ見なければ気になりません、多分…(笑)。

あと、球のサイズですが、直径0.5fにしました。上で書きましたように、ビリヤード台とのサイズ比率感を守りつつ、球に書いてある数字が大体見えるサイズ…ということでこのサイズになっています。

キューのオブジェクトについて

これは「Cylinder」「Sphere」の3Dオブジェクトを組み合わせただけになります。右図中下の4オブジェクトを組み合わせて、右図中上のようなキューのオブジェクトを作成しました。本物のキューは打つ側の先端に向かって細くなっていく形状ですが…、今回のキューは本当にただの棒…(笑)。

ちなみに、キューの位置ですが、右図のように、3D的には少し高い位置(Z方向にずれた位置)に配置しております。

これは敢えてこうしてまして、後々制作手順2-2で話に出て来ますが、手球発射の向きを調整する際、キューが手球の周りをグルグル回りますが、その時もしキューが高さZ=0の位置(球と同じ高さ)にあると、キューが周りの球を跳ね除けてしまい、ゲームにならないからです。要するに、球と干渉しないように、敢えて高さ方向にずらしてあるのです。2D的には気になりませんって!(笑)

ここまでで、必要なオブジェクトは大体完成しました。あと、物理特性の設定などが必要になりますが、ちょっと長くなりそうなので、次回にまわします!

r_yoshi

Recent Posts

ゲーム「ワガハイ式テトリス」 制作手順4-2

監督スクリプトを記述しよう(ブ…

5年 ago

動的配列(List型)のご紹介と活用法

こちらのページでは、Unity…

5年 ago

ゲーム「ワガハイ式テトリス」 制作手順4-1

監督スクリプトを記述しよう(ブ…

5年 ago

ゲーム「ワガハイ式ビリヤード」 制作手順2-5

監督スクリプトを記述しよう こ…

5年 ago

ゲーム「ワガハイ式テトリス」 制作手順2-1

テトリミノに付けるスクリプトを…

5年 ago

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

各ぷよに付けるスクリプトを記述…

5年 ago