Unity超入門講座 インストールから玉転がしゲームまでを完全解説

Unity

この記事では、
Unity初心者の人を対象にしています。

Unityをこれから始める人は、まずはここからスタートしていきましょう。

Unityのインストールから、ローラーボール

までを解説しています。  

Unityのvrは、2019.4を使用しています。

※ この記事は、電子書籍Unity3Dゲームstandardミニ講座の
ローラーボールの内容と同じになります。

※ 一部の画像はGIF画像になります。 
スマホで見る場合はGIF画像が
見れないこともあるので

できればPCで見るのを推奨します。

Unity インストールのやり方

それではまずは、 unityのインストールをしていきましょう。 

ブラウザで unity hub と検索をして一番上のページを開きます。 

こちらの公式サイトにいったら、 unity hubのボタンがあるので 

そちらから、インストールしましょう。 ↓

unity hubがインストールできたら 

開きましょう。 

開くと、こんな感じの画面になるので 

まず左側にある、インストールをクリック 

そして次に 右側にあるインストールをクリックして 

2019.4を入れましょう。 

【もしくは最新版でもOKです】

unityIDを持っていない人は、新規で作っておきましょう。 

では次にモジュールを入れていきます。 

今回入れるのは3つです。 

・ Microsoft visualstudio community2019 

・ WebGL build support 

・日本語 

最低限 この3つにチェックを入れましょう。 





次に プロジェクトをクリックして  

右側にある、新規作成をクリック。 

そしてテンプレートから 3Dを選択して 

プロジェクト名と保存先を決めましょう。 

そして作成をクリックします。

Unity 初期設定のやり方

プロジェクトを開いたらこんな画面になっているかと思います。 

それでは最初にいくつかの初期設定をしていきます。 

まずは画面の右上にある layoutをクリックして 

2×3に してください。 

こちらの方が画面が見やすく、開発がしやすくなります。↓ 





それでは次にプロジェクトタブの 右側にある…を選択して

2列から 1列レイアウトにしましょう。 

これも好みの問題ですが。 私は1列の方がやりやすいので 

こちらにしています。 ↓

それでは次に画面の上にある、編集から環境設定を開きます。 

そして collar 色があるのでそちらを選択します。

ここで好きな色に変更することができます。 

特にbackgroundと playmodeはよく使います。

playmodeはゲームを再生するときの画面です。 

ここは、明るい色を選択するといいです。 

今回はグリーンにしています。 

そして backgroundは シーンの背景になります。 

3Dゲームではあまり使わないですが 

2Dゲームを作るときなんかはよく、背景の色を変えたりしますので 

覚えておきましょう。 

では次に 外部ツールを選択します。 

ここでは、スクリプトエディターの設定ができます。 

ここが、visualstudio2019になっていればOKです。 

ちなみにVSCodeなどの他のエディターを使うこともできます。 

他のエディターを使う場合は  

そのエディターをPCにインストールしてから 

ブラウズで インストールした場所を選んであげれば使えるようになります。 

基本操作を覚えよう!!!

それではまずは ヒエラルキーから 3Dオブジェクト、

キューブを入れて 

動かしてみましょう。 

キューブを入れたら 左上にある 5つのツールを使って 

色々と動かしてみましょう。 

・ハンドツール 

・移動ツール 

・回転ツール 

・スケールツール 

・短径ツールの  5つがあります。 

これらを使って、オブジェクトを動かしていきます。 

ハンドツールを選択して、 右クリックをすると 

視点移動もできます。 

もしくは 右側にある transformの所に 

数値を入れて 動かすことができます。 

この2つが unityの基本動作になります。 

transformの X、Y、Zの所は 

スライドできるようになっています。 

あと、transformの… を押すと リセットがあります。 

リセットを使うと、初期ポジションに戻してくれるので 

覚えておきましょう。 

では次に  メインカメラの設定をしていきます。 

今画面を見てみると  シーンビューと ゲームビューが違うと思います。 

シーンビューには映っているけど 

ゲームビューには映っていないことがよくあります。 

今回はそれを同じ画面にしていきます。 

まず ヒエラルキーにある 

メインカメラを選択してください。 

次に ゲームオブジェクトから 

カメラ位置をビューに合わせるを クリック。 

