近年利用者が増加し、技術の発展が目まぐるしいAR(Augmented Reality)は、GPSなどの位置情報やオブジェクトの解析情報などから、デバイスが取り込んだ現在位置にデジタル情報を付加し、現実を拡張する技術です。
例えばQRコードを読み込むとARが表示されるものや、顔を認識してメイクやアクセサリーをARで表示させるものなどがあります。また、利用範囲はゲーム、イベント、技術研修など多岐にわたります。
このようなARを開発するには、アプリの開発環境とは別に、AR用のライブラリを使用する必要があります。ここでは、AR開発に必要なライブラリや開発環境の構築について、弊社のAR実績をもとに解説していきます。
AR開発を行なうために必要なこと
AR開発には、アプリ本体の開発に使用する開発環境と、AR用のライブラリの2つが必要になります。それぞれ、どのような統合開発環境やライブラリがあるのか見ていきましょう。
開発環境
開発環境に関しては、通常のアプリの開発環境と基本的に変わりません。使用する言語に合わせて、利用する開発環境を選択します。開発するARのターゲットによって使用する環境が変わるため、まずはターゲットとなるデバイスを明確にしましょう。
アプリ開発向けのIDEは、Appleが提供するXcodeや、Googleが提供するAndroid Studioのほか、VR・ARに強みを持つUnityや、MicrosoftのVisual Studioなどが挙げられます。
ARの開発に使用される言語は、iOS向けにはSwift、Android向けにはKotlinやJavaが挙げられます。またUnityを使用する場合はC#、アプリではなくWebでARを実装するWeb ARの場合はHTML+JavaScriptになります。
なお、Web ARについては次の記事で詳しく解説していますので併せてご確認ください。
Web ARとは?事例や開発に必要なものなどを紹介
AR用のライブラリ
AR用のライブラリには、AppleやGoogleが提供する公式のライブラリのほかに、AmazonやFacebookが提供するライブラリもあります。また、Magic Leap、HoloLensなどのデバイスに最適化された専用ライブラリや、Unityなどで使用できiOS/Androidどちらでも利用可能なライブラリも複数あり、最近ではWeb ARに対応したものも増加しています。
ライブラリによって機能面での特徴が異なるため、開発予定のARの用途に併せてライブラリを選択する必要があります。特別に複雑な機能を搭載したいなどの理由がなければ、まずはプラットフォームを提供する企業の公式ライブラリを利用するのをおすすめします。
AR開発で使用するライブラリ
AR開発で使われているライブラリ・フレームワークについて、プラットフォームの公式が提供しているライブラリを中心に、代表的な6つについて解説していきます。なお、今回紹介するライブラリのほかに、Web ARの開発でよく用いられるA-FrameやAR.jsなどのライブラリも存在します。
Apple ARKit
Apple社が提供する、iOS向けのARライブラリです。動作にはARKitに対応したCPUを搭載したデバイスが必要になります。開発に使用するプログラミング言語はSwiftまたはObjective-Cで、最新バージョンは2020年6月にリリースされたARKit4です。
強力なフェイストラッキング機能などを持つARKitですが、最新のARKit4の特徴的な機能は「Location Anchors(ロケーション・アンカー)」でしょう。この機能はApple社の3D地図データをもとに、現実に存在する有名なスポットやランドマークにARオブジェクトを設置できます。
従来のARでは端末ごとにARを個別に表示していましたが、ロケーション・アンカーを使用したARでは、現実の世界にある特定の場所にCGのオブジェクトを設置するため、複数の人が同じARを見ることが可能になりました。設置されたARオブジェクトを自由な角度から見たり、歩くことができ、よりインタラクティブな体験を共有できます。
AR Core
Google社が提供するARライブラリです。Apple社のデバイス上で動作することを前提としたARKitと異なり、ARCoreは幅広いデバイスで動作し、以下の開発環境に対応しています。
・Androidネイティブ(Java、Kotlin)
・Unity
・Unreal
・iOSネイティブ(Objective-C、Swift)
iOS上でも動作するため、クロスプラットフォームのARアプリを開発する際に、ライブラリとしてARCoreを選択する事例もあります。例えばARCore+Unityで開発した場合、AndroidとiOSのクロスプラットフォームで開発が可能になります。しかし、ARKitと比較すると、物体トラッキングやモーションキャプチャが弱いなどのデメリットも存在します。
Amazon Sumerian
Amazonが提供するAWSをベースとしたAR開発ライブラリです。複数のプラットフォームで動作し、WebGLやWebVRをサポートするほか、ウェブブラウザ (Chrome や Firefox など)、モバイルブラウザ (iOS、Android など)、Oculus Go、Oculus Rift、HTC Vive、HTC Vive Pro、Google Daydream、Lenovo Mirageにも対応しています。
開発言語はHTMLとJavaScriptです。開発環境もブラウザベースで比較的敷居が低く、特別なプログラミングや3Dグラフィックスの処理に関する専門知識がなくても、VRやARのアプリを簡単に作成して、既存のWebサイトに埋め込むことができます。
Spark AR Studio
Facebookが開発したARライブラリで、Instagramのストーリーで使用するARのエフェクトフィルターを作成するIDEとして知られています。
ツールは無償で提供されており、詳細なチュートリアル動画に加え、簡単にARを作成できるテンプレートが豊富に用意されているため、簡単なARであれば一切コードを書かずに開発できるます。そのため、まったく知識がない状態からでもARのエフェクトを作成することが可能です。他のAR開発ツールと比較すると、開発の敷居はとても低いのが特徴といえます。
Spark AR Studioを利用して作成したエフェクトはFacebookやInstagram上で公開できます。エフェクトを作成して公開することでフォロワーの獲得や購買行動に繋げることができ、SNSでのコマースに活用できます。
Magic Leap Toolkit
ヘッドマウント型のARディスプレイMagic Leap専用のARライブラリです。Magic Leap向けのコンテンツを開発する際に必要となる機能が最適化されており、Unityに取り込んで使用します。
Magic Leap向けコンテンツの開発はC系言語やHTML+JavaScriptにも対応していますが、提供されているライブラリはUnityのみになります。
Mixed Reality Toolkit
Microsoftが提供するHoloLens用の開発フレームワークです。HoloLens向けのコンテンツはUnrealまたはUnityで行ないますが、HoloLens向けのフレームワークはUnity版のみ公開されています。
そのため、HoloLensのARコンテンツを作成する際には、IDEはVirtual Studio、開発言語はUnity、開発フレームワークはMixed Reality Toolkitの組み合わせがほぼ必須となります。
おすすめのAR開発の始め方とは?
初めてAR開発を行なう場合は、つまずくポイントを減らすためにも、極力使い慣れた開発環境で行なうのがおすすめです。
しかしターゲットとなるデバイスがiOS端末なのかAndroid端末なのか、それともHoloLensなのかなど、プラットフォームによって、構築する開発環境が異なります。そのため、どの層をターゲットとしてARアプリをリリースするのか、明確な方向性を定めた上でAR開発を始めましょう。
iOS用のアプリを作る
Xcodeでの開発に慣れている場合は、Xcode+ARKitがおすすめです。特に理由がなければ、iOS向けのARコンテンツはApple公式が提供する環境を使用するほうが無難でしょう。この場合、開発言語には主にSwiftを使用します。
他のプラットフォームとのクロスプラットフォーム開発が必要なケースや、Unityでの開発に慣れている場合は、Unity+ARKitでの開発も可能です。
Android用のアプリを作る
Android Studioでの開発に慣れている場合は、Android Studio+AR Coreでの開発がよいでしょう。Android Studioを使用する場合は、開発言語はKotlinやJavaが中心になります。
前述の通り、AR CoreはUnreal EngineやUnity、Swift、Objective-Cにも対応しているため、クロスプラットフォーム開発を行ないたい場合や、Android以外のプラットフォームで動作するARを開発する場合は、Unityを始めとしたほかの言語を選択するケースもあります。
Magic Leap用のアプリを作る
Magic Leap公式の推奨開発環境は、Unity+Magic Leap Toolkitの組み合わせになります。
Magic Leap用のアプリはUnreal Engine でも開発が可能ですが、公式が提供するライブラリはUnity向けであるため、特にUnreal Engineでなければいけない理由がなければ、UnityでC#を利用しての開発となります。
HoloLens用のアプリの場合
HoloLens用アプリの開発にはVisual Studio + Unity + Mixed Reality Toolkitの組み合わせが推奨されており、また、ライブラリやフレームワークの提供もUnityとVisual Studioを前提としているため、推奨環境で開発することになります。
HoloLens2はUnreal Engineでの開発もサポートされていますが、現状はUnityベースでの開発が中心となります。
レリパのAR実績と開発環境およびライブラリの紹介
レリパではiOS向けのARアプリを開発しています。弊社のAR実績をご覧いただくとともに、実際のAR開発に使用した環境とARライブラリについても併せて紹介していきます。
ARファニチャー
ARファニチャーはARの力でプロのホームデザイナーを体感できる、マーカーレス型ARアプリです。自宅の部屋をスキャンすることで、登録されたバーチャル家具をARで自分の部屋に自由に配置することが可能です。
部屋の模様替えや家具の入れ替えを検討しているときに、ARファニチャーによって具体的なイメージを現実の部屋の上に展開することで、どのような家具や色の配置になるのかを想像ベースから現実に落とし込むことができます。
マーカーレス型ARはさまざまなARの中では開発がもっとも難しいARですが、弊社ではしっかりと部屋の大きさを認識し、違和感のないバーチャル家具の配置が可能です。
なお、ARファニチャーは以下のライブラリおよび開発環境で作成しました。
開発環境: MacOS 10.15, Xcode 12, iOS 14
ライブラリ: ARKit, SceneKit
言語: Swift
対象機種: iOS13
ARアウトフィット
ARアウトフィットは、ARのオブジェクトで造られた服やサングラスなどを、デバイスのカメラで取り込んだ自分にフィットさせることで、着用イメージを購入前に試すことができるコーディネートアプリです。
オンラインで服を購入したものの、写真と実際の着用イメージが異なったり、すでに持っている服とのコーディネートが想像とは違っていることは少なくありません。そのような購入後のトラブルを回避するため、実際の店舗での試着よりも手軽に着用イメージを確認できるのがこのARアプリです。スワイプとアイテム選択のたった2ステップで、簡単にリアルタイムでARを体感することができます。
なおARアウトフィットも、ARファニチャーと同様に以下のライブラリおよび開発環境で作成しました。
開発環境: MacOS 10.15, Xcode 12, iOS 14
ライブラリ: ARKit, SceneKit
言語: Swift
対象機種: iOS13
まとめ
AR開発に必要となる環境は、アプリのターゲットとなるOSによっておすすめの組み合わせが変わってきます。プラットフォームによっては専用のARライブラリやフレームワークが提供されているため、それに合わせて言語の選択やIDEの導入も決まってきます。そのため、具体的にどのようなターゲットに対してARを開発するのか、しっかりとしたイメージや計画が大切です。
もしAR開発が初めての場合は、まずはすでに開発経験がある環境でARライブラリを入れ替えながら開発をしていくと、スムーズに開発が進むでしょう。特にクロスプラットフォームで開発が可能なUnityは、ターゲットに合わせてライブラリを入れ替える必要があるものの、そもそもARやVRの開発に強いため、どのプラットフォームでもおおむね開発が可能です。
近年ライブラリは急速に進化しており、AR開発はどんどん簡単になっています。もしAR開発を試して見たいということであれば、ここで紹介した開発環境の中から、自分の手元ですぐできそうなものを選んで試して見てはいかがでしょうか。
低コストで質の高いオフショア開発会社にお探しなら、弊社の得意な技術スキルを向上しながら、世界の最先端技術にキャッチアップし続けているレリパにお問い合わせください。