Unityで簡単ゲームを作って操作に慣れよう

Unityをインストールしてみたけど、いまいち使い方が分からなくて一度も触っていない・・・という方は割といらっしゃると思います。そんな方のために、Unityでクソゲーを作って操作に慣れよう!という記事を書いてみようと思います!なお、今回はWindowsを用いて制作しています。

今回は、「洗脳されたロギ犬が地球を襲ってきた!はんだごてで奴らを溶かせ!」という内容のクソゲーを作ってみましょう!

00.png

Step1 インストールしよう

https://store.unity.com/ja#plans-individual

インストールはこちらのページから。まずは「個人向け」をインストールします。

00.png

この先、基本的に画面に表示される案内に従って進んでいけばインストールが完了します。Unityを立ち上げると、初めは「Sign up your Unity ID」という画面が出てくると思いますので、「Create one」をクリックし、メールアドレス等を入力してアカウントを制作しましょう。

Step2 プロジェクトの作成

さっそくゲームを作りましょう!Unityでは3Dゲームの作成が出来ますが、x-y軸のみ用いれば2Dゲームの作成も可能です。今回は2Dゲームを作成します。Unityを立ち上げ、「New」をクリックします。

00.png

 

次に、ゲームの名前を決め、次元を2Dにします。「Create project」を押せばゲームの製作が開始です!

00.png

 

このようなProjectビューが表示されると思います。(配置が異なっている場合がありますが、右上の「Layout」をいじれば変更が出来ます。自分はこの配置が一番好きなので、今回はこれでやらせていただきます。)大きく分けて5つのスペースが存在します。とりあえずは、以下のような役割を覚えておけば良いと思います。

00.png

 

Step4 準備

今回は、ゲームで使う素材も自分で制作してみましょう!Windowsの方は、ペイントソフトを開いてみてください。必ず、PNGファイルで保存してください。描くのがめんどくさいという方は、ダウンロードが出来ますので読み進めてください。

まずは敵キャラのイラストを描きます。その後、PNGファイルでデスクトップなどに保存します。

00.png

 

必要な画像は、「敵キャラ(赤い某犬)」「味方キャラ(飛行機に乗っている某犬)」「背景(宇宙)」「武器(はんだごて)」の四つです。以下に完成画像を掲載しましたので、自分で作りたくない方はダウンロード(名前を付けて保存)してください。

04.png03.png02.png

 

01.png

