【Unity入門】ゲーム開発ができるようになる基礎知識まとめ


最近、さまざまなモバイルゲームを目にする機会が増えていますね。

ゲームエンジンであるUnityを使用して、簡単なゲーム・ARアプリを開発する方法をまとめた記事をご紹介します。

レベルは入門〜初中級向けですので、初めてUnityを開発する方だけでなく、ある程度開発に慣れてきた方にもおすすめです。

プログラミング未経験・ゲーム開発未経験の初心者向けにわかりやすく解説しています。ぜひご参考ください。

Unityとは?

Unityロゴ

そもそもUnityとは何なのか?と疑問に思う方もいると思います。

UnityとはUnity Technologies社が提供するゲームエンジンです。ゲームエンジンとは、簡単に説明するとゲームを開発するための環境のことです。

Unityはゲームエンジンでありながら、アニメーションの作成やXR分野(VR/ARなど)の開発にも非常に便利なツールで、他にもいろいろな機能を搭載しています。

参考記事)Unityの魅力とプロジェクト作成・画面構成を徹底解説

Unity開発環境の構築方法

Unityダウンロード

Unityについて理解できたけど、開発環境を準備するのは難しいのでは?と思ったのではないでしょうか。

何か新しいツールを使用する際、意外と引っかかるのが環境構築です。

しかし、Unityはとても簡単にかつ無料で開発環境を準備することができます。

参考記事)Unity・Vuforiaの活用と環境構築フロー

↓最新版Unityのセットアップ方法

参考記事)Unityセットアップ方法

Unity Proとは?

Unityの公式サイトや環境構築途中で見かけた「Unity Pro」ってなに?と疑問に思った方がいるのではないでしょうか。

このUnity ProというのはUnityライセンスの一つでいわゆる有料版です。

自分にふさわしいライセンスがどのようなライセンスかわからない方などには必見です。

参考記事)Unity Proでできることは?無料ライセンスとの違いを徹底検証

Unityチュートリアル

Unity開発画面

Unityの環境構築はできたけど、何から手を付けていいかわからない!という方もいると思います。

そんな方におすすめなのがUnity公式のチュートリアルです。

UnityのチュートリアルではUnityの開発方法の基礎から応用までを学ぶことができます。3Dゲームだけでなく2Dゲームの開発について学ぶことができるチュートリアルも存在するのでとてもおすすめです。

しかし、Unityのチュートリアルは入門レベルとはいうものの、専門用語が多すぎたり、プログラミングの知識がないと難しいとの声もあります。


そこでUnityチュートリアル入門編のひとつである玉転がし3Dゲームの作成をわかりやすく解説しました。

参考記事)【Unityチュートリアル完全攻略】初心者向け3Dゲームの作成

Unity入門におすすめの本5選

山積みの本

Unityチュートリアルも一通り学習し終えた、もしくはチュートリアルではイマイチ理解できない!という方もいると思います。

そんな方にUnityでの開発に役立つ解説・学習本5冊を厳選しました。

今までプログラミングを経験してこなかった、ゲーム開発についてイメージができないような方向けの入門書から、ある程度理解している人向けのUnity解説本までバランスよく紹介しています。

※筆者もこの記事で紹介した本を愛用しています。

参考記事)Unity入門におすすめの本5選

Unity小技集

Unity開発に慣れてくると、「実際にある〇〇を作成したい!」などと思ったりするものです。

そこでUnityの小技を紹介した記事をご紹介します。随時アップしておりますのでぜひご参考ください。

重力・空気抵抗を発生させる

重さ比較

何かを作ろうと思った時に一番最初に気にしなければいけないものは何かと聞かれたら、「重力」と「空気抵抗」ではないでしょうか。

Unityでは重力と空気抵抗をとても簡単に実装することができます。

参考記事)【Unity】Rigidbodyを使用して重力・空気抵抗を発生させる方法

物理特性マテリアルを用いた摩擦・跳ね返り

DynamicFriction比較

よりリアルな動きをUnityで実装したいときに必要になってくるのが「摩擦」や「跳ね返り」の実装方法です。

Unityではこのような本来であれば物理的な計算をしてプログラミングしなければ実装できなかった処理をノンプログラミングで実装することができます。

XR-Hubでは「跳ね返り」と「摩擦」の扱いについて別々の記事で詳しく解説しています。

