近年、AR技術を活用したビジネスが注目を集めていることにより、大企業からスタートアップまで、さまざまな企業がARに投資するケースが増えています。それにともない、AR開発に使えるデバイスやSDK(ソフトウェア開発キット)の提供数も増加。初めてAR開発を行う際、どのツールを使うか迷う方も多いのではないでしょうか。
本記事では、初めてAR開発をする方におすすめの「Unity」を使った開発について、メリットや簡単な開発方法、具体的な関連プラグインなどについて解説します。
AR開発におけるUnityの特徴
Unityとは、ユニティ・テクノロジーズが開発する統合開発環境(IDE)内蔵のリアルタイム3Dコンテンツ制作エンジンです。 2005年のリリース以来、直感的にオブジェクト配置などができるツールとして人気が高まり、ゲーム開発者はもとより、アーティストや建築家、自動車デザイナー、映画製作スタッフなどさまざまなクリエイターがUnityを使ってコンテンツ制作を進めています。
まずは、具体的にどのような特徴をもつプラットフォームなのかを見ていきます。
マルチプラットフォームに対応
Unityで開発したコンテンツは、MacやWindows、LinuxといったデスクトップPCだけではなく、iOSやAndroidなどのスマホデバイスにも対応させることができます。
また他にも、PlayStationシリーズなどのコンソールゲーム機やプラグイン(Unity Web Player)がインストールしてあるWebブラウザーなど、さまざまなプラットフォーム上での動作を前提にすることが可能です。
充実したアセットストア
アセットストアとは、Unityで使用できる3D素材や画像、プログラム部品などを購入できるオンラインショップです。ユーザー自身が登録して公開することができ、有償/無償を問わず、さまざまな素材を入手することができます。
開発環境をリッチにするプラグインも多数登録されているおり、カスタマイズ内容によっては効率的で自分にフィットした開発環境を整えることができます。
プログラミング知識が不要
Unity登場以前は、本格的な3Dゲームの開発をするとなるとプログラミングをはじめとする技術的な専門知識が多く必要となり、開発初心者にとっては大きな壁になっていました。一方でUnityはプログラミングの知識がなくても、たとえば3Dキャラクターを配置して動かしたりといった操作が簡単にできます。
もちろん、細部にこだわる場合はプログラミングスキルが必要になりますが、これまで3Dゲームの開発で必要だったC、C++ といったプログラミング言語を使ったことがなくても3Dコンテンツ開発ができるという観点で、ARへのハードルを大きく下げたといえるでしょう。
無料で利用可能
Unityは無料で利用することができます。厳密には無料版と有料版にわかれていますが、無料版であってもクオリティは非常に高いサービスです。まずはファーストステップとして簡単なアプリを作ってみる、といった用途であれば、無料版で十分といえるでしょう。
ARアプリ開発にUnityがオススメの理由2点
以上のような特徴を持つUintyをARアプリ開発に使うメリットとしては以下の2点、にあると言えます。
1. 開発事例が豊富にある
まず、Unityは、スマホARのなかで最も多く利用されているARアプリ開発ツールです。何か困ったや不明点が発生したとしても、Web上で簡単に解決方法を探すことができるでしょう。開発者コミュニティも活発であるため、コミュニティ経由で質問するという方法も取ることも可能です。
新しくAR開発を始める人にとっては、これまでの事例や解決手法を参考にできる点がポイントの一つだと言えます。
2. 他のデバイスへの拡張性が高い
上述の通り、Unityは3Dオブジェクトを扱うことに長けています。そのため、一度Unityの使い方をマスターすれば、iPhoneのようなスマホベースのものからスマートグラスまで、さまざまなARデバイスの開発に応用可能です。
例えばiPhoneベースで開発を進めるとなった際、Unity以外の選択肢としてはApple社提供のXCodeによる開発も選択肢としてありえます。しかし、もともとは2D開発用途でスタートしたXCodeと比較すると、Unityは最初から3Dコンテンツを制作することに軸を置いたエンジンであるため、ARのような立体的コンテンツを扱うことに長けています。
ARアプリ作成の環境整備。Unityセットアップ3ステップ
続いて、UnityでARアプリを作成する際の「最初の一歩」をご紹介します。
1. Unityのインストール
まずは作業端末へのUnityインストールです。
Unityの公式サイトから、規約の同意やアカウント登録などを経て、インストールを進めていきます。インストール時に無料版か有料版かを選択することとなりますが、インストール後にグレードアップできるため、最初は無料版で進めましょう。
2. プロジェクトの新規作成
インストール完了後、Unityを起動して、画面中央もしくはファイルメニューから「New Project」をクリック。プロジェクト名入力や利用するテンプレート選択、プロジェクト保存場所を設定したうえで「Create Project」を選択します。この手順によって、新規プロジェクトが完成し、ARアプリ作成の準備が整いました。
3. Vuforiaライブラリーの設定
Vuforiaとは、カメラやセンサーを目として利用し、空間認識するAR開発用ライブラリのこと。AR体験の要だと言えます。
Vuforiaの設定には、具体的に3つのステップがあります。
(1)まずVuforiaの公式サイトに訪れ、アカウントの登録を行います。Unityインストールと同様、必要な情報入力や利用規約同意などを経て、アカウントの登録を完了させログインをします。
(2)次にDevelopment Keyの発行です。Vuforiaにログインした状態で画面上の「Develop」を選択し、「License Manager」タブの「Add License Key」をクリックします。その後、「プロジェクトタイプ」を選択し、開発するアプリケーション情報の入力を行うとDevelopment Keyが発行されます。
(3)最後にマーカーの登録をすると、Vuforia設定が完了。「Target Manager」タブの「Add Databas」を選択し、タイプやデータベース名を決めます。データベース登録後、ARマーカーとして読み込むターゲット画像を読み込むと登録完了です。作成したマーカーをダウンロードしてUnityに導入すると、利用可能となります。
Unityのプラグイン・ツールキット5選
最後に、UnityでARアプリを作成するにあたって便利なプラグインやツールキットについてご紹介します。これらをうまく活用することで、効率的な開発が可能となります。
ARCore
ARCoreとは、GoogleがAndroid端末向けに提供するARプラットフォームです。赤外線センサーのような特殊デバイスが必要ではなく、スマホに内蔵されているカメラやモーションセンサーだけでARコンテンツを構築することができます。Googleが以前に展開していた『Tango』よりも簡単に利用できることが特徴です。
ARKit
ARKitとは、Apple社が開発したiOS対応のARプラットフォームです。iOSに搭載されたモーションセンサーとカメラでオブジェクトや空間の情報を取得します。その情報をもとにした高精度なAR体験がを提供可能です。ARKitでは、iPadやiPhoneのカメラを使ってARコンテンツを構築できるため、スマートグラスのような特別なデバイスを使う必要がない点もひとつの特徴です。
Unity ARKit Remote
上述のARkitに付属するアプリケーションとして便利なのがUnity ARKit Remoteです。このアプリケーションを使うことで、実機に転送することなくUnityのエディタ上で、ARのデバッグをすることができます。
ARKit Remoteは、実機側にRemote用のアプリを入れることで、iPhoneで撮影した映像をリアルタイムに転送することが可能になっています。Unityエディタ側で転送した映像を受け取り、計算されたARの結果をエディタ上に表示するという仕組みです。
AR Foundation
AR Foundationとは、Unityを使ってARアプリを作成するためのパッケージ型フレームワークです。iOS(ARKit)、Android(ARCore)、Magic Leap、HoloLensの4デバイスに対応しています。
あるプラットフォーム向けに作ったものを、別のプラットフォーム向けに変換するとなると、時間もコストもかかります。このAR Foundationを使うと、例えばARKit用に作ったものをARCore用に変換するなど、よりシームレスな開発補完環境を整えることが可能です。
Vuforia
先ほども出てきたVuforiaとは、Qualcomm社が提供するAR制作用ライブラリのことです。平面のマーカーはもちろん、立体のマーカー認識やクラウドでの認識など、認識精度が高いことで有名です。
UnityとVuforiaの組み合わせは、ARコンテンツの可能性を大いに広げているといえます。
UnityでAR用3Dコンテンツ制作を始めてみよう
ARと聞くと、最新技術で難易度が高いように感じる方が多いかもしれませんが、Unityを使うことで初心者でも手軽にAR用3Dコンテンツを制作することができます。
これからARアプリの開発を検討している方は、ぜひUnityの利用を検討してみましょう。