1. HOME
  2. ブログ
  3. AR
  4. AR開発で必要なライブラリまとめ

ブログ

BLOG

AR

AR開発で必要なライブラリまとめ

 AR(Augmented Reality:拡張現実)の技術開発が盛んに行われていますが、このAR開発に不可欠なものがライブラリです。ライブラリとは、開発に役立つプログラムをひとまとめにしたファイルのことです。AR開発技術は、イベント、ゲーム、技術研修、企業広告などに利用範囲が急拡大しています。ARの活用が期待される今、AR開発で必要な開発環境やライブラリ、AR開発の初期手順などをまとめてみました。

AR開発に不可欠な開発環境とライブラリ

開発環境について

 開発環境とは、機器やソフトウェア、システムを開発するために必要な作業環境のことです。機材やソフトウェアなどの組み合わせをいいます。ARにおける開発環境は、通常のアプリの開発環境と基本的に違いはありません。開発環境を選ぶ際には、使用する言語や、開発するARのターゲットとなるデバイスなどを考慮して決めます。

 アプリ開発向けの場合、Googleが提供するAndroid StudioやAppleが提供するXcode、VR・ARを得意とするUnityや、MicrosoftのVisual Studioなどが挙げられます。

 ちなみに、AR開発で使用される言語は、主に、AndroidにはKotlinやJava、iOSにはSwift、Unityを使用する場合はC#、WebARの場合はHTML+JavaScriptになります。

AR開発のライブラリについて

 AR用のライブラリについて、開発するARの目的沿った機能を持つライブラリを選択する必要があります。開発するARに複雑な機能まで求めないのであれば、まずはプラットフォーム提供企業の有する公式ライブラリの利用がおすすめです。

 AR用のライブラリには、GoogleやAppleが提供するものから、AmazonやFacebookが提供するものまであります。また、Magic Leap、HoloLensなどの複合現実ウェアラブルコンピュータのデバイス向け専用ライブラリや、Unityなどにも対応しAndroidとiOSいずれも対応可能なライブラリも複数あります。

AR開発向けライブラリまとめ

 AR開発で使われているライブラリをご紹介します。なお、こちらで紹介するライブラリのほかに、Web ARの開発でよく使用されるA-FrameやAR.jsといったライブラリも存在します。

 Google社が提供するARライブラリで、、ARCoreは幅広いデバイスで動作します。この点が、以下に述べるApple社のデバイスを前提としたARKitと異なるところです。対応する開発環境は、iOSネイティブ(Objective-C、Swift)、Androidネイティブ(Java、Kotlin)、Unity、Unreal Engineです。

 iOS上でも対応できることから、クロスプラットフォームのARアプリ開発時に、ライブラリとしてARCoreを選択する場合もあります。例えば、ARCoreとUnityを組み合わせて開発した場合、AndroidとiOSのクロスプラットフォームの開発が可能です。

 もっとも、物体トラッキングやモーションキャプチャについては、ARKitに比べると弱いというデメリットがあります。

 Apple社の提供する、iOS向けのARライブラリです。動作にはARKitに対応したCPUを搭載したデバイスが必要で、使用するプログラミング言語はSwiftまたはObjective-Cとなります。

 ARKitは、強力なフェイストラッキング機能などを持つことで有名ですが、新しいバージョン機能の特徴は、Location Anchors(ロケーション・アンカー)というものです。この機能はApple社の3D地図データに、現実に存在する有名なスポットやランドマークにARオブジェクトを設置できるものです。ロケーション・アンカーを使用したARでは、従来のARでは端末ごとにARを個別に表示していたものが、現実世界の特定の場所にCGのオブジェクトを設置できるため、同じARを複数人で見ることができるのです。設置されたARオブジェクトを色んな角度から見たり、歩くことができます。複数人で同時にAR体験を共有できる優れものになっています。

 Facebookが開発したARライブラリで、Instagram上のストーリー用のARのエフェクトフィルターを作成することで知られています。無償で提供されており、解説動画も詳しい内容になっていて、テンプレートも多彩であることから、簡単なARであればコードなしに開発できます。知識がない状態からでもARのエフェクトを作成することが可能です。他のAR開発ツールに比べたとき、手軽に開発できる点が魅力です。Spark AR Studioで作成したエフェクトはFacebookやInstagram上で公開できるので、多くのフォロワーを獲得したり、広報にもつながるので、SNSマーケティングとしても利用しやすいです。

 Amazonが提供するAR開発ライブラリです。開発環境はブラウザベースで、特別なプログラミングや3Dグラフィックスの処理に関する知識はなくても、簡単にVRやARのアプリを作成して既存のWebサイトに埋め込むことができます。複数のプラットフォームで動作して、WebGLやWebVRをサポートします。また、ウェブブラウザ 、モバイルブラウザ 、Lenovo Mirage、Google Daydream、Oculus Rift、Oculus Go、HTC Vive、HTC Vive Proにも対応しています。開発言語は、HTMLとJavaScriptです。

 Microsoftの提供するHoloLens用の開発フレームワークです。HoloLens向けのフレームワークはUnity版のみが公開されていますが、HoloLens向けのコンテンツはUnrealかUnityで行えます。こうしたことから、ARコンテンツを作成する際には、開発言語はUnity、開発フレームワークはMixed Reality Toolkit、IDE(統合開発環境)はVirtual Studioの組み合わせであることが必要です。

 ヘッドマウント型のARディスプレイであるMagic Leap専用のARライブラリです。Magic Leap向けのコンテンツに必要な機能が最適化されています。Magic Leap向けコンテンツの開発はC系言語やHTML+JavaScriptにも対応しており、Unityに取り込んで使用します。ただし、提供されているライブラリはUnityだけです。