そうすると、画像のように同じになります。 ↓

あとは メインカメラのtransformの位置を変えて 

オブジェクトを見やすいようにしていきましょう。 

では次に メインカメラのインスペクターを見ていきましょう。 

ここでよく使うのは クリアフラグと深度です。 

では試しに クリアフラグをソリッドカラーに変更してみてください。 

背景を単色にしたい場合は、こちらを使います。 

クリックすれば、カラーの変更もできます。 

今回は、スカイボックスの方でやっていくので 

スカイボックスに戻しておきましょう。 

深度は、カメラの優先順位になります。 

数字が高い方が優先されて

そのカメラがゲームビューに映ります。 

今回は、カメラが1つだけなので そのままでOKです。

カメラを複数使うときは、深度に気をつけましょう。




では次に オブジェクトの色を変更してみましょう。 

まずプロジェクトから マテリアルを作ります。





そして、インスペクターの アルベドの所にある 

カラーピッカーをクリックして、色を変更しましょう。 

今回は 赤色にしています。 

カラーピッカーでは 

A とありますが、Aはアルファ値になります。 

ここの数字を0にすると、透明にすることができます。



最後にこのマテリアルをキューブにドラッグします。 

そうすると、キューブの色が赤色になったと思います。 




このように、色を変更する場合は マテリアルで変更していきます。

スカイボックスを設定する方法

では次にスカイボックスの設定をしていきます。 

まずはアセットストアから、スカイボックスを

DL【ダウンロード】しましょう。 

ウインドウから アセットストアを開きます。 

そして、StarfielfSkybox と検索してください。

無料で使えるスカイボックスは沢山あるので 

自分の好きなやつで 構いません。 

ではこちらをDLしましたら 

プロジェクトにStarfield Skyboxのフォルダがありますので 

その中にある、skyboxをシーンビューにドラッグして 

入れて見ましょう。 

そうすると 画像のように宇宙空間にいるみたいに

なると思います。 

また インスペクターのexposureやrotationから 

微調整もできるようになっています。 

スカイボックスは、ワンタッチで実装できるので 

とても簡単です。

それでは次にスカイボックスをデフォルトのやつに 

戻す方法も見ていきましょう。 

では 画面上にある ウインドウから、レンダリング、ライティング設定を 

開きましょう。 

開くと このような画面が出てきます。↓ 

そして、スカイボックスマテリアルの丸いマークの所をクリック

そうすると セレクト画面になるので 

その中にある、 default skyboxを選択すれば 

デフォルトに戻すことができます。 

ではデフォルトのスカイボックスに戻しておきましょう。 

ディレクショナルライトの設定 

それでは次に ライトの方を見ていきましょう。 

ヒエラルキーの中にある、directional ligthを選択して 

インスペクターの 回転の X軸を動かしてみてください。 

そうすると、ライトが回転して画面が暗くなると思います。 

そして ハンドツールを選択して、 右クリックをしながら 

ドラッグをして 視点を上の方にしてみると 

太陽が、あるのがわかると思います。 

このように、ライトと太陽がセットで入っているわけですね。

ただ、directional ligthを増やしても 太陽は増えず

1個のままになります。 

太陽を動かしてみよう 

こちらの太陽ですが、 これもコードを使って動かすことができます。 

それでは実際にコードを書いて動かしてみましょう。 

プロジェクトから C#スクリプトを選択して 

まずは名前を決めます。 

名前は何でもいいですけど、 今回はSunmove という名前にしています。 

そして、スクリプトが出来たら 

ダブルクリックをして開きましょう。 

そうすると、エディターが立ち上がります。 ↓

ではその中に、このようなコードを記入していきます。 

それではまずは、プログラムの説明を簡単にしていきます。 

まず上の方に using~ というコードがありますが 

これは決まり文句のようなものなので 

消さないようにしましょう。 

次に public class とありますが 

C#の場合は、 このようにクラス単位で作っていく形になります。

 

そして、その中にある 

Void Start や Void Updateはメソッドと呼ばれるものです。 

Void Startは、最初の1回だけ実行されるメソッドで 

Void Updateは、毎フレームごとに実行されるメソッドになります。

ですので、 基本的には Void Updateの中に 

コードを書いていきます。 

あと 緑色で//とありますが これはコメントアウトになります。 

