Unity匠塾 Vol.1

Tips
Unity
エンジニア
ツール

エンジニア

Unity匠塾 Vol.1

Unityとは

Unityとはユニティ・テクロノジーズ社が提供しているゲームエンジン(ゲーム開発環境)のことです。
ゲーム開発に必要な機能を手軽に扱うことができ、オブジェクト(描画する物)の配置もエディタ上から直感的に操作できます。
プログラムを介してコード上からオブジェクトを生成しなくて良いので、プログラムに詳しくなくてもゲーム開発を始めやすいのが利点です。
では実際にどうやってUnityを扱うのか、今回は簡単なゲームの作成をしながら学んでいきます。

 

Unityをインストールしよう

unity サイト画面

ではまずUnityをインストールしてみましょう。
Unityの公式サイト(https://unity3d.com/jp)にアクセスしてホームページ上部の項目から「Unityを入手」を選択します。
Unityは無償で利用できるものから、より多くの機能を搭載した有償版もあります。
無償版と有償版の大きな違いとして「収益の上限」があります。
Unityを利用する会社の年間総売上が$100,000よりも多い場合、または$100,000を超える資金がある場合には無償版を利用することができません。
また、Unityで制作したものを端末(スマートフォンなど)に書き出した際、起動時にUnityロゴが表示されます。
このUnityロゴを非表示にしたり、エディタスキンの変更なども有償版でしか行えない機能になります。

エディタスキンとはUnityエディタウィンドウのデザインの事で、無償版では明るいグレーの1パターンのみ、有償版では暗いグレーのパターンも選択できるようになります。

 

無償版
無償エディタ画面

 

有償版
有償エディタ画面

 

ひとまず、個人でゲーム作成をする分には無償版で問題ないので「Personal(無償版)」をインストールします。
ダウンロードした実行ファイル「UnityDownloadAssistant-2017.4.0f1(2018年3月26日現在、最新バージョン名になります).dmg(windowsの場合は.exe)」を実行するとUnityのインストーラが起動します。

利用規約に同意し、「Component」の欄で書き出したい端末用のビルドオプションを選択後、Unityの保存先を指定してインストールを開始します。
(こちらは後からでもインストールできるためひとまず何も変更しなくて問題ありません。)
最後に保存先を選択しインストールします。

 

プロジェクトを作ろう

プロジェクト作成

では早速プロジェクトを作成していきましょう。
まずUnityを開き、画面右上にある「New」をクリックします。
すると、作成するプロジェクトの名前と保存場所を入力するウインドウに変わります。
プロジェクト名は任意の名前で問題ありませんが、ここでは「UnityGameSample」として続けます。

保存場所も決定したら「Create project」ボタンを押してプロジェクトを作成します。

さあこれでUnityの世界に足を踏み入れることができました。
では実際にこれから何をすればいいのか。
まずはUnityエディタの操作方法を説明していきます。

 

Unity操作説明

Unityのエディタはいくつかのウィンドウに分かれています。
まずよく使うところから覚えていきましょう。

各ビュー説明

真ん中にドーンと置いてある、小さめのカメラアイコンや太陽のようなマークが置いてあるウィンドウが「Scene」ビューになります。
「ビュー」とはエディタで行う操作を各カテゴリーごとに分けたもので、エディタ内には複数のビューが存在します。
「Scene」ビューのタブと同じ場所に「Animator」「Animation」「Game」というビューがありますが、当記事で扱うのは「Scene」と「Game」の2つのビューと、すでにエディタに表示されている「Project」および「Hierarchy」ビューになります。

他のビューについては、機会があれば改めてご説明したいと思います。

「Scene」ビューではオブジェクトの配置や位置調整ができ、「Game」ビューでは配置したオブジェクトをカメラを通して、実際のプレイ画面の表示ができます。
(カメラがある位置からカメラの向いている方向を映しています)

次に下部にあるのは「Project」ビューです。
「Project」ビューは、プロジェクト内で使う素材やスクリプトなどを可視化し、管理するためのビューです。
その次に左上部にあるのが「Hierarchy(ヒエラルキー)」ビューです。
「Hierarchy」ビューは実際にシーンへ配置するオブジェクトやその階層を可視化し、管理するためのビューです。

「Hierarchy」ビューはシーンに紐づくアセットが表示されるビューなのに対し、「Project」ビューはプロジェクトに紐づくアセットを表示するビューであるため、シーンが異なっていても、「Project」ビューで見えているものはプロジェクト内共通の資産として扱えます。
アセットとは「Unity内で扱う部品」のことで、キャラクターや建物のオブジェクト、テクスチャなどさまざまなものをさします。

最後に右手にあるのが「Inspector」ビューです。
「Inspector」ビューは配置するオブジェクトの詳細な設定(どの位置に配置してどのくらいの大きさなのか等)をする場所になります。

 

シーンとは

少し話が飛びますが導入で話しておきたいことなのでシーンというものについて説明していきます。
多くのゲームはいくつかのシーンによって構成されています。
タイトルシーン、バトルシーン、リザルトシーンなどが主に挙げられます。
こうしてシーンごとに区切ることでそれぞれに必要なものだけを生成し、タイトル→バトル、リザルト→タイトルといった遷移を簡単に行えます。
「プロジェクト」というものがゲームそのもので、「シーン」はそれをいくつかに区切ったものと考えるとわかりやすいと思います。
なのでオブジェクトを配置してゲームを作る際にはこのシーンを作成するところから始まります。

では実際にシーンを作成していきます。
まずは「Project」ビューを右クリックして「Create」→「Folder」と選択してシーンを保存するフォルダを作成します。
次にメニューバーの「File」から「Save Scenes」を選択し「GameSample」と名前をつけて先ほど作成したフォルダ内に保存します。
すると「Project」ビューに「GameSample」というシーンが追加され「Hierarchy」ビューの方も「GameSample」と名前が変わりました。
これでシーンの作成は完了です。

 

3Dオブジェクトを配置してみよう

今度はオブジェクトを配置していきます。
先ほどからオブジェクトやら3Dオブジェクトやら名前が出てきましたが「オブジェクト」って何だ?となると思うので少し説明をしていきます。
オブジェクトとはゲームに登場する物体全てを指し、キャラクターやフィールド、体力バーなど、さまざまなものがこの「オブジェクト」にあたります。
その中で3Dゲームにおけるキャラクターやフィールドなど3D表現されるものが3Dオブジェクトとなります。

 

オブジェクトを生成しよう

では実際にオブジェクトを生成・配置してみましょう。

Hierarchyからのオブジェクト生成

「Hierarchy」ビューを右クリックして「3D Object」→「Plane」と選びます。

Hierarchyからのオブジェクト生成

(この操作はウインドウ上部のメニューバーにある「GameObject」→「3D Object」→「Plane」と選択することでも実行できます。)
これで「Scene」ビュー上に四角い板が配置されました。
次に「Scene」上のカメラを動かしていきます。
簡単な操作としては、
・右クリックしながらマウスを動かすと角度の変更
・ホイールを押し込みながらマウスを動かすと垂直移動
・ホイールを回すと画面のズームイン/ズームアウト
となるので色々試して見やすい向きに調整してみましょう。

「Plane」の他にも「Cube」という立方体のオブジェクト。
「Sphere」という球状のオブジェクト。
「Cylinder」という円柱のオブジェクトなどがあります。

 

パラメータを設定してみよう

それでは次に「Spehre」オブジェクトを配置していきます。
「Hierarchy」ビューを右クリックして「3D Object」→「Sphere」と選びます。
そのまま生成するとPlaneの中に埋まった状態で生成されます。
この「Spehre」を上にずらしてみましょう。
まず「Hierarchy」から「Spehre」を選択します。
すると「Inspector」上に「Spehre」オブジェクトの詳細が表示されました。
今回は一番上に表示されている「Transform」について設定していきます。
この「Transform」では「位置(Position)」・「回転(Rotation)」・「大きさ(Scale)」のパラメータを設定できます。

AddComponentウインドウ

今回は位置を上にずらしたいので「Position」の「Y」の値に2を入力してみましょう すると「Spehre」が「Plane」から抜け出し、宙に浮きました。

このようにオブジェクトの「Transform」の値を変更すると、オブジェクトを位置や大きさが変動します。

 

マテリアルを設定しよう

マテリアルとは簡単に説明するとオブジェクトに色をつけたい時に使用するものです。
シーンやスクリプトを生成した時と同じように「Project」ビューを右クリックして「Create」→「Folder」と選択します。
フォルダの名前を「Material」フォルダを作成し、「Material」フォルダをダブルクリック後、また「Profect」ビュー内を右クリックして「Create」→「Material」と選択し、マテリアルを生成します。
名前を「Black」とつけて「Inspector」の「Albedo」の白い枠をクリックします。
すると色を指定するウインドウが表示されるので黒色(パラメータは[r]0,[g]0,[b]0,[a]255)に設定してウインドウを閉じます。
これで黒色のマテリアルが生成できたので、またドラッグ&ドロップで「Plane」オブジェクトに反映します。
マテリアルをPlaneに反映すると、見た目が黒に変わります。

 

コンポーネントとは

オブジェクトの配置が完了しましたが、このままではオブジェクトがそこにあるだけで何の動きも制御もつけていない状態です。
今回はコンポーネントというものを使って「Spehre」に重力を付けていきます。
コンポーネントとはオブジェクトに対して新しい制御を付与するものです。
まず「Spehre」を選択した状態で「Inspector」を見ます。
ここに設定されている「Transform」や「SphereCollider」などをコンポーネントと言います。
この「SphereCollider」はオブジェクトに当たり判定を付与するものです。
最初から設定されているものの中に重力を設定できるものがないため、新しくコンポーネントを設定していきます。

Sphereポジション値変更

最下部に「AddComponent」というボタンがあるのでこちらをクリックして、検索入力欄に「RigidBody」と入力後、「RigidBody」を選択し反映させます。
この「RigidBody」というものはオブジェクトの質量(重さ)や重力の付与、落下する際の空気抵抗をどれくらい受けるかなどの設定ができます。

今回は重力を付与したいので「UseGravity」プロパティにチェックを入れます。
これで「Spehre」オブジェクトが重力を持って落下するようになりました。

 

プロパティとは

コンポーネント内で「Transform」の値や、「RigidBody」コンポーネントの「UseGrabity」チェックボックスなど、 コンポーネントに対しての設定項目を「プロパティ」と呼びます。

 

シーンを再生してみよう

オブジェクト落下

ここで画面上部の再生ボタンを押してみましょう。
すると「Sphere」オブジェクトが重力によって落下し、「Plane」オブジェクトに当たって止まるようになっています。
このようにオブジェクトにコンポーネントを設定することによって色々な制御を付与できます。
また、再生中に「Scene」ビューから「Game」ビューに切り替わり、画面上に表示されるオブジェクトの見え方が変わったと思います。
こちらはシーン上に配置してある「MainCamera」の設定を元に描画しています。
この「MainCamera」の値を変更すると、ゲーム中画面での見え方が変わります。

 

まとめ

さあ第一回ということで説明する部分が多くなってしまいましたが、Unityの操作に慣れることはできましたでしょうか?

今回は、シーン上にオブジェクトを配置する手順について説明しました。

次回は、配置したオブジェクトをプレイヤーの手で操作できるよう、スクリプト制御を加えたり画面上にスコアを表示したりと、よりゲームらしい挙動の実装について、説明していきます。

最後までお読みいただき、ありがとうございました!

株式会社ネックネッコ 代表取締役 野口 基之
株式会社ネックネッコ
代表取締役
野口 基之

個人でスマートフォンゲーム開発をしようと思った際にUnityと出会う。 以来Unityの素晴らしさを人々に伝えたいと思うようになり、普段はシステムエンジニアとして仕事をする傍ら、Unityの勉強会、技術者交流会の開催や、集中セミナーのアシスタント講師を行なっている。 また、技術書の執筆(マイコミジャーナルより6月に発売予定)と、日本唯一のUnity公認の認定校(バンタンゲームアカデミー)にて講師業務に従事し、未来のゲームエンジニアの育成に努めている。