Unityのゲーム作りをさくっと解説(2)

御礼

前回の初心者向けUnity記事を公開したところ、アクセスが急増して

私たいへん驚いておりますΣ(・ω・ノ)ノ

ご覧になってくださった皆様、ありがとうございます! 

前回の記事はこちらです。

chirotec.hatenablog.com

今回は一から自分でゲームを作成していきます。

これどう考えても3、4回じゃ終わらないですね…… 

 

ゲーム作り

まず、どんなゲームを作ってみようかと考えます。

今回は以下のようなゲームをイメージしました。

・パズルゲームっぽいゲーム

・フィールドはコップを横からみたような形状、そこに色の付いた玉が敷き詰められている

・玉は自然にそれっぽく動く(物理演算で落下し衝突する)

・玉をタップ/クリックしたら繋がった同じ色の玉が消え、消した分だけ次の玉が降ってきて補充される

イメージ図としては次のようになります。

f:id:chirotec:20180323110729p:plain

それでは、作ってみましょう。

 

プロジェクトと最初のシーンを作成

まずは新規プロジェクトを作成します。

ここで2Dか3Dを選択しますが、2DにするとEditorの設定が2Dゲームを作るのに適した状態となります。(後で変更可能(公式マニュアル)です)

今回は2Dで作成します。

f:id:chirotec:20180323102053p:plain

 

開いたときにデフォルトのシーンが作成されていますので、そのシーンをmainなど分かりやすい名前を付けて保存します。(File->Save Scene)

f:id:chirotec:20180323102333p:plain

不慮の事故で作業状況が失われると非常に悲しいので、ctrl+Sで頻繁にシーンを保存する癖を付けるべきかも。 

 

 

ゲーム作り開始

前回は完成品のプロジェクトをそのまま使いましたが、

今回は自作の画像を取り込んで、シーンを作成していきます。

素材のインポート

 壁と玉の画像を用意します。

(今回は仮の画像なので、すごく適当な画像です)

f:id:chirotec:20180323104316p:plain:f:id:chirotec:20180323114957p:plain:f:id:chirotec:20180323115003p:plain:f:id:chirotec:20180323115006p:plain:f:id:chirotec:20180323115011p:plain:

ProjectウィンドウのAssetsのところで右クリックして「Import New Assets...」を選択するか、もしくはエクスプローラーから直接ドラッグアンドドロップします。

f:id:chirotec:20180323120331p:plain

画像ファイルから生成されたスプライトが、プロジェクトに追加されました。

ここで3Dモードだと、テクスチャが追加されてしまうはずです。 

 

壁の作成

現在、シーン中にはカメラしかありません。

まずは壁を作ってみましょう。

“GameObject->2D Object->Sprite”

とすると、空の2Dスプライトがシーン内に追加されます。

左のHierarchyを見ると、"New Sprite"が追加されているのが分かると思います。

このままだと、ゲーム中では何も見えません。

f:id:chirotec:20180323122926p:plain

左のHierarchy内に追加された"New Sprite"をクリックすると、右の"Inspector"内にオブジェクトの詳細が表示されます。これはオブジェクトの種類によって変わります。

"Transform"が位置、"Sprite Renderer"が2Dスプライトとその描画設定を表します。

カメラをクリックした後に先ほどの操作をすると、追加されたスプライトの位置がカメラに重なっている場合があります。Positionのz座標が0になっていない場合は、0にしておいて下さい。

"Sprite"の右の丸をクリックし、壁の画像を選択すると、スプライトが描画されるようになります。

f:id:chirotec:20180323130052p:plain

実はProjectビューからアイコンをSceneビューにドラッグアンドドロップしてもシーンに追加出来ます。

側面と底のスプライトをそれぞれ追加して、サイズと位置を調整して壁を作ります。名前もwall_leftなど分かりやすくしましょう。

f:id:chirotec:20180323130121p:plain

玉の仮作成

同様に玉も置いてみます。とりあえず一個だけ配置します。

f:id:chirotec:20180323131702p:plain

……

どうするの?

しかし、本来玉はランダムで沢山降ってくるはずです。

・玉を落下させるにはどうすればいいのか?

・ゲーム中で玉を新しく作るには? 

・クリックしたら消える処理は?

 

これからひとつひとつ解決します。

・玉にRigidbodyを追加、玉と壁にColliderを追加し、物理演算で動かす

・玉をプレハブ化して、同じ物を大量に降らせる

クリック判定玉を消す処理を作る

 

いよいよゲーム作りらしくなってきました。

ここで一旦区切り、ひとつひとつ解説します。

次回へ続く。

 

次回予告

今回はゲーム中の画面をそれらしく作ってみました。現状では「ただそこにある」だけで動きません。見栄えもたいへん地味です。

次回は先ほど追加した球が物理演算で動くようにし、さらに玉がゲーム中で降ってくるようになります! スクリプトにも触れますのでお楽しみに!

更新頑張ります。多分土日くらい?