先頭に、//をつけるとコメントをつけることができます。 

複数行の場合は /* ~  */を つけていきます。

では Void Updateの中に このようなコードを書いていきましょう。

 

 transform.Rotate(new Vector3(0,-10) * Time.deltaTime);

ここまで

こちらのコードは何をしているかと 言うと 

Y軸を 1秒間にー10度ずつ回転させているコードになります。 

【中の数字は何でもOKです】

そしてそこに Time.deltaTimeをかけています。 

これをつけることによって、動きが滑らかになるので 

つけるケースが多いです。 

ではコードができましたら 保存しましょう。 

visualstudioの場合は、Ctrl+Sキーで保存ができます。 

保存できたら、エディターを閉じましょう。

ではコードが出来ましたら、次はアタッチをしていきます。 

今作ったスクリプトを directional ligthにドラッグして 

アタッチしてください。 

そして、 directional ligthのインスペクターを見て 

ちゃんとアタッチされているかを、確認しましょう。 

では再生ボタンを押して、 ゲームを実行してみましょう。 

そうすると画像のように、太陽が動いているのがわかると思います。 ↓

ライトと太陽はセットなので 

directional ligthを動かすと 

太陽を動かせるようになっているわけですね。

・ローラーボール作り パート1 下準備

はい、それでは今回からはゲームを作っていきます。 

今回作るのはローラーボール【玉転がしゲーム】です。 

これはチュートリアルとしても、ありますので

すでにやっている人もいるかと思いますが

復習もかねてやっていきましょう。 

ローラーボールはunityの登竜門的な ゲームですからね。

それではまずは ヒエラルキーから 3Dオブジェクト 

 プレーン【平面】とスフィアを入れましょう。 

そして、前にやったようにマテリアルをつけて 

スフィアの色を赤色に変更します。 

あとは、 シーンビューの右上にあるギズモの真ん中をクリックすると 

画像のようになります。 

ローラーボール パート2 ボールを操作しよう 

それでは次に、スフィアを操作できるようにしていきます。 

まずスフィアを選択して 

コンポーネントからrigidbody を入れましょう。 

これで重力を追加できます。 

use gravityとあるので ここにチェックを入れます。 

では次にプロジェクトから C#スクリプトを作ります。

名前は Spheremove という名前にしています。 

ではこのようなコードを記入していきましょう。 

using UnityEngine;
using System.Collections;

public class Spheremove : MonoBehaviour
{

public float speed;
private Rigidbody rb;

void Start()
{
rb = GetComponent<Rigidbody>();
}


void FixedUpdate()
{
float moveHorizontal = Input.GetAxis("Horizontal");

float moveVertical = Input.GetAxis("Vertical");

Vector3 movement = new Vector3(moveHorizontal,0.0f,moveVertical);
rb.AddForce(movement * speed);
}


}

ここまで 

ではコードを見てみると 

今回は、FixedUpdate()を使っています。 

Fixedにすると、フレームレートを固定にすることができます。 

ゲームによっては、固定にしたほうがいいケースもあります。 

そして Input.GetAxis(“Horizontal”); と  Input.GetAxis(“Vertical”);

で 入力をできるようにします。 

horizontalは横軸、 verticalは縦軸の操作ができるようになります。 

そして 

Vector3 movement = new Vector3(moveHorizontal,0.0f,moveVertical);

rb.AddForce(movement * speed); 

を付けることによって 力を加えています。

これをすると スフィアが動くと

そのまま転がり続けるようになります。 

ではコードが出来たら 

そのスクリプトをSphereにアタッチしましょう。

アタッチしたら、 インスペクターで 速度という項目が出来ているので 

そこに 10と入力しましょう。 ↓ 

ではこれで再生ボタンを押して、確認してみましょう。

スフィアはキーボードの矢印キー または WASDキーで

操作ができます。 

ちゃんと動いているかを確認しましょう。 

画像のように動いていればOKです。

ローラーボール パート3 壁とアイテム

では次に壁とアイテムを設置していきましょう。 

プロジェクトから 3Dオブジェクト キューブを入れます。 

こちらの横の長さを伸ばしてあげて、壁にしていきましょう。

キューブを4つ入れて、このように壁を作りましょう。 ↓

