【Unity入門】ゲーム開発ができるようになる基礎知識まとめ
最近、さまざまなモバイルゲームを目にする機会が増えていますね。
ゲームエンジンであるUnityを使用して、簡単なゲーム・ARアプリを開発する方法をまとめた記事をご紹介します。
レベルは入門〜初中級向けですので、初めてUnityを開発する方だけでなく、ある程度開発に慣れてきた方にもおすすめです。
プログラミング未経験・ゲーム開発未経験の初心者向けにわかりやすく解説しています。ぜひご参考ください。
Contents
Unityとは?
そもそもUnityとは何なのか?と疑問に思う方もいると思います。
UnityとはUnity Technologies社が提供するゲームエンジンです。ゲームエンジンとは、簡単に説明するとゲームを開発するための環境のことです。
Unityはゲームエンジンでありながら、アニメーションの作成やXR分野(VR/ARなど)の開発にも非常に便利なツールで、他にもいろいろな機能を搭載しています。
参考記事)Unityの魅力とプロジェクト作成・画面構成を徹底解説
Unity開発環境の構築方法
Unityについて理解できたけど、開発環境を準備するのは難しいのでは?と思ったのではないでしょうか。
何か新しいツールを使用する際、意外と引っかかるのが環境構築です。
しかし、Unityはとても簡単にかつ無料で開発環境を準備することができます。
UnityとUE4いじってみたけどUnityの環境構築めっちゃ簡単で大好きになったわ
— オキナワ (@okinawa579) 2018年6月30日
↓最新版Unityのセットアップ方法
参考記事)Unityセットアップ方法
Unity Proとは?
Unityの公式サイトや環境構築途中で見かけた「Unity Pro」ってなに?と疑問に思った方がいるのではないでしょうか。
このUnity ProというのはUnityライセンスの一つでいわゆる有料版です。
自分にふさわしいライセンスがどのようなライセンスかわからない方などには必見です。
参考記事)Unity Proでできることは?無料ライセンスとの違いを徹底検証
Unityチュートリアル
Unityの環境構築はできたけど、何から手を付けていいかわからない!という方もいると思います。
そんな方におすすめなのがUnity公式のチュートリアルです。
UnityのチュートリアルではUnityの開発方法の基礎から応用までを学ぶことができます。3Dゲームだけでなく2Dゲームの開発について学ぶことができるチュートリアルも存在するのでとてもおすすめです。
しかし、Unityのチュートリアルは入門レベルとはいうものの、専門用語が多すぎたり、プログラミングの知識がないと難しいとの声もあります。
そういえば今日はUnityのチュートリアル触って遊んでました
英語は分かんないしプログラミングも分かんないから難しいねえ
時間かかるし— 海野プリン@秋例ち35a/紅楼夢き19b (@kaisenpurin) 2018年1月7日
そこでUnityチュートリアル入門編のひとつである玉転がし3Dゲームの作成をわかりやすく解説しました。
参考記事)【Unityチュートリアル完全攻略】初心者向け3Dゲームの作成
Unity入門におすすめの本5選
Unityチュートリアルも一通り学習し終えた、もしくはチュートリアルではイマイチ理解できない!という方もいると思います。
そんな方にUnityでの開発に役立つ解説・学習本5冊を厳選しました。
今までプログラミングを経験してこなかった、ゲーム開発についてイメージができないような方向けの入門書から、ある程度理解している人向けのUnity解説本までバランスよく紹介しています。
※筆者もこの記事で紹介した本を愛用しています。
参考記事)Unity入門におすすめの本5選
Unity小技集
Unity開発に慣れてくると、「実際にある〇〇を作成したい!」などと思ったりするものです。
そこでUnityの小技を紹介した記事をご紹介します。随時アップしておりますのでぜひご参考ください。
重力・空気抵抗を発生させる
何かを作ろうと思った時に一番最初に気にしなければいけないものは何かと聞かれたら、「重力」と「空気抵抗」ではないでしょうか。
Unityでは重力と空気抵抗をとても簡単に実装することができます。
参考記事)【Unity】Rigidbodyを使用して重力・空気抵抗を発生させる方法
物理特性マテリアルを用いた摩擦・跳ね返り
よりリアルな動きをUnityで実装したいときに必要になってくるのが「摩擦」や「跳ね返り」の実装方法です。
Unityではこのような本来であれば物理的な計算をしてプログラミングしなければ実装できなかった処理をノンプログラミングで実装することができます。
XR-Hubでは「跳ね返り」と「摩擦」の扱いについて別々の記事で詳しく解説しています。
参考記事)【Unity】物理特性マテリアル(弾性)を用いた跳ね返り表現の方法
参考記事)【Unity】物理特性マテリアルを用いた摩擦表現の方法
パーティクルシステム
Unityを勉強している方はどこかで「パーティクル」という言葉を耳にしたことがあるのではないでしょうか。
パーティクルとはコンピュータグラフィック技術の一つで、運動する粒子により構成される事象を表現するために使われます。
Unityではスタンダードアセットとして提供された炎や光、煙などを使用することができます。このようなパーティクルの使用方法、編集方法をご紹介しています。
参考記事)【Unity】パーティクル徹底解説!基本的なモジュールの使用方法から応用例まで
水を使用する(水面を表現する)
水の表現はゲーム開発において避けては通れないものではないでしょうか。
通常入門レベルで水面を表現するのはとても難しいとされています。
しかし、Unityではとても簡単に実装することができます。
こちらもパーティクルシステム同様にUnityが公式に提供しているスタンダードアセットを使用することで実装が可能です。
参考記事)【Unity】スタンダードアセットのEnvironmentを使用して水面を作成する手順
uGUIボタンを実装する
ゲームのUIではよくボタンを利用した画面遷移や処理実行が行われます。
Unityではこのボタンの処理を簡単に実装することができます。
参考記事)【Unity】uGUIのボタン(Button)の基本的な使い方を徹底解説!
オブジェクトを移動・回転させる
オブジェクトを移動させる際にどのように移動させるか、悩みどころの一つなのではないでしょうか。
そこでiTweenと呼ばれるアセットを使用することで簡単に移動・回転を実装することができます。
この移動と回転に関しては様々な方法がありますので正解は存在しませんが、一つの方法としてぜひご参考ください。
参考記事)【AR】【Unity】iTweenを使用してロゴを移動・回転させてみた
当たり判定を実装する
ユニティちゃんをモデルにした当たり判定の方法をご紹介しています。
当たり判定にも実は様々な種類が存在します。ぶつかることのできるオブジェクトの当たり判定、ぶつかることのできないオブジェクトの当たり判定など、場面によって微妙に使用したい当たり判定は異なります。
このような当たり判定の使い分けから、具体的な使用方法まで詳しく知りたい!という方におすすめです。
© Unity Technologies Japan/UCL
参考記事)Colliderによる当たり判定
ナビゲーションシステムによる移動をする
ナビゲーションシステムとは、「ナビゲーションメッシュを使用してゲーム世界の中を知的に動くキャラクターを作成する(公式マニュアルより)」システムです。
つまり、自分が操作していないキャラクターを自動移動させる手段の一つです。
この機能は非常に便利で、目的地を設定したり、移動範囲を制限できたり、このようなことをとても簡単に実装することができます。
自動で動くキャラクターを作成したい!という方におすすめです。
参考記事)ナビゲーションシステムの使い方
360度動画を作成する
これを使用する機会は普通のゲーム開発ではほとんどないと思います。
しかし、現在のVRブームのなかで、360度の動画(アニメーション)ってどのように作成できるんだろう?と疑問に思っている方も多いのではないでしょうか。
実はUnityではとても簡単に360度動画を作成することができます!それも今まで自分が作成したシーンをそのまま360度動画にすることが可能なのです。
参考記事)360度動画を作成する
オブジェクトにリンクを挿入する
この知識もゲーム開発においてどのように役立つかはわかりません。
しかし今後ARがより流行した時に、オブジェクトをタップすればリンクページに飛ぶということを実装する必要があるのではないでしょうか。(実際にホロレンズを使用した時、エアタップできることを体験してこれは必須だと感じました)
ゲーム開発だけでなくAR開発にも関わっていきたい!と思う方必見です。
参考記事)オブジェクトにリンクを挿入する
UnityでのARアプリ開発方法
UnityでARアプリを開発したい!という方もいると思います。
ここではUnityを使用してAR開発をする方法をいくつかご紹介します。
vuforiaの使い方
vuforiaとはUnityに標準搭載されたARを開発するためのライブラリです。
Unityは3Dゲームや2Dゲームの開発だけでなく、ARの開発もすることができます。
vuforiaはとても簡単にARを開発できるライブラリで、Unity初心者にも簡単に実装することができるのでぜひチャレンジしてみてください。(作成できると以下の画像のようなARを作成することができます)
参考記事)UnityでVuforiaを使用してARを作成してみた
ARKitの使い方
ARKitとはApple社が提供するiOS向けのAR機能です。
これを用いることで、スマホのカメラで現実空間の平面を認識したり、空間上にオブジェクトを出現させたりすることができます。
このような技術を応用したアプリに「iOS用ARメジャーアプリ」があります。こちらのメジャーアプリはコチラで詳しくご紹介していますので、是非ご参考ください。
また、ARKit2.0が発表され、ARをいろいろな人と共有できる機能が追加されるなど、技術的に大きく進化しています。
参考記事)ARKitの使い方
ARKit2の使い方
ついにApple社が発表していたARKit2が発表されましたね。
ARKit2の実装は非常に革新的で、これからの生活を変えるような大きな一歩になるのではないでしょうか。
そんなARKit2の開発方法をいち早く解説しましたのでご紹介します。
参考記事)ARKit2のサンプルを実装する!準備から実装まで
Unityで学ぶC#入門
Unityを利用したゲーム開発で避けて通れないのは「C#プログラミング」です。
Unityはノンプログラミングでゲーム開発が可能とはいうものの、クオリティの高いゲームを開発するためにはC#の知識が必須です。
特にプログラミング未経験者の方にとってはUnityでのゲーム開発を進める上で大きな障壁となっていたのではないでしょうか。
そこでXR-HubではUnityを利用してC#を効率よく学ぶために「Unityで学ぶC#入門」という連載記事を掲載しています。
UnityだけではなくC#も基礎から徹底的に勉強したい方はぜひご参考ください。
参考記事)Unityで学ぶC#入門
まとめ
いかがでしたでしょうか。
ここまでUnityの基本的な使い方からARへの応用までの記事をご紹介しました。このような技術を一通り使用できるようになれば、ある程度Unityを使いこなすことができるのではないでしょうか。
これからも随時Unityを使用したゲーム開発、ARアプリ開発に使える技術を紹介していきたいと思いますので是非ご参考ください。