参考記事)【Unity】物理特性マテリアル(弾性)を用いた跳ね返り表現の方法

参考記事)【Unity】物理特性マテリアルを用いた摩擦表現の方法

パーティクルシステム

Afterburner

Unityを勉強している方はどこかで「パーティクル」という言葉を耳にしたことがあるのではないでしょうか。

パーティクルとはコンピュータグラフィック技術の一つで、運動する粒子により構成される事象を表現するために使われます。

Unityではスタンダードアセットとして提供された炎や光、煙などを使用することができます。このようなパーティクルの使用方法、編集方法をご紹介しています。

参考記事)【Unity】パーティクル徹底解説!基本的なモジュールの使用方法から応用例まで

水を使用する(水面を表現する)

海

水の表現はゲーム開発において避けては通れないものではないでしょうか。

通常入門レベルで水面を表現するのはとても難しいとされています。

しかし、Unityではとても簡単に実装することができます。

こちらもパーティクルシステム同様にUnityが公式に提供しているスタンダードアセットを使用することで実装が可能です。

参考記事)【Unity】スタンダードアセットのEnvironmentを使用して水面を作成する手順

uGUIボタンを実装する

button設置例

ゲームのUIではよくボタンを利用した画面遷移や処理実行が行われます。

Unityではこのボタンの処理を簡単に実装することができます。

参考記事)【Unity】uGUIのボタン(Button)の基本的な使い方を徹底解説!

オブジェクトを移動・回転させる

XR-Hub移動回転

オブジェクトを移動させる際にどのように移動させるか、悩みどころの一つなのではないでしょうか。

そこでiTweenと呼ばれるアセットを使用することで簡単に移動・回転を実装することができます。

この移動と回転に関しては様々な方法がありますので正解は存在しませんが、一つの方法としてぜひご参考ください。

参考記事)【AR】【Unity】iTweenを使用してロゴを移動・回転させてみた

当たり判定を実装する

ユニティちゃん構え

ユニティちゃんをモデルにした当たり判定の方法をご紹介しています。

当たり判定にも実は様々な種類が存在します。ぶつかることのできるオブジェクトの当たり判定、ぶつかることのできないオブジェクトの当たり判定など、場面によって微妙に使用したい当たり判定は異なります。

このような当たり判定の使い分けから、具体的な使用方法まで詳しく知りたい!という方におすすめです。

© Unity Technologies Japan/UCL

参考記事)Colliderによる当たり判定

ナビゲーションシステムによる移動をする

ナビゲーションシステム基本構成

ナビゲーションシステムとは、「ナビゲーションメッシュを使用してゲーム世界の中を知的に動くキャラクターを作成する(公式マニュアルより)」システムです。

つまり、自分が操作していないキャラクターを自動移動させる手段の一つです。

この機能は非常に便利で、目的地を設定したり、移動範囲を制限できたり、このようなことをとても簡単に実装することができます。

自動で動くキャラクターを作成したい!という方におすすめです。

参考記事)ナビゲーションシステムの使い方

360度動画を作成する

これを使用する機会は普通のゲーム開発ではほとんどないと思います。

しかし、現在のVRブームのなかで、360度の動画(アニメーション)ってどのように作成できるんだろう?と疑問に思っている方も多いのではないでしょうか。

実はUnityではとても簡単に360度動画を作成することができます!それも今まで自分が作成したシーンをそのまま360度動画にすることが可能なのです。

参考記事)360度動画を作成する

Prefabs(プレハブ)の使い方(複製・削除・Prefabの解除など)

Unityでゲームを作成する場合には必須スキルとなるPrefabの使い方について1からご説明します。

特に同じモンスターを大量に出現させる場合や銃から銃弾を放つ場合など、ゲーム内で同じオブジェクトを大量に使いたいor出現させたい際に使用します。

Prefabの作成、オブジェクトの複製・削除、Prefabの解除までの基礎的な部分からスクリプトを使用したPrefabの動的生成まで説明しているので、ご一読ください。

参考記事)【Unity 入門】 Prefabs(プレハブ)で同じオブジェクトの複製から削除までを徹底解説!

Quaternionを使ってオブジェクトを回転させる

Unityでオブジェクトを回転させる時に使用するのがQuaternionです。

ただこのQuaternion、概念とか使い方がややこしく上手く使えないという方は多いと思います。

