本当の初心者のためのUnity超入門　～基本操作編～

# はじめに
　本記事は、Unity初学者のための基本的な内容を一つずつ説明していくシリーズとして記載します。
　チートシートや、基本を勉強し始めた人の最初の概要理解に利用していただければ幸いです。
　
　なおこの記事では、UnityはあくまでゲームやVRコンテンツ等に動きを持たせる「機能」の部分を作成したり、モデル等を組み合わせてシーンを構築したりといった、**オーサリングツールとしての役割を担うソフト**という立場で記載していきます。
　モデルの作成等については他のツールで作成し、Unityに読み込むものという前提で読み進めてください。

## 利用するバージョン
　本記事で扱うUnityのバージョンは、**Unity2019.10f1**です。

## この記事について
　第1弾となる本記事では、シーン上にオブジェクトを作成し、編集できるレベルまでを扱います。
　スクリプトの作成等については以降の記事に記載していきます。　



# 画面の説明
　画面廻りの説明をしていきます。
　下図はUnityでプロジェクトを作成した際に表示される最初の画面です。　この記事ではオブジェクト配置等によるシーン構築までを扱っているので、必要最低限のウィンドウ・ビューについてのみ説明を行っていきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/350776/1c6e564b-21a7-83a8-c5d1-9bc63dfc536a.png)



## シーン
　まずは中央にあるシーンについてです。
　見たままそして聞いたまま、ここにゲーム等で表示させたいコンテンツを構築していきます。
　Unityでは建物やキャラクターのモデルだけでなく、シーン内のどこを表示するかを設定するためのカメラや光源（ライト）など、様々な要素をシーン上に構築していきます。

## ヒエラルキー
　次にヒエラルキーについてです。
　ヒエラルキーは、シーン上に配置されているオブジェクトリスト化して表示するエリアです。
　リストの内容を整理しておくことで、特定の複数要素に対してまとめて処理を行うといったことが容易になります。
　初期状態では、カメラと直接光タイプの光源が1つずつ配置されています。

　![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/350776/cd34362b-0544-c92a-c436-1beab086b60a.png)

## プロジェクトウィンドウ
　プロジェクトウィンドウでは、シーン構築にりようするためのアセット（モデルやマテリアル・スクリプトをまとめてアセットと呼びます）を管理します。
　
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/350776/3b440239-71f9-841a-1f0b-8441e692faa5.png)

### プロジェクトウィンドウのフォルダ構成
　プロジェクトウィンドウ上で右クリックし「Create」内のメニューから、フォルダやスクリプト、マテリアルなど様々な要素の作成を行うことができます。
　アセットは綺麗に整理しておくことで作業効率を上げることにつながりますので、フォルダを作成し各アセットの管理を行いましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/350776/9e1ebcdb-6f77-72d3-def6-e2727f7ea7b9.png)

　基本的には以下のような構成は必須となってくるかと思います。
　命名規則としては、

* 先頭文字は大文字
* 複数系の名前にする

などしておくと分かりやすいかと思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/350776/fb041fc9-43ff-8470-caaf-2c8ce2333e83.png)


## インスペクター
　最後に、インスペクターは選択したアセットの情報を表示するウィンドウです。
　シーン上に配置されているされていないに関わらず、選択した項目の形状情報やその他の設定情報を表示します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/350776/09b45721-9140-c65d-8742-40fb7d997a41.png)


# シーンの操作
　Unityのシーン内での視点移動には、

* ズームイン/アウト
* パンニング
* 見回し

の3つを利用します。

操作方法は以下の通りです。

|操作名|操作方法|
|:--|:--|
ズームイン/アウト|マウスホイールのスクロール|
|パンニング|マウスホイールを押し込んでマウス移動|
|見回し|右クリックを押しながらマウス移動|


# シーン構築
　次に、シーンの構築を行う手順を状況別に説明していきます。

## Unityのオブジェクトを利用するとき
　Unityで用意されている基本的なオブジェクトを利用したシーン構築（あるいは修正）を行う場合についてみていきます。

### オブジェクトを作成
　まず、オブジェクトの作成方法についてですが、ヒエラルキー上で右クリックし、「3D Object」の中にある項目を利用することができます。
　任意のオブジェクトを選択すると、ヒエラルキー及びシーンに追加したオブジェクトが表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/350776/99a2c587-014b-1b63-e378-c9ae8ca1a80a.png)


|オブジェクト名|形状|
|:-:|::|
|Cube|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/350776/eeda260c-a71e-c750-76a2-4d452c8c64cc.png)
|
|Sphere|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/350776/806e947e-1680-4c50-7a63-f12ba1010f0d.png)
|
|Capsule|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/350776/28de0174-680d-5729-9d02-fd8cdfb32405.png)
|
|Cylinder|![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/350776/c2d99137-ec6b-09c7-bff9-1f15bee50688.png)
|



### 位置・向き・大きさの変更
　次に、シーン上に存在するオブジェクトの位置や向き、大きさを変更したい場合について説明していきます。

#### 移動
　マウスを使って要素を移動させたい場合、下図赤線の「Move Tool」が選択された状態でオブジェクトを選択すると、XYZそれぞれの軸を示す矢印が表示されます。
　この矢印をドラッグして、任意の方向に要素を動かすことができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/350776/e9a5ed4f-6651-b456-a9d2-cd72b48369a7.png)

#### 回転
 　次に、要素を回転させたい場合は、「Rotate Tool」に変更した状態でオブジェクトを選択します（順番は逆でも可）。
