昔、ベーマガを読んでいた人には懐かしい、砦の攻防という砲台ゲームを作ってみます。

ソースはこちらで公開しています。
本ページ: https://github.com/matsushima-terunao/unity_toride_old
改良版: https://github.com/matsushima-terunao/unity_toride

実際のゲームはこちら
PC 本ページ: http://ter.dip.jp/blog/unity_toride_old/build/web/web.html
PC 改良版: http://ter.dip.jp/blog/unity_toride/build/build.html
Android 本ページ: https://github.com/matsushima-terunao/unity_toride_old/raw/master/build/toride.apk
Android 改良版: https://github.com/matsushima-terunao/unity_toride/raw/master/build/toride.apk

プロジェクトの作成

Unity 起動後、Unity - Project Wizard のダイアログ
(表示されない場合は、メニューの File -> New Project...)
Create New Project タブ -> Browse...
 Choose location for new project のダイアログで、
 プロジェクトを保存したいフォルダーに移動
 新しいフォルダ(ここでは toride)を作成
 このフォルダーを選択
 フォルダーの選択をクリック
Create をクリック
ここで Scene を保存しておきます。
 メニューの File -> Save Scene
 Save Scene ダイアログで、ファイル名(ここでは toride)を入力し、保存

地形を作る

Terrain 追加

Hierarchy タブ -> Create -> Terrain で Scene に地形が追加されます。
これだと地形が大きすぎるのでサイズを小さくします。
 Inspector タブ内の Terrain (Script) パネルの中のボタンが並んでいるツールバーの右端の歯車ボタンをクリック
Terrain Width, Length, Height をそれぞれ 100 に変更

視点変更

編集しやすいように、Scnene 内でマウスホィールや、手のひらボタン+ドラッグで Scene 内に収まるよう調整します。
ここで一度再生してみます。すると、横から見た視点になっているので、Main Camera の位置と方向を変更します。
このとき、Hierarchy や Scnene 上で Main Camera を選択した状態で、メニューの GameObject -> Align With View を選んでみてください。そうすると Scene で表示されている視点になるように、Main Camera が自動的に設定されます。
再度再生して確認してみてください。



ライトの追加

Hierarchy タブ -> Create -> Directional light
Scene にライトが追加されます。左側から光が当たるようにドラッグして移動します。



山を作る

 Hierarchy や Scnene 上で Terrain を選択
 Inspector タブ内の Terrain (Script) パネルの中のボタンが並んでいるツールバーの左端の山ボタンをクリック
Brushes から好きなブラシを選択
こうして Scene 内の Terrain 上でドラッグすると地形を盛り上げることができます。



Shift を押しながらドラッグすると逆に盛り下げることができます。しかし 0 の高さ未満には盛り下げることはできません。そのときは、あらかじめ
 Inspector タブ内の Terrain (Script) パネルの中のボタンが並んでいるツールバーの左から2番目の山ボタンをクリック
Height に好きな数値(ここでは 10)を入力して、Flatten をクリック
こうすることで地形全体をかさ上げすることができます。



Texture を貼る

あらかじめ素材をインポートしておきます。
 Project タブ内の Assets を右クリック -> Import New Package -> Terrain Assets
 Importing package ダイアログで Import をクリック
実際に地形に Texture を貼ります。
 Inspector タブ内の Terrain (Script) パネルの中のボタンが並んでいるツールバーの真ん中の筆ボタンをクリック
Edit Textures... -> Add Texture...
 Add Terrain Texture ダイアログで Texture -> Select
  Select Texture2D ダイアログで好きな Texture(ここでは Grass (Hill))をダブルクリック
Add



Texture で塗る

同様に Edit Textures... -> Add Texture... で Texture を追加し、Textures から Texture を選択し、ブラシで塗ることができます。

木を植える

 Inspector タブ内の Terrain (Script) パネルの中のボタンが並んでいるツールバーの木ボタンをクリック
Edit Trees... -> Add Tree...
 Add Tree ダイアログで Tree の右端の○ボタンをクリック
  Select GameObject ダイアログで好きな Texture(ここでは Palm)をダブルクリック
