- Unityとは?
- AR開発にUnityは使えるか?
- UnityによるAR開発で使用するもの
- UnityによるAR開発の手順
- UnityによるAR開発をする際のポイント
- Unityで開発可能なARアプリの例
- Unity以外でAR開発が可能なプログラミング言語
- ARやUnityに関するよくある質問
- まとめ
Unityとは?
Unityは、C++で作成されたゲームエンジン(開発用プラットフォーム)です。3Dゲーム開発やxR(VR・ARなど)開発で強みを持つほか、コーディングなしで3Dゲーム開発が可能という手軽さからエンジニア未経験者向けの開発ツールとしても有名です。また、上級者ならば拡張用言語(C#)でスクリプティングを行うことで多彩な機能を活用できます。
関連記事:Unityとは?言語の特徴や将来性、活用事例について解説
Unityの特徴
Unityの特徴として、「無料で使用できる」「プログラミングが必要ない」「マルチプラットフォームに対応」「アセットストアが豊富」などが挙げられます。これらの特徴を持つため、Unityは幅広い層から人気で、AR開発やゲーム開発の代表的なプラットフォームとなっています。
以下では、Unityの強みについて詳しく解説します。
無料で使用できる
Unityは無料版と有料版が提供されています。そのため、無料での使用も可能です。個人利用を考えている方は無料版だけでも十分な機能が備わっています。
ちなみに、Unity公式サイトの無料版利用資格には、『過去12か月の収益や調達した資金が 10 万ドル未満の個人開発者および小規模企業のお客様は、Unity Personalをご利用いただけます。』と表記されています。一般的な利用の範囲で違反することはないかもしれませんが、確認しておきましょう。
プログラミングが必要ない
Unityは簡単な動作であれば、マウス操作だけで制作できます。プログラミングスキルがなくても、開発できることはUnityの大きな強みです。さらに、プログラミングで細かな設定や条件を追加することで、より複雑な動作の実現も可能です。そのため、初心者からベテランエンジニアまで幅広く利用されています。
マルチプラットフォームに適応
Unityで開発できるゲームは、パソコン環境だけでなく、マルチプラットフォームに対応します。iOSやAndroidなどのスマートフォンアプリや、コンシューマーゲームに導入できます。
プラットフォームが幅広いため、さまざまな形態のゲーム開発が可能です。また、開発したゲームに応じて導入する媒体を検討できることもメリットです。
アセットストアが豊富
アセットストアが豊富であることは、Unityの特徴の1つです。アセットストアとは、ARやゲームなどのコンテンツの開発をする際に役立つ素材(アセット)を販売、配布しているマーケットプレイスです。
ほかのユーザーなどが作成した素材などを買って、利用することでより効率良く作業ができたり、より複雑な動作を実現できたりします。そのため、アセットストアが充実していることはUnityの大きな強みです。
AR開発にUnityは使えるか?
結論から述べると、UnityはAR開発に使用できます。よく活用されているため、AR開発専用のSDKも存在します。
SDKとは、ソフトウェア開発に必要なツール群を1つの「キット」としてまとめたものです。SDKにはAPIのライブラリやサンプルコード、ドキュメント類などが同封されることから、開発効率の向上に役立ちます。このような専用キットが用意されるということは、一定のパターンに沿って開発が可能になるということです。したがって、UnityによるAR開発はすでに一般化しているといえます。
では、ARについてもう少し具体的に解説します。
関連記事:Unityでできることとは?ゲーム分野以外の活用例も紹介
ARとは?
AR(Augmented Reality)は、日本語で「拡張現実」と翻訳されます。現実世界をベースとして、仮想的なオブジェクトで拡張を施す考え方・技術の総称です。現実世界の「モノ」や「地形」「景色」などに仮想的な3Dデータを重ねる、といった使い方が多いでしょう。こうすることで、現実世界の「未来」「理想像」を表現したり、その場では表示しきれない「詳細な情報」などを補足したりといった役割を担います。
ARの代表的な例として、『Google マップ』などが挙げられます。
UnityによるAR開発で使用するもの
UnityによるAR開発において「開発環境」や「SDK」を使用することで、利便性が上がったり、複数の機能を組み込めたりします。そのため、知っておくとスムーズな開発が可能です。代表的なものとして、「Vuforia(ヴューフォリア)」「ARkit」「ARCore」「AR Foundation」などが挙げられます。
以下では、UnityによるAR開発で使用される主なツールを紹介していきます。開発を検討している方は、参考にしてみてください。
Vuforia(ヴューフォリア)
VuforiaはUnityによるAR開発では定番ともいえる開発環境であり、サポートするデバイスが豊富なことが特徴です。また、使用するデバイスに応じて自動的に仕様が切り替わるため、開発者の負担が小さくなります。さらに、使いやすいマーカー機能やオブジェクトを水平に設置できる機能など、開発に慣れていないエンジニアでもアイデアを形にしやすい機能が揃っています。
「Unity+Vuforia」はAR開発の定番ともいえる組合せで、はじめて使用したAR開発キットがVuforiaだった、というエンジニアは少なくありません。
ARkit
ARkitは、Apple社が提供するAppleデバイス用のAR開発ツールです。カメラを通して、現実世界の拡張表現を行う「視覚型ARキット」の代表格で、主にiPhone向けのAR開発ツールとして普及しました。特別なハードウェアを使用することなく、iPhoneのみでARを体験できる手軽さが特徴です。
ARCore
Google社が開発した、AndroidおよびiOS向けのAR開発ツールです。ARkitと同じようにスマートフォンのカメラを通してARを実現します。仕様はやや異なるものの、機能的な面ではARkitと似ています。
また、ARCoreはさまざまなAndroidデバイスと互換性があり、センサーやアルゴリズムを利用して、正確なAR体験を提供することが可能です。
AR Foundation
ARkitやARCore、そのほか複数のxR開発系ツールを包含した開発環境です。厳密にいえばAR Foundation自体はAR機能を持っておらず、ARCoreやARkitなど複数のツールを使うためのインターフェースを提供しているだけです。しかし、AR開発で用いられるさまざまなツールを一元的に管理・使用できるという強みを持っています。
Vuforia・ARkit・ARCoreの機能的な違いは?
UnityのAR開発環境について説明してきましたが、「結局どれが一番良いの?」と疑問を持つ方もいるでしょう。それぞれに機能的な違いがあり、選ぶポイントとしては、「マーカーの仕様」「対応端末」「物体認識の精度」の3つがあります。
以下では、UnityによるAR開発でよく用いられる「Vuforia」「ARkit」「ARCore」の違いを分かりやすく整理しています。
マーカーの仕様
AR開発では「マーカー」と呼ばれる機能を頻繁に使います。マーカーは、簡単にいうと現実世界と仮想的なオブジェクトをリンクさせるための基準です。カメラなどを通じて読み取った情報は、マーカーの制御によって利用者に表示されます。このマーカーの仕様はツールによって違いがあり、トラッキングの精度にも影響します。
対応端末
それぞれの開発環境に対応しているOSは以下の通りです。
開発環境 | iOS | Android | Windows |
---|---|---|---|
Vuforia | 〇 | 〇 | 〇 |
ARkit | 〇 | × | × |
ARCore | 〇 | 〇 | × |
VuforiaはAndroidおよびiOS、Windowsに対応しています。これに対して、ARCoreはAndroidとiOSに、ARkitはiOSのみに対応しているという違いがあります。ARkitとARCoreは、対象となるOSが異なるだけで機能的にはほぼ同じです。
ただしARkitは、物体認識、Body Traking、People Occlusionなど先進的な機能を持つという特徴があります。
物体認識の精度
どのツールを使用しても物体認識の精度には大差がありません。ただし、色味や安定性、GPS機能などを考慮するとVuforiaがやや有利といえそうです。
UnityによるAR開発の手順
Unityを使ったAR開発に挑戦しようと思っている方は、まず手順を見ながら開発してみましょう。開発の手順は、もちろん、コンテンツに求める機能によって変わります。
ここでは、大まかなAR開発の手順を紹介していきます。流れとして、参考にしてみてください。
また、使用するSDKによっても差がありますが、ここでは、Vuforiaを例に初期手順を解説します。
Vuforiaの設定
まずは開発環境をダウンロードしましょう。
-
1.Vuforiaの公式サイトにアクセスし、開発者アカウントを作成
2.ログインした状態で画面上部の「Downloads」をクリック
3.次の画面で「SDK」を選択
4.Unity向けのバージョン「Add Vuforia Engine to a Unity Project or upgrade to the latest version」をダウンロード
なお、2024年1月時点での最新バージョンは「10.20」です。
ダウンロードが完了したら、再度Vufora公式サイトにアクセスし、ライセンスキーの登録を行います。ライセンスキーは、使用しているVuforiaのバージョンなどを認識するために必要なものです。先ほどの画面から「Develop」を選択し、License Managerからライセンスキーの登録を行ってください。登録時に表示されるコードはUnity実行時に使用するため、何らかの形で保存しておくようにしましょう。
Unityの設定
Vuforiaのインストールが完了した後は、主要機能のチュートリアルなどを体験できます。チュートリアルについては公式サイトのヘルプ情報などを参考にしてください。
-
1.インストールと初期設定を完了する
2.ARコンテンツを作成するためのプロジェクトを開始
3.「Vuforia Studio」から画面右上の「+」マークを選択して新しいプロジェクトを作成
4.必要に応じてライブラリやデータベースの登録、ダウンロード
5.データベースに任意の画像を登録(登録した画像をもとに、AR実行確認を行うため)
バージョンによってやや手順は異なるものの、基本的には公式サイトの手順通りに進めれば問題ないはずです。
AR表示の実行
ARコンテンツが作成できたら、AR表示を実行してみましょう。
1.Vuforia側の設定が完了したら、Unity側の画面を起動
2.ARカメラから「Vuforia Behaviour」の「Open Vuforia Engine configuration」をクリック
3.登録したライセンスキーを入力し、認証を行う
4.Voforiaデータベースに登録した画像を印刷し、Unity側でデバイスのカメラに写す
カメラ画像に仮想的なオブジェクトが重なって表示されれば、初期手順は完了です。いつでもARを実行できる状態になっています。
UnityによるAR開発をする際のポイント
UnityによるAR開発を始める前に、開発する際のポイントを知っておくことで、開発をスムーズに進められたり、発想が豊かになったりします。求めるARを実現するには、Unityの開発環境を整えることが重要です。
Unityを活用する際の注目ポイントとして「使用ツールの選定」「ARカメラの使用」があります。以下で詳しく説明していきます。
使用ツールの選定
使用ツールの選定は非常に重要なポイントです。VuforiaやARkitなど、Unityで扱えるツールはさまざまです。作りたいARシステムに求める機能性や使用する端末に応じて選定しましょう。
ツールのそれぞれ特徴や違いについては、本記事内の『Vuforia・ARkit・ARCoreの機能的な違いは?』の章を参考にしてみてください。
ARカメラの使用
UnityによるAR開発をする際、ARカメラを使うことも1つのポイントです。
ARカメラとは、カメラが映す映像に、仮想的な画像や映像を融合させられるものです。Unityの設定からARカメラを取り込むことで使用できます。ARカメラを用いて、理想の映像を実現できるように練習してみましょう。
Unityで開発可能なARアプリの例
UnityやAR開発について説明してきましたが、実際にはどのようなものが作れるのか想像がつかない方もいるでしょう。そもそもARとはスマートフォンやARゴーグルを通すことで、現実世界にデジタルコンテンツを表現できるものです。AR技術を活用したアプリはシミュレーションやゲームによく活用されています。
ここでは、Unityで開発可能なARアプリの例を紹介します。
現実世界の物体の中身が透過して見えるアプリ
現実世界で人間の目には見えない「物体の中身」を透過させて表示するアプリです。物体の中身を仮想的なデータとして作成し、現実世界の物体に重ね合わせることで実現できます。
実例として、商品確認アプリがあります。スーパーマーケットなどで商品パッケージにカメラをかざすと、商品の中身を確認できるアプリで、顧客が安心して購買できるため販売促進にもつながるでしょう。
仮想空間にのみ存在する物体を現実世界に重ね合わせて表示させるアプリ
現実世界に仮想的な物体を表示するアプリはARの代表ともいえるでしょう。UnityとAR開発用キットを使用すれば、比較的簡単に作成できるアプリです。本来は現実世界に存在しない物体を、あたかも目の前に存在するように表示させることができます。
現実世界を模してシミュレーションができるアプリ
現実世界を模してシミュレーションができるアプリは、AR開発の得意分野です。建築や不動産業界で活用事例が多数あります。
たとえば、ある企業は、施工中の建設現場をバーチャル空間に再現するシステムをUnityで開発しています。これにより、設計情報や資材・重機などの情報、作業員の位置情報をリアルタイムで再現できるため、効率化できる箇所や問題点を見つけられ、生産性向上につながります。また、コーディングすることで、物理法則を仮想空間に適用できるため、耐震などのシミュレーションにも使えます。
関連記事:Unityエンジニアの需要は高い?活用事例や求人も解説
Unity以外でAR開発が可能なプログラミング言語
Unityはコーディングをせずに開発できるプラットフォームであることから、プログラミング未経験者にも扱いやすく人気です。しかし、AR開発に活用されているのはUnityだけではありません。C#やJava、JavaScriptなどのプログラミング言語でもAR開発は可能です。
ここでは、Unity以外でAR開発が可能なプログラミング言語について紹介します。
C#
ゲーム開発は、UnityとC#で行われることが多いです。
Unityは、プログラミングを使わずゲームなどのAR開発ができますが、複雑な動作や現象のロジックは自分でコーディングする必要があります。その際に使う言語がC#です。以前は、このコーディングにJavaScriptを使うこともできましたが、Unity2018.3からC#に一本化されました。
Unityを使ってゲーム開発をするなら、一番素直な選択肢がC#といえます。これまでC#に触れてこなかった人には、言語を最初から勉強しなければならないので、学習コストも高いと思う方も多いでしょう。
C#は.NET Frameworkと呼ばれるフレームワークを使用しているため、オブジェクト指向のプログラミングができます。構文はJavaと似ており、Javaを元々やっていた方や、オブジェクト指向に理解のある方であればすんなりと習得できるでしょう。
C・C ++
CやC++を使って、AR開発を行うこともできます。有名なフレームワークとして、DirectXやSiv3Dといったものがあります。特に、Siv3Dでは、最短で2行のコードを書くだけで、3Dアプリケーションを動かすことが可能です。
また、C++は処理が高速であることも特徴として挙げられます。AR開発では、カメラで投影した現実世界に、仮想の物体を重ね合わせて描画したり、それをさらにリアルタイムで処理し続けるなど、サーバーに対して非常に負荷がかかることが多いです。結果的に処理が遅くなり、描画がカクカクしてしまうなどの問題が発生することがあります。その点においてC++は高性能であるため、この問題を解消してくれるでしょう。
Java
大規模な基幹システムに用いられる印象の強いJavaでも、AR開発をすることができます。具体的な例でいうと、Android端末上で動くARアプリなどをJavaで開発することが可能です。
また、Javaを使ってAR開発をする場合、ライブラリとしてARCoreを利用することが多いです。ARCoreは、Kotlin、swift、Unityなどにも対応しているため、一度コードを書けば色々なプラットフォームで動かせることもメリットの1つといえます。
またJavaは、ほかの言語と比べてライブラリが豊富であることも特徴です。必要な処理に対して、ライブラリの提供がされているため、自分でコーディングをする部分が減り、実装面でも効率が良いです。
JavaScript
AR開発は、Webアプリケーションのイメージが強いJavaScriptでも可能です。
JavaScriptでAR開発をするためのフレームワークとしてはWebARが挙げられます。ブラウザ上でARを実現するための技術で、ユーザーがインストールしなくても、リリースすればすぐに使い始めてもらえることはメリットの1つといえるでしょう。
元々は、Unityのゲーム開発におけるスクリプト言語として、JavaScriptもサポートされていました。しかし、Unity2018.3以降サポート外となっているため、UnityではJavaScriptは使えないことには注意が必要です。
ARやUnityに関するよくある質問
AR開発やUnityに興味がある方の中では、AR開発によく使われるUnityのフレームワークやプログラミング言語、Unityを使うデメリットなどについて疑問を持つ方が多いようです。
ここではARやUnityに関するよくある質問に答えていきます。類似の疑問を持つ方は参考にしてみてください。
Q1. UnityのAR Foundationとは何ですか?
AR Foundationとは、マルチプラットフォームに対応したAR開発専用のUnity公式フレームワークです。ARCoreやARkitなどのさまざまな機能をプラットフォームを変えることなく使用することができます。
Q2. ARの開発にはどのような言語が使われますか?
AR開発では、Unityの場合はC#、iOSの場合はSwift、Androidの場合はJavaやKotlinなどの言語が使われます。また、ブラウザ上でAR開発をする際にはJavaScriptが用いられることが多いです。自分の使いやすさや目的に合った言語で開発するのが良いでしょう。
Q3. Unityのデメリットを教えてください
Unityのデメリットは動作が遅く、大規模な開発に向かないことが挙げられます。ゲームの開発などで、複雑な処理が多くなるとデメリットが目立ちます。そのため、Unityは小~中規模の開発に向いています。
まとめ
Unityは、3Dに強いという特性から「xR系」と呼ばれる分野で活用が進んでいます。特に近年はAR(拡張現実)関連の開発にも活用されており、盛り上がりを見せています。また、Unityはプログラミング未経験者でも活用できる開発プラットフォームであるため、幅広い層から人気が高いです。
本記事では、Unityの概要やAR開発に使用されるツール、開発の手順やポイントまで詳しく解説しました。Unityを用いたAR開発にはSDKを使うことが多いので、まずは主要なSDKの使い方を理解し、AR開発の基礎知識を身につけることをおすすめします。
ITエンジニアの転職ならレバテックキャリア
レバテックキャリアはIT・Web業界のエンジニア職を専門とする転職エージェントです。最新の技術情報や業界動向に精通しており、現状は転職のご意思がない場合でも、ご相談いただければ客観的な市場価値や市場動向をお伝えし、あなたの「選択肢」を広げるお手伝いをいたします。
「将来に向けた漠然とした不安がある」「特定のエンジニア職に興味がある」など、ご自身のキャリアに何らかの悩みを抱えている方は、ぜひ無料のオンライン個別相談会にお申し込みください。業界知識が豊富なキャリアアドバイザーが、一対一でさまざまなご質問に対応させていただきます。
「個別相談会」に申し込む
転職支援サービスに申し込む
※転職活動を強制することはございません。
レバテックキャリアのサービスについて