ARアプリ開発の始め方

 初めてAR開発を行う場合にどのようなことに気を付ければ良いでしょうか。おすすめは、なるべく慣れ親しんだ開発環境で開発することですが、ターゲットとなるデバイスがiOS端末か、Android端末か、またはHoloLensなのかなど、プラットフォームによっても異なります。まずは、どのようなターゲット向けににARアプリをリリースするのか決めたうえでAR開発に取り組むことが大切です。

1 Android向けアプリの場合

 Android向けアプリ作成には、既にAndroid Studioでの開発に慣れていれば、Android StudioとAR Coreを組み合わせて開発することが最適です。Android Studioの開発言語はKotlinやJavaが中心です。また、AR Coreは既にご紹介したとおり、iOSネイティブ(Objective-C、Swift)、Androidネイティブ(Java、Kotlin)、Unity、Unreal Engineにも対応しており、Android以外のプラットフォームで動作するARを開発したい場合や、クロスプラットフォーム開発を行ったりする場合は、Unityを始めとしたほかの言語を選ぶこともあります。

2 iOS向けアプリの場合

 iOS用アプリを作成する場合、既にXcodeでの開発に慣れている場合は、XcodeとARKitの組み合わせが最適です。また、ARコンテンツは、Appleが提供する環境のiOS向けのものを使用すれば良いでしょう。開発言語には主にSwiftを使用します。ちなみに、Unityでの開発の方が慣れていたり、クロスプラットフォーム開発が必要なときには、UnityとARKitの組み合わせによる開発にも対応できます。

3 Magic Leap向けアプリの場合

 公式が推奨する開発環境は、Magic Leap ToolkitとUnityの組み合わせです。公式が提供しているライブラリはUnity向けとなっていることから、Unreal Engineでの開発も可能ですが、Unreal Engineである必要が特になければ、UnityでC#を利用した開発となります。

4 HoloLens向けアプリの場合

 HoloLens向けアプリ開発の場合、Visual Studio、Unity、Mixed Reality Toolkitの組み合わせが推奨されています。また、HoloLens2はUnreal Engineでの開発もサポートされていますが、ライブラリやフレームワークの提供もUnityとVisual Studioを前提としたものであるため、開発の中心はUnityとなります。

まとめ

 現在もライブラリは進化し続けており、AR開発は今後ももっと簡単になっていくでしょう。ただし、AR開発においては、アプリのターゲットとなる端末やプラットフォームによって仕様が異なるため、まずはARアプリのターゲットを明確にすることが大切です。今回の記事でご紹介したライブラリを中心に、作成するARアプリの開発に最適なものをみつけてみましょう。

AR開発を依頼するなら

エネセーブではAR開発を得意としております。
AR開発をご検討の方は、是非以下よりお問い合わせ下さい。

関連記事