キューブの 拡大縮小のY軸は、 0.39に統一しています。 

壁を作るときは、 ギズモで視点を移動したり 

移動ツールを使って、微調整していきます。 

とりあえず、スフィアが落ちないようにすればOKです。

では次にアイテムを作ります。 

アイテムも同じ、キューブを使います。 

ではこのように設定していきます。 ↓

まず、インスペクターで 名前を変更して Itemとしましょう。 

そして transformは 拡大縮小のサイズを0.2ぐらいにして 

回転を 全部 45にします。 

そして、 このItemを プロジェクトにドラッグして 

プレハブにしましょう。 

プレハブにすると、青いマークに変わります。 

プレハブにすると、オブジェクトの複製が簡単にできて 

パラメータの変更も共有してくれます。 

つまり、 一つの設定を変えると 

全部のプレハブに反映してくれるわけですね。 

そしてマテリアルをつけて、黄色に変更します。

ではプレハブを作ったら、 そのプレハブをシーンにドラッグして

配置していきます。 

今回は、 5個 配置しています。 

プレハブを作ったら、元のオブジェクトは削除してOKです。 

では次に C#スクリプトを作ります。 

名前は、Spinにしています。 

エディターを開いたら

Void Update() の中に 

こちらのコードを書きましょう。 

transform.Rotate(new Vector3(15, 30, 45) * Time.deltaTime);

ここまで 

今回は、オブジェクトを回転させています。 

ではスクリプトが出来たら 

それを Itemのプレハブにアタッチしましょう。 

これで、5個のItem全てに反映されます。 

それでは、再生ボタンを押して確認します。 

このように、 ItemがスピンしていればOKです。 ↓ 

ローラーボール パート4 アイテム取得

それでは次に アイテムを取得できるようにしていきます。 

処理としては、 スフィアがアイテムとぶつかったら 

アイテムを非表示にしていきたいと思います。 

それでは 前に作った Spheremove のスクリプトを開きましょう。 

そこにコードを追加していきます。 

前回書いたコードに こちらを追加しましょう。 

Addforceの下に 追加します。↓

 void OnTriggerEnter(Collider other)
    {

        if (other.gameObject.CompareTag("Pick Up"))
        {
            other.gameObject.SetActive(false);
        }

    }

ここまで

こちらのコードは、もしタグがPickup だったら 

ゲームオブジェクトを非表示にします。 

今回の場合は、アイテムを非表示にします。

OFFにするなら、false ONにするなら、True になります。 

ではコードが書けたら保存しましょう。 

次に タグの設定をします。 

プレハブのItemを選択して 

インスペクターから タグをクリックして 

タグを追加します。 ↓

そして +マークを押して 

Pick Up と入力して  saveしましょう。 

小文字と大文字を間違えないようにしてください。 

そしてまた、インスペクターのタグを見ると 

Pick Up が出来ているので そちらをつけましょう。 

次に コンポーネントから rigidbodyを追加してください。 

rigidbodyの 

Use gravityと 

Is kinematicは どちらもチェックを入れましょう。

そして 

Box colliderのトリガーにも 

チェックを入れます。 ↓

ではここまで 出来ましたら再生してみましょう。 

そして、アイテムにぶつかると アイテムが消えると思います。

こんな感じになっていればOKです。 ↓ 

ローラーボール パート5 ジャンプ処理

では次に ジャンプ処理の実装をしていきたいと思います。 

それではまた、 Spheremoveのスクリプトを開いてください。

今回はこのようなコードを追加します。 

using UnityEngine;
using System.Collections;
public class Spheremove : MonoBehaviour
{

    public float jumpSpeed;


    public float speed;
    private Rigidbody rb;
    void Start()
    {
        rb = GetComponent<Rigidbody>();
    }
    void FixedUpdate()
    {
        float moveHorizontal = Input.GetAxis("Horizontal");
        float moveVertical = Input.GetAxis("Vertical");
        Vector3 movement = new Vector3(moveHorizontal, 0.0f, moveVertical);
        rb.AddForce(movement * speed);


        if (Input.GetButtonDown("Jump"))
        {
            rb.velocity = Vector3.up * jumpSpeed;
        }

    }

    void OnTriggerEnter(Collider other)
    {

        if (other.gameObject.CompareTag("Pick Up"))
        {
            other.gameObject.SetActive(false);
        }

    } 
}

