目次
- 目次
- はじめに
- プロジェクトの作成
- エディタのレイアウトの変更
- 壁の作成
- カメラの位置の調整
- パドルの作成
- ボールの作成
- ボールに物理特性を与える
- ボールに初速を与える
- ボールのバウンド
- パドルの操作
- シーンの保存
- 次のチュートリアル
はじめに
今回は、プロジェクトの準備と、
壁、パドル、ボールの作成を行っていきます
プロジェクトの作成
最初に、ブロック崩し用の Unity プロジェクトを準備します
Unity を起動して上記の画面が表示されたら、「New」を選択します
「Project name」に「Tutorial」と入力します
次に「Location」の「…」を押して、プロジェクトの保存場所を選択します
そして、「3D」をチェックして、「Create project」ボタンを押します
これで、「Tutorial」という名前で
3Dのゲームを開発するためのプロジェクトの準備が完了しました
エディタのレイアウトの変更
次は作業をしやすくするために Unity エディタのレイアウトを変更します
エディタの右上のボタンを押して、「2 by 3」を選択します
そして、「Project」と書かれているタブの右側にある三本線のアイコンを押して、
「One Column Layout」を選択します
これでレイアウトの変更が完了しました
壁の作成
まずは、壁を配置していきます
Unity メニューの「GameObject>3D Object>Cube」を選択します
これで、箱がシーンに作成されます
作成した「Cube」を選択して、「Scale」(大きさ)の「X」に「20」と入力します
すると、箱が横長になり、壁を1つ作成することができました
さらに、この箱を複製して残りの3つの壁も作成していきます
「Cube」を選択した状態で Ctrl + D を3回押します
※ Ctrl + D を押すとオブジェクトを複製することができます
すると、「Cube」が3つ複製されました
複製した直後は、すべての「Cube」が重なってしまっているので
それぞれの壁を適切な位置に配置していきます
「Cube (1)」を選択して、パラメータを下記のように設定します
- 「Position」(位置)の入力欄に左から順に「-10」「0」「15」と入力
- 「Scale」(大きさ)の入力欄に左から順に「1」「1」「30」と入力
「Cube (2)」を選択して、パラメータを下記のように設定します
- 「Position」(位置)の入力欄に左から順に「10」「0」「15」と入力
- 「Scale」(大きさ)の入力欄に左から順に「1」「1」「30」と入力
「Cube (3)」を選択して、パラメータを下記のように設定します
- 「Position」(位置)の入力欄に左から順に「0」「0」「30」と入力
- 「Scale」(大きさ)の入力欄に左から順に「20」「1」「1」と入力
これで、それぞれの壁の位置の設定が完了しましたが、
Scene ビューを確認してみても、壁が正しい位置に配置されているのかわからないので、
Scene ビューのカメラの位置を調整します
※ Scene ビューはゲームのシーンを確認するための画面です
Scene ビューの右上の緑のアイコンをクリックします
すると、Scene ビューのカメラが見下ろすような視点になるので
あとは、マウスホイールを押しながら画面をドラッグしたり、
マウスホイールを回して画面を拡大縮小して
壁が画面内に表示されるように調整していきます
これで、壁が正しい位置に配置されていることが確認できます
カメラの位置の調整
Scene ビューのカメラの調整は完了しましたが、
まだ Game ビューのカメラの調整が終わっていないので
Game ビューのカメラの位置を調整していきます
※ Game ビューは実際のゲームの画面です
「Main Camera」を選択して、パラメータを下記のように設定します
- 「Position」(位置)の入力欄に左から順に「0」「30」「15」と入力
- 「Rotation」(回転)の入力欄に左から順に「90」「0」「0」と入力
これで、ゲーム画面内に壁が表示されるようになりました
パドルの作成
次は、ボールを跳ね返すためのパドルを作成していきます
Unity メニューの「GameObject>3D Object>Cube」を選択します
すると「Cube (4)」という名前のオブジェクトが作成されます
このままだと名前がわかりづらいので、「Paddle」という名前に変更します
「Cube (4)」を選択した状態で「F2」を押して、
「Paddle」と入力して Enter を押します
※ F2 を押すとオブジェクトの名前を変更することができます
そして、「Paddle」を選択して、パラメータを下記のように設定します
- 「Position」(位置)の入力欄に左から順に「0」「0」「5」と入力
- 「Scale」(大きさ)の入力欄に左から順に「5」「1」「1」と入力
これで、パドルの作成が完了しました
ボールの作成
さらに、ボールを作成していきます
Unity メニューの「GameObject>3D Object>Sphere」を選択します
作成した「Sphere」を選択して、パラメータを下記のように設定します
- 「Position」(位置)の入力欄に左から順に「0」「0」「15」と入力
これで、ボールの作成が完了しました
ボールに物理特性を与える
パドルとボールの作成が完了しましたが、
このままでは動かないので、まずはボールに物理特性を与えていきます
「Sphere」を選択した状態で
「Add Component」ボタンを押して、入力欄に「Rigidbody」と入力して、
表示された「Rigidbody」を選択します
これで、「Sphere」に「Rigidbody」という名前の機能を付与することができました
「Ridigbody」は、物理特性を制御するための機能です
そして、「Ridigbody」のパラメータを上記のスクリーンショットのように設定します
ボールに初速を与える
ボールに「Ridigbody」を付与することで、物理特性を与えることができたため、
「Ridigbody」を使用してボールを動かすためのプログラムを作成していきます
Unity メニューの「Assets>Create>C# Script」を選択します
すると、プログラムファイルが作成できるので、
「BallController」という名前に変更します
これで、「BallController」という名前のプログラムファイルが作成できたので
ボールを動かすためのプログラムを記述していきます
「BallController」をダブルクリックすると、
お使いの環境に合わせて Visual Studio や MonoDevelop などの、
プログラムを書くためのエディタが起動するので、
下記のプログラムをコピーして貼り付けます
using UnityEngine; public class BallController : MonoBehaviour { public float speed = 10; private void Start() { var force = ( transform.forward + transform.right ) * speed; GetComponent<Rigidbody>().AddForce( force, ForceMode.VelocityChange ); } }
今回はプログラムの解説は割愛させていただきます
プログラムを貼り付けたら、Ctrl + S を押すなどしてプログラムファイルを保存します
Unity に戻り、「BallController」を「Sphere」にドラッグします
これで、「Sphere」に「BallController」を反映することができます
エディタ上部の再生ボタンを押してゲームを再生してみます
すると、ゲーム開始直後にボールが動くことが確認できます
ボールが動くことが確認できたので、
エディタ上部の再生ボタンを押してゲームを停止します
ボールのバウンド
ボールが動くようになりましたが、壁に当たっても跳ね返らないため、
ボールが壁に当たったら跳ね返るようにしていきます
Unity メニューの「Assets>Create>Physic Material」を選択します
「Physic Material」は、物理パラメータを管理するためのファイルです
「Physic Material」が作成されたら
「Perfect Bounce」という名前に変更します
そして、「Perfect Bounce」を選択して、 パラメータを上記のスクリーンショットのように設定します
これで、ボールを跳ね返るように設定した「Physic Material」が作成できたので
「Perfect Bounce」を「Sphere」にドラッグします
「Sphere」を選択すると、「Perfect Bounce」が設定されていることが確認できます
エディタ上部の再生ボタンを押してゲームを再生してみます
すると、ボールが壁にあたって跳ね返るようになったことが確認できます
ボールが跳ね返ることが確認できたので、
エディタ上部の再生ボタンを押してゲームを停止します
パドルの操作
ボールの挙動が作成できたので、次はパドルを操作できるようにしていきます
パドルを操作できるようにするために、プログラムファイルを作成します
Unity メニューの「Assets>Create>C# Script」を選択します
すると、プログラムファイルが作成できるので、
「PaddleController」という名前に変更します
「PaddleController」をダブルクリックすると、
お使いの環境に合わせて Visual Studio や MonoDevelop などの、
プログラムを書くためのエディタが起動するので、
下記のプログラムをコピーして貼り付けます
using UnityEngine; public class PaddleController : MonoBehaviour { public float accel = 1000; private void Update() { var force = transform.right * Input.GetAxisRaw( "Horizontal" ) * accel; GetComponent<Rigidbody>().AddForce( force, ForceMode.Impulse ); } }
今回はプログラムの解説は割愛させていただきます
プログラムを貼り付けたら、Ctrl + S を押すなどしてプログラムファイルを保存します
Unity に戻り、「PaddleController」を「Paddle」にドラッグします
これで、「Paddle」に「PaddleController」を反映することができます
さらに、ボールと同様に、パドルにも「RIgidbody」を付与します
「Paddle」を選択した状態で「Add Component」ボタンを押して
入力欄に「RIgidbody」と入力して、表示された「RIgidbody」を選択します
そして、「Ridigbody」のパラメータを上記のスクリーンショットのように設定します
これで、エディタ上部の再生ボタンを押してゲームを再生して、
左右の矢印キーを押すと、パドルが操作できるようになったことが確認できます
確認ができたらエディタ上部の再生ボタンを押してゲームを停止します
シーンの保存
最後に、ここまでの作業成果を保存しておきます
Ctrl + S を押すと、シーンの保存確認画面が表示されるので
ファイル名に「Game」と入力して「保存」ボタンを押します
そして、「Game」という名前の Unity アイコンのファイルが表示されたら
シーンの保存が完了です
次回は、ブロックの配置とゲームオーバーの実装を行っていきます