次に、この4つの画像を透過処理します。今回はインターネット上のサイト(https://www.peko-step.com/tool/alphachannel.html)に画像をドラッグアンドドロップし、白い部分をクリックします。透過処理出来たら、右クリックして名前を付けて保存を押し、元の画像に上書き保存します。

00.png

00.png

Step5 配置しよう

それでは、この4つの画像を、UnityのProjectView内のAssetsファイルにドラッグアンドドロップします。00.png

まずは、宇宙の背景をSceneにドラッグアンドドロップします。Game画面にぴったりで見えるように大きさを調整します。Scene画面上にはカメラが空間固定されています。このカメラから見ているものがGame画面上に表示されている仕組みです。カメラは複数台置くこともできます。00.png

ここで、Hierarchy画面上に宇宙の画像の名前が表示されたと思います。ゲームに要素が追加されたということです。この一つ一つの部品をオブジェクトと呼びます。このオブジェクトの詳細はInspector画面上に表示されています。一番上の「Transform」をいじれば、大きさや角度、座標を決めることが出来ます。また、Hierarchy画面にはMainCameraがもともとあります。このカメラも一つのオブジェクトということになります。00.png

他のオブジェクトはそれぞれにプログラムを追加して動かす必要がありますが、とりあえずSceneにドラッグアンドドロップしておきます。00.png

Step6 プログラムを書く

色々な方法がありますが、今回は一つのオブジェクトに一つのプログラムを乗っけることを基本としてみます。まずProject画面で右クリックし、C#スクリプトを追加します。名前は適当に「TekiScript」とします。名前の付け方とかプログラムに関しては適当すぎて怒られそうですが、何でもいいです。00.png

00.png

ファイルが完成したら、プログラムを書きます。VirtualStudioで開きます。インストールされてない場合は適当にインストールしてください。敵が下に降りてくるプログラムです。左右方向(x方向)の初期位置をランダムに設定し、そこから一定のスピードで降りてきます。下に降りてきて一定の座標を超えたら、オブジェクトを消去します。とりあえずはコピペでいいと思います。

Start()関数は、一番はじめに一度だけ呼ばれます。Update()関数はゲーム中何度もループします。


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TekiScript : MonoBehaviour
{
public float x;
public static bool End;

// Use this for initialization
void Start ()
{
x = Random.Range(-2f, 2f);
transform.position = new Vector3(x, 6.0f, 0.0f);
}

// Update is called once per frame
void Update ()
{
this.gameObject.transform.Translate(0, -3.0f * Time.deltaTime, 0);
if (transform.position.y < -2.0f)
{

Destroy(this.gameObject);
End = true;
}
}

void OnTriggerEnter2D()
{

Destroy(gameObject);
}

}

 


このスクリプトを保存したら、続いて、スクリプトを敵オブジェクトにドラッグアンドドロップします。00.png

ここで、GameOverオブジェクトを作るのを忘れていました。以下をダウンロードして、Assetsに入れておきます。そして、このGameOverオブジェクトを画面全体に広がるようにsceneに配置します。Inspectorのチェックを外すと見えなくなります。

GameOver.png

00.png

 

次に、敵オブジェクトに当たり判定をつけます。いたって簡単で、Inspector内のAdd Component内からCircle Collider2Dを見つけ、クリックするだけです。今回は「isTrigger」にはチェックをつけておくと良いです。ぶつかった際に跳ね返らなくなります。

00.png

同じく、はんだごてにもColliderを追加します。はんだごてと敵がぶつかったときに、当たり判定が出るようにするためです。今回はPolygonColliderを導入します。また、RigidBody2Dも追加します。00.png

次に、敵を一秒ごとに出現させるスクリプトを作ります。今度は「TekiSyutugen」などというようなスクリプトを作ります。InvokeRepeating(“SyutugenTeki”, 1, 1);で、1秒に一回SyutugenTenkiを呼び出します。SyutugenTenki内ではTekiを生成します。


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TekiSyutugen : MonoBehaviour {

public GameObject Teki;
public GameObject GameOver;
// Use this for initialization
void Start ()
{
InvokeRepeating(“SyutugenTeki”, 1, 1);
}

// Update is called once per frame
void Update ()
{
bool end;
end = TekiScript.End;
if(end == true)
{
GameOver.SetActive(true);
}
}

void SyutugenTeki()
{
Instantiate(Teki);
}
}


次に、Assetsに敵オブジェクトをドラッグアンドドロップします。これで敵オブジェクトのクローンが出来ました。これをプレハブと呼びます。00.png

ここで、CreateEmptyによって空のゲームオブジェクトを追加します。そこに今のスクリプトを入れます。

00.png

00.png

そして、Tekiに敵プレハブとゲームオーバーオブジェクトをアタッチします。これで、スクリプト内のpublic GameObjectのオブジェクトが決まりました。Sceneに残っている敵オブジェクトは消去します。

00.png

ここで、再生ボタンを押すと、ゲームが始まります。敵が落ちてきて、はんだごてに当たると消えるか、そしてこちらまで来るとゲームオーバーになるか確認します。00.png

ここで、スクリプトの内容を説明します。00.png00.png

ここまで来たら、はんだごてと飛行機犬を動かせるようにすれば完成です。新たなスクリプトを作ります。キーボードの右を押したら右に移動、左を押したら左に移動です。


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class HikoukiScript : MonoBehaviour
{

// Use this for initialization
void Start()
{

}

// Update is called once per frame
void Update()
{
if (Input.GetKey(KeyCode.LeftArrow))
{
transform.Translate(-0.1f, 0, 0);
}
if (Input.GetKey(KeyCode.RightArrow))
{
transform.Translate(0.1f, 0, 0);
}
}
}


 

このスクリプトを、飛行機犬にアタッチします。飛行機犬の中にはんだごてもいれます。

00.png

00.png

とりあえずはこれで完成でいいでしょう!

 

今までに作ったゲームはこんな感じです、もしよろしければダウンロードしてみてください!これらのゲームは一見作るのが難しそうに見えても、実際は今回使ったような、オブジェクトの移動やスクリプト間での変数の受け渡しなど、基本的な要素を組み合わせて作っているだけです。Unity操作に慣れるためにはとにかくいじることが大切だと思います。https://play.google.com/store/apps/developer?id=HAKOT&hl=en_US

最後まで見てくださり、ありがとうございました!

 

 

 

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中