確実にゲーム作成には必須のスキルなので、簡単に使用できることを目的とした記事があるので、ぜひご一読ください。

真似してすぐに使えるスクリプト例など紹介しているので、そのまま使っていただいても構いません。

参考記事)【Unity】Quaternionでオブジェクトを回転させる方法

Vector3を使ってオブジェクトの移動や回転を表現する

Unityでのベクトル表現は主にVector3を使用します。

ただ、色々な関数や使用方法がありしっかりと理解できていない人も多いのではないでしょうか。

よく使用するVector3の様々な使い方や関数を紹介している記事があるので、是非Vector3について悩まれている方はご一読ください。

参考記事→)【Unity】Vector3の使い方とオブジェクトの移動や回転を表現する方法

オブジェクトの色(Color)を自在に扱う方法

Unityにおいて色を扱えるようになるのは必須項目になります。

色を自由に使えるようになればなるほど、表現が幅広くなり作成が楽しくなってきます。

基本的な色の設定方法から2色での点滅の作り方(上図参照)などをまとめて紹介している記事があるので、興味がある方はご一読ください。

参考記事→)【Unity】オブジェクトの色(Color)を自在に扱う方法

オブジェクトにリンクを挿入する

この知識もゲーム開発においてどのように役立つかはわかりません。

しかし今後ARがより流行した時に、オブジェクトをタップすればリンクページに飛ぶということを実装する必要があるのではないでしょうか。(実際にホロレンズを使用した時、エアタップできることを体験してこれは必須だと感じました)

ゲーム開発だけでなくAR開発にも関わっていきたい!と思う方必見です。

参考記事)オブジェクトにリンクを挿入する

UnityでのARアプリ開発方法

AR画像

UnityでARアプリを開発したい!という方もいると思います。

ここではUnityを使用してAR開発をする方法をいくつかご紹介します。

vuforiaの使い方

Vuforiaロゴ

vuforiaとはUnityに標準搭載されたARを開発するためのライブラリです。

Unityは3Dゲームや2Dゲームの開発だけでなく、ARの開発もすることができます。

vuforiaはとても簡単にARを開発できるライブラリで、Unity初心者にも簡単に実装することができるのでぜひチャレンジしてみてください。(作成できると以下の画像のようなARを作成することができます)

AR画像

参考記事)UnityでVuforiaを使用してARを作成してみた

ARKitの使い方

ARkitロゴ

ARKitとはApple社が提供するiOS向けのAR機能です。

これを用いることで、スマホのカメラで現実空間の平面を認識したり、空間上にオブジェクトを出現させたりすることができます。

このような技術を応用したアプリに「iOS用ARメジャーアプリ」があります。こちらのメジャーアプリはコチラで詳しくご紹介していますので、是非ご参考ください。

また、ARKit2.0が発表され、ARをいろいろな人と共有できる機能が追加されるなど、技術的に大きく進化しています。

参考記事)ARKitの使い方

ARKit2の使い方

ついにApple社が発表していたARKit2が発表されましたね。

ARKit2の実装は非常に革新的で、これからの生活を変えるような大きな一歩になるのではないでしょうか。

そんなARKit2の開発方法をいち早く解説しましたのでご紹介します。

参考記事)ARKit2のサンプルを実装する!準備から実装まで

Unityで学ぶC#入門

C#イメージ

Unityを利用したゲーム開発で避けて通れないのは「C#プログラミング」です。

Unityはノンプログラミングでゲーム開発が可能とはいうものの、クオリティの高いゲームを開発するためにはC#の知識が必須です。

特にプログラミング未経験者の方にとってはUnityでのゲーム開発を進める上で大きな障壁となっていたのではないでしょうか。

そこでXR-HubではUnityを利用してC#を効率よく学ぶために「Unityで学ぶC#入門」という連載記事を掲載しています。

UnityだけではなくC#も基礎から徹底的に勉強したい方はぜひご参考ください。

参考記事)Unityで学ぶC#入門

まとめ

いかがでしたでしょうか。

ここまでUnityの基本的な使い方からARへの応用までの記事をご紹介しました。このような技術を一通り使用できるようになれば、ある程度Unityを使いこなすことができるのではないでしょうか。

これからも随時Unityを使用したゲーム開発、ARアプリ開発に使える技術を紹介していきたいと思いますので是非ご参考ください。


Furui