Add
これで地形をクリックしていくことで木を植えることができます。ただ、この状態だと木が大きすぎると思います。その場合は Inspector タブの Settings の値を調節してください。



砲台を作る

階層化されたオブジェクトを作る

球と筒を組み合わせて砲台を作ります。このように、複数のオブジェクトを組み合わせてキャラクターを作る場合は、オブジェクトを階層化すると扱い易くなります。この場合、空のオブジェクトを親にして球や筒を子にする方法や、球を親にして筒を子にする方法がありますが、ここでは前者の方法で作ってみます。
 メニューの GameObject -> Create Empty
 Hierachy タブ -> GameObject を右クリック -> Rename -> cannon に変更
 Hierachy タブ -> Create -> Sphere
 Hierachy タブ -> Create -> Cylinder
Sphere と Cylinder を cannon にドロップ
 Sphere を選択して大きさを変更
  Scale: X:10 Y:10 Z:10
 Sphere を選択して位置と大きさを変更
  Position: X:0 Y:6 Z:0
  Scale: X:2 Y:2 Z:2



当たり判定をつける

スクリプトでの当たり判定のために canon に Ragidbody をつけます。ただし、重力で下に移動しないように Use Gravity を off、地形などに接触したときにはじかれないように Is Kinematic を on にします。
 Hierarchy タブ -> cannon を選択
 Inspector タブ -> Add Component -> Physics -> Rigidbody
 Rigidbody -> Use Gravity のチェックを外す
 Rigidbody -> Is Kinematic のチェックを入れる

敵砲台を作る

砲台をコピーして敵砲台を作ります。スクリプトで自分と敵との判別のために、自分の砲台に Player の Tag をつけます。
 Hierarchy タブ -> cannon を右クリック -> Duplicate
 Hierarchy タブ -> cannon(コピー元) を選択
 Inspector タブ -> Tag -> Player



砲弾を作る

Sphere で砲弾を作ります。
 Hierachy タブ -> Create -> Sphere
Sphere を右クリック -> Rename -> ball に変更
 大きさを変更
  Scale: X:2 Y:2 Z:2

重力をつける

 Inspector タブ -> Add Component -> Physics -> Rigidbody
 Rigidbody -> Use Gravity にチェックが入っていることを確認

Prefab 化する

砲弾はゲーム中にスクリプトで実体化するので、Prefab 化し、Scene から外します。
 Hierachy タブ -> ball を Project タブ -> Assets にドロップ
 Hierachy タブ -> ball を右クリック -> Delete



炎エフェクトを作る

Particle System で砲台を破壊したときの炎エフェクトを作ります。
 Hierachy タブ -> Create -> Particle System
Particle の大きさを変更します。
 Inspector タブ -> Particle System -> Start Size: 10
色を変更します。
 Inspector タブ -> Particle System -> Color over Lifetime をクリックしてパネルを広げ、さらにチェックをつける
 Color 右のカラーバーをクリック
 Gradient Editor ダイアログで
  カラーバー下の矢印をクリックして選択
  (矢印はスライドでき、矢印横のスペースをクリックして矢印を追加できる)
  Color 右のカラーバーをクリック
 Color ダイアログで Colors 下のをクリック
 ダイアログ右上の×ボタンで閉じる

Prefab 化する

Particle System はゲーム中にスクリプトで実体化するので、Prefab 化し、Scene から外します。
 Hierachy タブ -> Particle System を Project タブ -> Assets にドロップ
 Hierachy タブ -> Particle System を右クリック -> Delete



テキストラベルを作る

ゲーム開始、終了時に表示するテキストのラベルを作ります。
 Hierachy タブ -> Create -> GUI Text
中央に大きく表示するように設定を変更します。
 Inspector タブ
  Position: X:0.5 Y:0.5 Z:0
  Anchor: middle center
  Alignment: center
  Font Size: 50
  Color: 好きな色



→ 2-2. Unity で砲台ゲームを作る - スクリプトの作成
← 1-1. Unity のインストールから簡単な使い方まで
↑ 一覧