Unity3Dで2Dのシューティングゲームを作ってみるチュートリアルその5

シェアする




今まで作成する時は左上のシーン画面ばっか見ていて特に気にしてませんでしたが左下のゲーム画面でちゃんと見えるようにしてない。なのでそのあたりをいじっていきます。

それに前回までで敵や敵の弾、自分の弾などを延々と発射し続けていましたが画面外に出ても処理し続けてとても無駄なのでこのあたりも調節していきます。

Sponsored Links

フィールドの作成

まずフィールドを作っていきます。これは自機の移動範囲の制御と画面外に行く弾や敵の削除を行う役割があります。

GameObject -> Create Other -> Cube と選んで立方体を作成し、これを長方形にして形を整えます。

それを四方囲むように置きます。

field block

敵や弾は何かに当たった時に消えるように前回コードで書いたと思います。位置は後で調節するのでとりあえず敵とか弾が消える事を確認しましょう。

背景の作成

フィールドつながりで背景も一緒に作りましょう。これは自機の作成と同じです。

GameObject -> Create Other -> Plane と選んで四角形を出し、先ほど作成したフィー
ルドより大きく広げ、背景画像のマテリアルを作成して適用します。

背景画像には以下のWebサイトのものを使用しました。ありがとうございます。

貼り付けてマテリアルの Tiling を適当な値にすると以下のような感じになります。

background

そしてこれにスクリプトを書いて動かします。

#pragma strict

function Start () {
}

function Update () {
	renderer.material.mainTextureOffset.x += 0.02;
}

なんともシンプルなスクリプトになりましたがこれでちゃんと動きます。好みに応じて値は変えましょう。

カメラの設定

さてようやく実際にゲームを行う時に見る画面の設定を行います。先にするべきだったかもしれませんが細かいことは気にしない。

カメラを上のほうに移動し、上から見下ろすような形にします。

camera

ですがこのままでは若干立体っぽい表示なのでこれを2Dゲームのような表示にします。

カメラの Inspector から Projection の値を Orthographic に指定するといかにもな2Dの画面になります。Orchographic Projection とは日本語では正投影図といい、3次元の物体を2次元で表現する方法の一つです。このほうが2Dのゲームっぽいですね。

Orchographic

カメラの位置を整えたら敵の出現ポイントや各ブロック、背景の位置などを調節してみましょう。

光源の追加

カメラを設定したあとゲームを動かしてみると若干暗いと思います。これはゲーム内に光を発するものが無い為です。なので光を追加しましょう。

GameObject -> Create Other -> Directional light と選択します。これは設定した方
向にたいして光を照らすもので距離減衰や光源に大きさが無く、シーン全体を明るくし
てくれます。これが一つあれば明るさは問題ないと思います。

directional light

設定も特にないので適当なところにそのままおいておきましょう。

音の追加

画面が終わったら次は音です。音が無いゲームは寂しいですしね。

音は大きくわけてBGMと効果音の二種類あります。まずはBGMからつけていきます。

ここで使用したBGM,効果音は以下のWebサイトからダウンロードしました。ありがとうございます。

BGM

BGMはとても楽です。Project 画面にある音楽ファイルを Hierarchy にドラッグするだけで音楽が流せるようになります。ただ初期設定ではループしないようになってるので Inspector の Loop にチェックをいれましょう。

audio source

効果音

次に効果音として弾を撃った時に音を鳴らすようにします。コレも設定変えてスクリプトをちょっと書くだけでできます。

まず音が出るようにするために audio source を自機に対して適用します。Component -> Audio -> Audio Source を選択します。

add audio source

そうすると自機に対してスピーカーのようなマークがつきます。ちなみに右上はBGMです。

Audio Source をつけたらスクリプトを書いて音がなるようにします。

Player スクリプト内に以下の二行を追加します。

// スクリプトの上のほうがよいかな
var shotSE : AudioClip;

function Update() {
(省略)
	if (Input.GetButton("Jump") && bulletEnable) {
	(省略)
		audio.PlayOneShot(shotSE); // 音を一回だけ鳴らす。
	}
}

スクリプトを書いたら弾のプレハブなどと同じように Inspector 内にあるの shotSE の項目に効果音の音楽ファイルをドラッグします。

この状態で動作を確認してみましょう。確かに効果音は鳴りますがだいぶ小さいと思います。これはカメラの位置が遠すぎて音が減衰してしまうのが原因です。

Inspector 内の Audio Source の項目でこのあたりを設定できます。

Audio Source -> 3D Sound Settings にある Min Distance を適当に上げます。デフォ
ルトは1でしたが10ぐらいにしたらまともに聞こえました。

distance of volume

このへんもゲームを動かしながら確認したほうが良いですね。

続く...。

その6 点数計算と結果画面、画面遷移

Sponsored Link

シェアする

フォローする