〜ゲームについて素人から知れる、作ろう〜 ゲーム制作(Unityでツ●ツ●みたいなゲームを作ろう:その4

「Unity」物理エンジン追加+prefab作成

 

前回は画像の読み込みや、それを使った壁の作成をしました。

 

ということで早速ですが、次はゲームのキモとなる玉を配置していきます。

 

f:id:masato8823:20180410183902p:plain

 

はい、何がとは言いませんがmachinationです。白い落書きの入った玉みたいになってます(今回って宣伝回なの?って感じですが、そんなことはないはず

 

この状態では玉が壁みたいに固定されている。ということで、玉を選択して、例のごとく右側をいじっていきます。

 

しかし、現在は配置であるtransformという枠と、Sprite rendererという画像を画像としていじるものしかなく、システム的な扱いを変更するものはない!!

 

ということで、俗に物理エンジンと呼ばれる、画面内で重力とか物理の法則が働くような設定をいじれるところを追加します。

 

追加は簡単!

右側の一番下にadd componentなんて露骨なものがあるので、それをクリック!

f:id:masato8823:20180410185529p:plain

 

すると、下のような一覧が出てきます。

このphysics 2D を選択して、

f:id:masato8823:20180417151416p:plain

 

その次に下のようにRigidbody 2Dを選択してください。

 

f:id:masato8823:20180417151454p:plain

 

すると、、、

 

f:id:masato8823:20180417151552p:plain

 

 

はい!新たな画面が追加されました! 

 これで物理エンジンが追加されたことになります。この物理エンジンを設定することで、重力が入るわけではなく、このウィンドウを追加した時点で、すでに基本的な重力が働くようになっています。

つまり、より詳細に設定をいじりたいときに、右側に追加された新たな数値をいじるわけですね。

その必要なまだないので、そのままの状態で上の再生ボタンを押してみると、

 

f:id:masato8823:20180417152014p:plain

 

玉が下に落ちていくようになっています。

 ただ、上の画面を見てわかるように、先ほど設定した壁をすり抜けて、画面の外に落ちていってしまいます。

 

そこで、次に壁には「Box Collider 2D」を追加して、さらに、球には「Circle Collider 2D」を追加します。

 

そして、同じように再生してみると、、、

 

f:id:masato8823:20180417152516p:plain

 

はい!今度はしっかり壁のところで止まってくれました

 

これはそれぞれに箱型の物理的判定と、円形の物理的判定を導入したということになっています。 なので、「Box Collider 2D」と「Circle Collider 2D」は名目は違いますが、大元の物理的に当たりようにするということは同じです。その形がすでに決まっていて、別のものとして設定されているだけということです。

 

 

 

それでは次にこの玉を量産しましょう!、といってもさっきの作業を何度もするのは大変、、、

と言うことで、プレハブを作ります。

 

これは前回アセットをダウンロードした時に、色形などすでにできているものを画面に追加していましたが、それを自分で作って設定するということです。

プレハブ小屋は壁をコンクリートや鉄といった材料からその場で作るわけでなく、すでにできたものをその場で組み立てますよね。そのプレハブ小屋のような感じで、あとは組み立てるだけで作れる!という素材を設定できるわけです。

 

作り方は、上のメニューからAssets→Create→Prefab

またはAssetsウィンドウで右クリックからのCreate→Prefabでできます。

f:id:masato8823:20180417153940p:plain

 

作成してみると、Assetsに追加されていることがわかります。

名前は後で適当につけておきます。

f:id:masato8823:20180417154407p:plain

 

それに左上のhierarchyからmachi ballへドラッグ&ドロップ。

 

f:id:masato8823:20180417154821p:plain

上のようにprefabが設定されました。

 

これで下のように複数個ドラッグ&ドロップで追加して、

f:id:masato8823:20180417155053p:plain

 

再生により、

 

f:id:masato8823:20180417155155p:plain

 

複数転がすということができるようになりました!!(パチパチ!

 

実際に動かした方ならわかるかと思いますが、玉と玉がぶつかってコロコロする様子がわかるかと思います。

まるで本物さながらの動き!!

先人たちの偉大さを噛みしめる今日この頃です。

 

 

ちなみに、プレハブの元となっている最初に作った玉はプレハブと関連付けされています。なので、元のもののステータスを更新して、その後InspectorのApplyを押すと、その設定をプレハブにも反映させることができます。

 

f:id:masato8823:20180417160013p:plain

 

なので、下のように、元のやつのrigidbody 2DのSimulatedをオフにして、Applyすると、

 

f:id:masato8823:20180417160158p:plain

 

最初のように落ちないようにできます。

f:id:masato8823:20180417160328p:plain

 

 

ここまではオブジェクトに物理エンジンをつけるということで、やってきました。

新しい概念すぎて詳しくわからないことも多く、とりあえず使えるから使っておこうって感じでここまでお送りしました。

特に右側の詳細設定には多くのわからないことが潜んでいて、完璧主義な人とかには気持ちの悪いような感じであったかと思います。

 

自分自身もいつもは、わからない部分を一つ一つ実験してわかるようにしているのですが、今回は正直わからないことが多すぎて早急に諦めました。これ時間かかるわりに実際には何も進まないということで、結構モチベーションがゴリゴリ減るんですよね、、、(共感いただけた人には親近感を感じるかもしれない笑

 

実際右側の詳細設定は上級者向けのもので、初心者で使うことはなかなかないと思います。

なので、最初のステージに、終盤でようやく倒せるようになるモンスターがいて、序盤はスルーするのが定石なゲームのようなものと思って、意識から除いてあげて下さい。ネットでは序盤で倒すとか縛りプレイをする人もいて、それはそれで面白いですが、

 

ここは縛りプレイしても辛いだけ!モチベーションの意地の方が大切!!

 

 

ということで、今回はここまで、次回もゲーム作成を続けて行きます。

 

次回はスクリプトの導入とかいう、プログラミングっぽいことをするのかな?

もちろんプログラミングしたことのない人にもわかるものを書くよ!(ってか多分自分もわからない言語と思われ、、汗

 

話が長くなりました。

また次回に続く!