ここまで 

追加されている場所は 2か所ありますね。 

まずは public float jumpSpeed; を追加します。 

そして、AddForceの すぐ下に 

こちらを追加します。 

  if (Input.GetButtonDown(“Jump”))

        {

            rb.velocity = Vector3.up * jumpSpeed;

        }

これで スペースキーを押すと 

ジャンプができるようになります。 

ではコードが出来たら、保存しましょう。 

そして、スフィアを選択してインスペクターを見てみると 

jumpSpeedがあるので、その中に 5 と入力しましょう。 

10だと大きすぎるので、 5ぐらいがちょうどいいと思います。 

では、再生をして確認してみましょう。 

スペースキーをクリックすると 

このようにスフィアがジャンプすると思います。 ↓ 

ローラーボール パート6 カメラの追従

では最後に、カメラの追従もやってみましょう。 

スフィアが動いたら、カメラも一緒に動くようにしていきます。 

では新しく、C#スクリプトを作ります。 

今回は Cameramove という名前にしています。 

以下のコードを記入しましょう。

using UnityEngine;
using System.Collections;

public class Cameramove : MonoBehaviour
{

	public GameObject target;
	private Vector3 offset;

	void Start()
	{
		offset = transform.position - target.transform.position;
	}

	void Update()
	{
		transform.position = target.transform.position + offset;
	}
}

ここまで

では、スクリプトが出来たら  

それをMainCamera にアタッチしましょう。 

そしたら、インスペクターにターゲットがあるので その中に 

スフィアをドラッグして入れましょう。 

では、再生して確認します。 

このように カメラがスフィアを追従していればOKです。 ↓ 

これでローラーボールは完成になります。





Standard Assetsの使い方

それでは、次にStandard assertsも使ってみましょう。

おすすめアセットでも紹介しています。

このアセットは、初心者がまず覚えるべきアセットで

カメラやキャラクターなどが一通り入っているアセットです。


それではまずは、パッケージマネジャーからStandard assertsを 

インポートしていきます。 

オオモリちゃん
オオモリちゃん

Unity2020.1以降は

パッケージマネジャーから入れていくよ




しかし、Standard assertsを入れてコンソール画面を見てみると 

エラーが出てしまいます。

 


このように、 2つのエラーが出ていると思うので 

そちらを直していきます。

まずはForcedResetのスクリプトを直します。 

まず UnityEngine.UI と追加して 

typeofの後ろを Image にします。

次にSimpleActを直していきます。 

こちらも同じように UnityEngine.UI を追加して 

GUITextを Textに変更します。  

変更したら、保存をしましょう。 

それでコンソール画面にエラーが出ていなければOKです。





それでは、Standard assertsを使ってみましょう。 

色々な素材が入ってますけど、 とりあえず一番よく使うであろう 

追従カメラの設定をしていきます。 

では、最初にThirdPersonControllerというキャラクターが 


入っているので、 そちらをシーンに入れてみましょう。 

このキャラは、最初からアニメーターとスクリプトがついているので 

動かすことができます。 


再生して、 矢印キーまたは WASDキーで 移動ができるようになっています。

では、このキャラに追従カメラをつけていきましょう。 

まずはMain Cameraの設定です。 
Main Cameraは使わないので、 削除するか非表示にしておきます。 

そしたら次に、MultipurposeCameraRigというのが あるので 

それをシーンにドラッグして入れましょう。

次にThirdPersonControllerを

autocamのターゲットにドラッグします。



これで設定の完了です。 

では再生して確認してみると、 カメラが後ろから追従しているのが 

わかると思います。 




動画版もあります。 ↓↓



・ローラーボール作り パート1

ロールボール パート1.mp4

・ローラーボール パート2 ボールを動かしてみよう

ロールボール パート2.mp4

・ローラーボールパート3 カメラ設定をしてみよう

ロールボール パート3.mp4

・ローラーボールパート4 壁とアイテムを設置しよう

ロールボール パート4.mp4

・ローラーボールパート5 アイテムを取得しよう

ロールボール パート5.mp4

・ローラーボールパート6 カウント表示をしてみよう

ロールボール パート6.mp4





 

コメント

タイトルとURLをコピーしました