　「Rotate Tool」の場合は、オブジェクトの内側に球場の回転ガイドが表示されます。要素の移動と同じく、ガイドをドラッグするとXYZそれぞれの方向に対応して回転させることができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/350776/edcd2f10-e8f7-cb50-7db7-310355fdd47d.png)


#### 拡大・縮小
　オブジェクトを拡大・縮小する場合は、「Scale Tool」を利用します。
　こちらも同様にXYZそれぞれの方向に拡大・縮小できるようになっているので、ガイドをドラッグすることでオブジェクト形状を変化させることができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/350776/9887c77e-39d5-299a-227d-b3e555808a0f.png)

　Unityでは形状をスケールする際に、片側の方向だけでなくオブジェクトの中心を基準に正負両方にスケールされます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/350776/17a5a236-e664-4faf-a38b-df34a5766f4a.png)


#### 数値入力による移動
　ここまでマウスによるオブジェクト操作について説明しましたが、数値入力でオブジェクトを編集したい場合、インスペクターの「Transform」を利用します。
　先にも述べた通り、オブジェクトを選択するとインスペクターに当該オブジェクトの各種情報が表示されます。その中にある「Transform」グループにそれぞれ「Position」「Rotation」「Scale」とありますので、ここに数値を入力すると、オブジェクトを制御することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/350776/e6734c30-88e8-1bbb-8d2a-d955f0b51efd.png)


### 空のオブジェクトの作成
　次に、「空のオブジェクト」の作成です。
　Unityを利用しているとなじみ深くなる言葉ですが、Unityではよく「空のオブジェクト」というものを利用します。
　突然「空のオブジェクト」と言われても意味が分からないと思いますので、いくつか利用目的を列記しておきます。

* 複数オブジェクトを空のオブジェクト配下に格納して（入れ子にして）要素をグループ化する
* スクリプトをコンポーネントとして割り当てることで、実行の媒体とする（スクリプトの仕様については別記事で説明する予定なので、今回はふわっと理解しておいてください。）

　ほとんど上記2つの利用方法がメインとなるかと思います（こんな使い方があるという方はコメント頂ければ追記したいと思います）。

　作成する際は、オブジェクトと同様にヒエラルキー上で右クリックし、「Create Empty」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/350776/c9b9c0d0-4be0-ce1b-1288-d171cfe98cea.png)

　ヒエラルキー上で選択してみると、「Transform」以外何の情報もないことが分かります。

　![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/350776/54e4a074-caf7-4eb3-8032-8d891ba6081a.png)


### オブジェクトのグループ化
　次に、オブジェクトのグループ化です。
　Unityでシーン構築を行っていると、徐々にオブジェクトやスクリプトの数が増えていき、ヒエラルキーウィンドウが見づらくなってきます。
　そういった際にオブジェクトをグループ化して名前を付けて管理することで、視認性の向上を行うことができます。
　また、単純にオブジェクトグループを作成してまとめて動かすといった利用もできます。

　先にも上げた通り、グループ化を行う際は「空のオブジェクト」を利用します。
　グループ化したいオブジェクトを全て選択し、空のオブジェクトの上にドラッグアンドドロップするだけです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/350776/74801bce-cf26-42a9-e30c-3971275585ea.png)

　**\* この時、空のオブジェクトの位置を（x:0, y:0, z:0）にしておくと、後で移動を行う際などに便利です。**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/350776/8f75f63b-459b-4ca8-fc0a-ed076e80e280.png)



### オブジェクトのprefab化
　次に、オブジェクトのPrefab化についてです。
　Prefabとは、Unity上で編集（形状の変更や各種コンポーネントの割り当てなど）を行ったオブジェクト、アセットとして、つまり、**使いまわしのきくパーツ**として保存する機能です。
　この機能を使うことで、迅速なシーンの構築やスクリプトからオブジェクトを生成するといったことを行いやすくします。

　それでは、先ほどグループ化した3つのCubeをPrefab化します。
　プロジェクトウィンドウ内の「Prefabs」フォルダを開き、Prefab化したいオブジェクトをヒエラルキーからドラッグアンドドロップします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/350776/d6e139eb-182a-2c4a-ef1d-d8dc1053bd98.png)

　以降は、プロジェクトウィンドウからシーンにドラッグアンドドロップすることで、Prefabを利用することができます。



## 既存モデルを読み込むとき
　最後に、別のソフトウェアで作成したモデルや、アセットストア等からダウンロードしたモデルを利用する方法について説明します。
　説明とはいいつつも特に難しい操作はなく、プロジェクトウィンドウ内（アセット）に読み込んであるモデルをシーンにドラッグアンドドロップするだけです。

　以降の編集についても、Unityのオブジェクトと同様の操作で「移動」「回転」「拡大・縮小」を行うことができます。

　Unityが単体で読込可能なファイル形式を以下に列記しておきます。

|形式名|拡張子|
|---|---|
|FBX|.fbx|
|COLLADA|.dae|
|3DSMaxファイル|.3ds|
|FBX(Filmbox)|.dfx|
|Wavefront OBJ|.obj|
|Sketchupファイル|.skp|

　この他にも端末に特定のアプリケーションがインストールされていれば利用可能なファイルもありますので、そのあたりは都度調べながら取り組んでみてください。


## おわりに
　今回の記事はここまでで終了です。
　次回はUnityでC#を扱う際の基礎知識について記載していこうと思います。

　最後まで閲覧していただき、ありがとうございました。