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


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

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

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

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

Unityとは?

Unityロゴ

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

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

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

Unity開発環境の構築方法

Unityダウンロード

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

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

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

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

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

Unity Hubとは?

Unityは頻繁にアップデートされて新しいバージョンがどんどん出ます。

そのため、ゲーム制作において複数バージョンのUnityを同時に利用することが多くなり、バージョン管理が煩雑になってしまうことがあります。

このような場合に便利なツールがUnity Hubというツールです。

Unity Hubを使うことで複数バージョンの管理が簡易化され、また様々な学習コンテンツを元にUnityの使い方も学ぶことができるので、初学者から熟練者まであらゆるUnityユーザに使っていただきたいツールになります。

Unity Proとは?

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

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

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

Unity入門オリジナルチュートリアル集

Unityチュートリアルトップ

XR-Hubオリジナルのチュートリアル集です。

色々なゲームを作りながら分りやすくUnityを勉強できるコンテンツです。

Unityちゃんを使ったランゲームやブロック崩しなど、今後も随時更新する予定です。

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

山積みの本

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

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

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

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

Unity小技集

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

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

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

重さ比較

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

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

Unityの物理演算

物理演算とは物体の運動を物理法則(質量・速度・摩擦・風といった、古典力学的な法則)に基づいてシミュレーションすることです。

Unityには3Dの物理演算と2Dの物理演算の両方が存在するので、3Dゲームでも2Dゲームでもあらゆる物理演算を表現することができます。

現実に限りなく近い物理法則にすることもできますし、現実ではありえないようなゲームならではの物理法則にすることもできます。

いかに物理演算を扱うことができるかが、ゲームのクオリティを左右することになります。

物理演算に関して解説した記事があるので、是非ご覧ください

 

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

DynamicFriction比較

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

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

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

パーティクルシステム

Afterburner

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

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

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

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

海

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

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

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

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

uGUIをマスターする

uGUIアイキャッチ

UnityのUIである「uGUI」の基本知識をまとめました。

これを見ればuGUIの基本を網羅できるコンテンツですのでぜひご参考ください。

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

XR-Hub移動回転

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

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

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

当たり判定を実装する

ユニティちゃん構え

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

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

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

© Unity Technologies Japan/UCL

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

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

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

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

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

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

360度動画を作成する

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Terrainを使って複雑な地形を簡単に作成する

Terrain

Unityで地形を作る際には、Terrainを使うと便利です。

Terrainの特徴として、地形の起伏を付けたり、複数のテクスチャで本物並みの草原や森を作ったり、木や岩を簡単な操作だけで作ることができます。

ゲーム作成において、フィールド作成は非常に時間がかかる作業ですが、UnityではTerrainを活用することでその時間を大幅に削減することができます。

Terrainの詳細な設定方法や注意点など、より深く知りたい方はこちら。

音声(BGM・SE)の再生・ループ・フェードアウトなどの設定方法

Unityでゲームを作る際にBGMSE(効果音)を付けたい時があると思います。

更にただBGMを流すだけではなく、ループや一時停止など細かく設定したい場合も頻繁にあります。

BGM・SEの様々な設定方法(一時停止・フェードアウト・ミュートなど)を効果的に扱えるようになることでゲームのクオリティは非常に上がります。

音声について詳しく知りたい方や音声の設定方法で困っている方はこちら。

Unityゲームで処理を中断・再開・停止させる方法(コルーチン)

ゲーム制作において「場面が急に変わるのではなく、時間をかけてゆっくり遷移させたい」や「10秒毎にライフを回復させたい」など、一定の時間で処理を中断・繰り返したい場合はあると思います。

このような場合に使用するのがコルーチンという関数です。

コルーチンを使うことで処理の一時中断・再開だけでなく、疑似的な並列処理も実現することができ、ゲームの幅を大きく広げることができます。

GameObjectに関する基礎(生成・削除・非表示など)から公式リファレンスまで分かりやすく解説

Unityでゲームを作る際に、GameObject(ゲームオブジェクト)は基本のオブジェクトとなり、理解が必須なものになっています。

しかし、思ったよりGameObjectの生成や削除、非表示など、細かいところで悩んでいる人も少なくないと思います。

そこで、それらのGameObjectに関する悩みを解決できるよう、「GameObjectとは」からGameObjectの詰まりやすいPoint解説(生成・削除・tagなど)、公式リファレンスの詳細説明まで徹底的にご紹介します

この記事は

  • GameObjectとは?
  • GameObjectでつまづきやすい4つのPoint(動的生成・動的削除・findなど)
  • GameObjectの公式リファレンスを分かりやすく解説

以上の流れで解説しています。

GameObjectに関する解説決定版なので、「公式リファレンスが分かりにくい」と思っている初学者の方は勿論、上級者の方も辞書代わりに是非ご一読いただければ幸いです。

インスペクタビューをエディタ拡張で使いやすいようにカスタマイズ

Unityのエディタはカスタマイズすることができ、ボタンやヘルプボックスを表示することができます。

また、複数人のチームでゲームを開発する際に他の人に変更してほしくない部分を変更不可にしたりすることもできます

このようなエディタのカスタマイズのことを、エディタ拡張と言います。

特にインスペクタビューはゲーム制作中に一番変更を加える部分なので、自分が使いやすいように編集して、ゲーム制作の効率を上げていきましょう。

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

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

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

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

UnityでのARアプリ開発方法

AR画像

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

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

vuforiaの使い方

Vuforiaロゴ

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

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

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

AR画像

ARKitの使い方

ARkitロゴ

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

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

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

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

ARKit2の使い方

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

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

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

Unityで学ぶC#入門

C#イメージ

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

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

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

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

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

まとめ

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

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

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


この記事はいかがでしたか?
もし「参考になった」「面白かった」という場合は、応援シェアお願いします!

Twitterはじめました @FuruiYuya