ぼやきっちゃん

ぼやきます

Unity アップデート

お久しぶりです

しばらく飽きていましたが、最近は Unity も安定してきて開発効率が良くなったように思います。 そこで、久しぶりに Unity を起動したところ、色々変わってましたので最新版にアップデートしました。

Unity update

本記事を堺に、Unity のバージョンは

Unity Version: 2019.3.3f1

を用います。

今後もアップデートにはなるべく追従するつもりです。 ゲーム制作以外にも様々やりたいことがありますので、更新頻度は相変わらずでしょう。 飽きたらやめます。

調べながらのゲーム制作 [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

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

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

 

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

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

飽きたらやめます。

はじめてのゲーム製作 [0-1]

前回はUnityをインストールしたところまででしたが、今回は実際に何か作ってみたいと思って動いたことをまとめます。

 

チュートリアル

始めた時はそもそもUnityがどんな感じなのか全く分かりませんでした。

チュートリアルで球転がしを作れると友達が教えてくれたので、とりあえずそれをやりました。

github.com

たまに興味の向いた方に脱線したりもしましたが、この通りに作ればあっという間に新しいゲームが完成しました。

カメラの挙動や物理演算の導入がすんなりいって楽しかったです。

趣味で映像編集をAdobe製品で行うことが多いのですが、Unityの操作自体はそれに似た感覚でした。剛体を作って大きさと傾きと座標を決めたりするのは普通に面倒ですが、まともにプログラムを書くよりは段違いで楽なので、このぐらいは我慢します。

 

実際に作るゲームがどんな感じなのかはリンクに飛んでみた方が早いです。

それでは。

Unity インストール

まずは何も分からないままUnityをインストールしてみました。

ダウンロードは以下のサイトから。

 

Unity - Update

 

ここでダウンロードして、そのままインストール。

インストール後、Unityのアカウントが必要になるので

 

Unity ID

 

ここでUnity IDを取得しておきます。

 

そのあと簡単なアンケートに答えて準備OK

 

f:id:taiga2010:20161010132227p:plain

 

そのうちチュートリアル的なのに取り掛かろうと思います。