今まで作成する時は左上のシーン画面ばっか見ていて特に気にしてませんでしたが左下のゲーム画面でちゃんと見えるようにしてない。なのでそのあたりをいじっていきます。
それに前回までで敵や敵の弾、自分の弾などを延々と発射し続けていましたが画面外に出ても処理し続けてとても無駄なのでこのあたりも調節していきます。
フィールドの作成
まずフィールドを作っていきます。これは自機の移動範囲の制御と画面外に行く弾や敵の削除を行う役割があります。
GameObject -> Create Other -> Cube と選んで立方体を作成し、これを長方形にして形を整えます。
それを四方囲むように置きます。
敵や弾は何かに当たった時に消えるように前回コードで書いたと思います。位置は後で調節するのでとりあえず敵とか弾が消える事を確認しましょう。
背景の作成
フィールドつながりで背景も一緒に作りましょう。これは自機の作成と同じです。
GameObject -> Create Other -> Plane と選んで四角形を出し、先ほど作成したフィー
ルドより大きく広げ、背景画像のマテリアルを作成して適用します。
背景画像には以下のWebサイトのものを使用しました。ありがとうございます。
Subtle Patterns | Free textures for your next web project
貼り付けてマテリアルの Tiling を適当な値にすると以下のような感じになります。
そしてこれにスクリプトを書いて動かします。
#pragma strict
function Start () {
}
function Update () {
renderer.material.mainTextureOffset.x += 0.02;
}
なんともシンプルなスクリプトになりましたがこれでちゃんと動きます。好みに応じて値は変えましょう。
カメラの設定
さてようやく実際にゲームを行う時に見る画面の設定を行います。先にするべきだったかもしれませんが細かいことは気にしない。
カメラを上のほうに移動し、上から見下ろすような形にします。
ですがこのままでは若干立体っぽい表示なのでこれを2Dゲームのような表示にします。
カメラの Inspector から Projection の値を Orthographic に指定するといかにもな2Dの画面になります。Orchographic Projection とは日本語では正投影図といい、3次元の物体を2次元で表現する方法の一つです。このほうが2Dのゲームっぽいですね。
カメラの位置を整えたら敵の出現ポイントや各ブロック、背景の位置などを調節してみましょう。
光源の追加
カメラを設定したあとゲームを動かしてみると若干暗いと思います。これはゲーム内に光を発するものが無い為です。なので光を追加しましょう。
GameObject -> Create Other -> Directional light と選択します。これは設定した方
向にたいして光を照らすもので距離減衰や光源に大きさが無く、シーン全体を明るくし
てくれます。これが一つあれば明るさは問題ないと思います。
設定も特にないので適当なところにそのままおいておきましょう。
音の追加
画面が終わったら次は音です。音が無いゲームは寂しいですしね。
音は大きくわけてBGMと効果音の二種類あります。まずはBGMからつけていきます。
ここで使用したBGM,効果音は以下のWebサイトからダウンロードしました。ありがとうございます。
フリー(無料)音楽素材 BGM 効果音 Senses Circuit
BGM
BGMはとても楽です。Project 画面にある音楽ファイルを Hierarchy にドラッグするだけで音楽が流せるようになります。ただ初期設定ではループしないようになってるので Inspector の Loop にチェックをいれましょう。
効果音
次に効果音として弾を撃った時に音を鳴らすようにします。コレも設定変えてスクリプトをちょっと書くだけでできます。
まず音が出るようにするために audio source を自機に対して適用します。Component -> Audio -> 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ぐらいにしたらまともに聞こえました。
このへんもゲームを動かしながら確認したほうが良いですね。
続く...。
コメント