ぼやきっちゃん

ぼやきます

調べながらのゲーム制作 [1-1]

さっそくですが飽きました。

 

もともと高くもなかったモチベが下落傾向にあります。

ですが、満足できるまでは頑張って続けようと思います。

 

あまりヤル気が起きないので、とりあえず何か作ってて気持ちの良いゲームを完成させたいと思っています。こんな調子なので、とりあえずチュートリアルで学んだことをベースに、分からないことは調べながら自力で作っていきます。

 

今回から何度かに分けて「ゲートボール」を題材にしたゲームを作りたいと思います。

理由はいくつかあります。

  • たぶん既存のものが存在しないからモチベが保ちやすい点
  • チュートリアル「球転がし」の応用が利きそうな点
  • ルールが複雑なので、それに沿ったアルゴリズムを組むのが楽しそうな点

などです。

それではさっそく作っていきましょう。

 

コートをつくる

まずはゲームのフィールドとなるコートを作ります。

ゲートボールは15×20mのコート上で行います。

コートは基本的に芝かクレーなので、今回は芝のテクスチャをAssetStoreから適当にダウンロードし、使用しました。そうやってできたのがこれ↓

f:id:taiga2010:20161020235858p:plain

殺風景ですね。

緑の部分がコートで、白い部分はコート外になります。

今回はコートを作る上で一つ問題が発生しました。

それは現実の長さとUnity上のScaleとの対応です。

 

このコートは3DPhisicsのPlaneを使用していますが、初期設定のScaleは

  x:1 y:1 z:1

です。これが現実でのどういう大きさと対応するのかをまずは調べました。

調べた結果

 「PlaneにおけるScaleの1は現実の10mに対応する」

ということがわかりました。つまり、初期設定では10m×10mの板ができていたということですね。

余談ですが、上の画像の灰色の部分に見えているグリッドは、太い方を主グリッドといい、細い方(拡大しないと見えないかも)を副グリッドというそうです。それぞれの長さは

 主グリッド:10m間隔

 副グリッド:1m間隔

のようです。拡大していくと、副グリッドでできた正方形の中には、もっと細いグリッドもありますが、これについては割愛します。

ゲートをつくる

コートが出来たので、それにぶっ刺さるゲートを作ります。

ゲートは直径1cmのアルミでできています。

ゲートの幅は22cm、高さは19cmです。

言ってもよくわからないと思うので実際に作った画像を見てください。

f:id:taiga2010:20161021001531p:plain

上に乗っかっているプレートにはゲート番号が書かれることになります。ですが面倒なのでまだ書いてません。

この時にも困ったことがありました。同じく大きさの対応の問題です。

ここで気付いたことは、PlaneにおけるScaleCubeやCylinderにおけるScale縮尺が違うということです。

本来は最初の方に学ぶものなのかもしれませんが、こんな事も知らずに進めています。

調べて分かったことは以下の通り

 「CubeやCylinderにおけるScaleの1は現実の1mに対応する」

つまり、Planeの方が10倍大きな単位を使っているということですね。

そしてもう一つ驚いたことがあります。それは

 「Cylinderはy座標のみScaleが2倍」

だということです。例えばCubeでScaleを「x:1 y:1 z:1」に設定すると、各辺1mの立方体が形成されますが、CylinderでScaleを「x:1 y:1 z:1」にすると、1m×2m×1mの円柱が形成されます。

これは忘れないようにしときたいですね。

 

さて、できたゲートを所定の位置に配置しよう。

この時も、座標と現実の長さの対応を知る必要がありました。調べると

 「座標における1は、現実の1mに対応する」

ことが分かりました。

こうして設置した図がこちら↓

f:id:taiga2010:20161021002646p:plain

遠くて見えにくいですが、ゲートが3つ刺さってます。

コートの中央には直径2cm高さ20cmの「ゴールポール」という棒が刺さっています。

f:id:taiga2010:20161021002758p:plain

最後にコートの縁を白いラインで囲ったものがこれ↓

f:id:taiga2010:20161021003003p:plain

完全にキャプチャ範囲ミスりました。

 

スティックをつくる

次に、ボールを打つためのスティックを作ります。

スティックは実物に沿って数個の金具に分けて作ってあります。

f:id:taiga2010:20161021003114p:plain

これが

f:id:taiga2010:20161021003124p:plain

こう。

細長い部分を「シャフト」といい、短くて太い部分を「ヘッド」といいます。

面倒なので詳しい説明は割愛します。

大きさはシャフトの長さが50cmぐらいで、ヘッドは横に20cmです。ヘッドの重さだけで450gなので、全体で800gぐらいに設定してあります。

 

ボールをつくる

さて、最後にボールです。

ボールは直径7.5cmで、重さは230g。

赤いボールと白いボールが必要になるので、こんな感じに。ゲートは大きさを分かりやすくするために置いただけです。

f:id:taiga2010:20161021003604p:plain

本来、ボールに数字が印字されているのですが、面倒くさそうなのでまだやっていません。

 

これで道具がそろいました。

スティックをちょっとデザインして、実際の構えに似た角度で置いただけの写真がこちら↓

f:id:taiga2010:20161021004237p:plain

f:id:taiga2010:20161021004249p:plain

f:id:taiga2010:20161021004256p:plain

 

f:id:taiga2010:20161021004303p:plain

うん。なかなか格好いい。

こういうところでモチベって上がります。

 

今回は、プログラミングというよりモノづくりでしたね。楽しかった。

次回は球を打つ処理のスクリプトや球の物理演算について細かいところを書いていきたいと思います。

飽きたらやめます。