AR(拡張現実)は、現実世界を拡張させる技術で、近年ますます注目を集めています。
ゲームやエンターテイメント、教育、医療、ビジネスなどの分野で利用され、より身近で便利な生活の一部になっていくことが予想されます。
しかし、ARアプリの開発には、特別なスキルや知識が必要です。
本記事では、ARアプリ開発に必要な技術や開発手順を紹介し、AR開発が可能な7つのソフトウェアを紹介します。
AR開発に興味がある方は、ぜひ参考にしてみてください。
ARコンテンツ制作!自社開発による柔軟性でお客様のビジネスをリードする『monoAR』
サービスの特徴や導入事例をまとめた資料をご用意しました。
monoARサービス紹介資料の無料ダウンロードはこちら
資料をダウンロードする|ARとは
ARとは、Augmented Reality(拡張現実)の略称で、現実の環境にデジタルの情報を重ね合わせて表示する技術のことです。
スマートフォンなどのデバイスを通して、現実の映像に仮想デジタル情報を付け加えることで現実世界を拡張して見せます。
例えば、街中にスマホをかざすと目的地までのナビゲーションを表示したり、商品にかざすとその商品の詳細情報が浮かび上がったりと、私たちの生活をより便利なものにします。
また、2016年にリリースされたスマホゲーム「ポケモンGO」は、ARを活用して現実世界にポケモンを出現させ、世界中で多くの人を夢中にさせました。
このように、ARは私たちの日常生活に新たな価値を提供し、さまざまな分野で活用されています。
以下の記事で活用シーンや愚弟的な事例などを詳しく解説しています。
|AR技術の種類
ARを実現するには、カメラで映した画像の適切な位置にデジタル情報を付加する必要があります。
その仕組みは、大きく分けて「ロケーションベースAR」と「ビジョンベースAR」の2つがあります。
ビジョンベースARには、さらに3つの方式でデジタル情報を表示させています。
こちらではその違いについて解説していきます。
ロケーションベースAR
GPSなどの位置情報技術を使用することで、現実世界の位置に基づいて、仮想的な情報を表示するAR技術です。
GPSや加速度センサーなどのセンサーデータを使用して、スマートフォンなどのデバイスがどこにあるかを特定し、ARオブジェクトを出現させます。
例えば、スマートフォンを使って街を歩いたときに、スクリーンに現在地周辺の店舗や施設などの情報が表示されるのがロケーションベースARです。
観光情報の表示やナビゲーション、位置情報を利用したゲーム(代表的なものに「ポケモンGO」があります)で多く利用されています。
デバイスが搭載している機能をベースにARオブジェクトを表示させるため、開発コストを抑えやすい傾向にあります。
ビジョンベースAR
デバイスのカメラに写した現実世界の情報をベースにARを表示する方式です。
位置情報に依存せず、物体の形状や特徴を認識してARコンテンツを重ねるため、よりリアルなAR体験を提供することができます。
開発事例としては、ECサイトの販促アプリやゲームアプリをはじめとして、近年では技術研修などでも活用されています。
オブジェクトの形状や空間認識もしなければならないため難易度が高いものの、拡張性と汎用性の高さから、今後もビジョンベースARを活用したアプリが増えると考えられています。
ビジョンベースARでは、さらに「マーカー型」と「マーカーレス型」、「オブジェクト型」に分類することができます。
一つ一つ、詳しく見ていきましょう。
マーカー型ビジョンベースAR
ビジョンベースARの中でも「マーカー型」は、デバイスのカメラがマーカーと呼ばれる特定のマークやQRコードを読み込むことで、実際の世界に仮想的なオブジェクトを展開します。
ARを表示するためにはマーカーを用意する必要がありますが、マーカーさえあればどこでもARを表示できるとも言えます。
パンフレットやポスター、名刺などにマーカーを設定すれば、紙面情報に多くのデジタル情報を付加することができます。
空間認識が必要なため、ロケーションベースARと比較すると開発の難易度が上がりますが、マーカー型の場合マーカーを起点にできるため、マーカーレス型よりは開発が容易であると言われています。
マーカーレス型ビジョンベースAR
「マーカーレス型」はマーカーを用意する必要がないため、場所を限定せずにARオブジェクトを表示できます。
カメラから読み込んだ画像を解析し、空間とオブジェクトを認識して自動的にARを発動させます。
空間認識だけでなく、取り込んだオブジェクトの認識とARの発動位置の調整が必要なため開発が難しいうえ、処理能力の高いデバイスが必要な場合があることが特徴です。
マーカーレス型は、カメラから読み込んだ画像を解析し、空間とオブジェクトを認識して自動的にARを発動させます。
例えば、室内に家具を設置してシミュレーションするアプリや、人の顔を認識して髭や耳を付けたり、バーチャルメイクを施すアプリが具体例として挙げられます。
オブジェクト型ビジョンベースAR
空間全体を解析する空間認識型に対し、「オブジェクト型」はカメラが物体を認識し、その形状、サイズ、位置、方向などを特定して、その上にデジタル情報を表示することができます。
したがって、物体自体を認識することができるため、商品のパッケージや建物の内部など物体に対してより正確な情報を提供することができます。
開発事例として、AppleのARフレームワーク「ARKit 2」を利用して作られたオブジェクト型ARコンテンツが公開されています。
安定性・精度ともにこれからであり、デバイスに計算・解析の負荷をかけるという特徴があるため、今後デバイスのカメラ・CPUやアルゴリズムの進化によっては、AR活用の幅が広がりそうな技術ではあります。
|ARコンテンツの開発手順
ARコンテンツを開発するには専門業者に委託するか、自社で開発するか2通りの方法があります。
最近ではさまざまな開発ツールが登場し、自前で開発するのも夢ではなくなりました。
ここでは、ARコンテンツ開発の一般的な手順について解説します。
①ARコンテンツ開発の企画立案
ARコンテンツの制作を始める前に、しっかりとした企画立案が不可欠です。
いきなり開発に取り掛かるのではなく、まずはプロジェクトの目的やターゲット、競合の状況などを明確にしましょう。
企画の骨格を固めることで、予算や開発規模、必要な機能といった細部も明確になり、開発ツール選択の指標となります。
また、企画書を作成することで、チームメンバーへの共有もスムーズになり、円滑にプロジェクトを進められるでしょう。
事前の入念な準備・計画が、その後の開発工程に大きく影響を与えます。
②ARコンテンツ制作の開発環境を決める
企画のコンセプトが固まったら、次にARコンテンツ開発の統合開発環境(IDE)を決めます。
IDEとは、AR開発のベースプログラムであるARフレームワークや3Dモデル作成ツールなど、さまざまな機能やライブラリを統合したソフトウェアのことです。
多くの機能を一つにまとめることで、開発者は効率的にARコンテンツを開発できます。
一般的によく利用されるIDEは以下の4つです。
- Xcode
- Android Studio
- Unity
- Unreal Engine
それぞれのIDEには得意とする分野やサポートしているプログラミング言語が異なるため、開発するARコンテンツの種類や、得意なプログラミング言語に合わせて選びます。
AR開発の初心者には、Unityがおすすめです。
シンプルなARコンテンツなら、コーディング不要で作成できる上、無料で利用できるプランもあります。
それぞれのIDEの特徴についてはこの後のセクションで詳しく解説します。
③AR開発のソフトウェアを決める
IDEの選定に続いて、AR開発するソフトウェアを決めましょう。
ARフレームワークを活用することで、より効率的にARコンテンツを開発できます。
代表的なARフレームワークには以下のようなものがあります。
- ARToolKit:MacやWindowsなど様々なOSで利用可能
- Amazon Sumerian:ブラウザベースで専門知識不要、AndroidとiOS対応
- Apple ARKit:平面検出や明るさ検知が可能なiOS用ARライブラリ
- Google ARCore:モーショントラッキングが強み、AndroidとiOS対応
- Spark AR Studio:FacebookやInstagramのAR開発に特化
- Snapchat Lens Studio:顔の変形や画像装飾に特化、スマホとPC対応
- Vuforia:マーカー型とマーカーレス型に対応、サンプル豊富で初心者向け
開発するARコンテンツの種類や目的に合わせて、最適なツールを選択することが重要です。
AR開発初心者には、サンプルが豊富で使いやすいVuforiaがおすすめ。
AndroidとiOSの両方に対応しているので、幅広いデバイスで動作するARコンテンツが作成できます。
④オブジェクトの作成・ARアプリのプログラミング
ARコンテンツに表示する3Dオブジェクトを作成します。
3Dモデリングソフトなどを使って、キャラクターやアイテムなどのオブジェクトをデザインします。
また、必要に応じてアニメーションも付けましょう。
次に、IDEを使ってアプリの開発を行います。
選択したARフレームワークを活用し、オブジェクトを配置したり、ユーザーとのインタラクションを実装したりします。
インタラクションの実装は、ARフレームワークの機能で直感的な操作で実現できるようになってきました。
しかし、より高度なインタラクションを設定したい場合は、プログラミングによる実装が必要です。
プログラミングの過程では、適宜動作確認やデバッグを行い、手戻りを少なくすることがポイントです。
ARコンテンツの完成度を高めるために、繰り返しテストを行い、ユーザー体験を磨き上げていきましょう。
⑤テスト・ARアプリ公開
ARアプリを開発したら、最後のステップはテストと公開です。
ARアプリは、実際の環境でテストすることが非常に重要です。
ARアプリが期待通りに動作していることを確認するために、デバイスを変えながら何度もテストを行います。
テスト中に発見した問題やエラーは修正し、アプリストア提出に向けての必要な手続きを完了する必要があります。
例えば、iOS向けであればApple App Store、Android向けであればGoogle Play Storeへの登録が必要であり、それぞれの審査に通過しなければなりません。
ARアプリのテストと公開は、開発の最後のステップであり、アプリを世界に公開するため重要なプロセスです。
|AR開発でよく使われる開発環境とプログラミング言語
AR開発では、制作の基盤となる開発環境を選ぶのが重要なポイントです。
ここでは、iOSやAndroid、ゲームエンジンで使われる代表的なIDEとその環境で利用できるプログラミング言語について解説します。
各IDEの特徴を理解し、自分に合ったものを選びましょう。
Xcode(Swift / Objective-C)
「Xcode」は、AppleのiOS、macOS向けのアプリ開発のための統合開発環境(IDE)です。
直感的なインターフェースとコード編集機能を備え、アプリ開発に必要な様々なツールを統合しています。
XcodeはSwiftやObjective-Cをはじめ、C言語、C++、Java、AppleScriptなど、複数のプログラミング言語に対応しています。
中でもSwiftは、Appleが2014年に開発したモダンで安全性の高い言語であり、Xcodeとの相性が抜群です。
一方、Objective-Cは、Swift登場以前からiOSアプリで主流だった言語なので、既存のアプリとの互換性やライブラリなどの資産が豊富というメリットがあります。
App Store公開に必要な証明書管理機能も備えており、Apple製品向けアプリ開発には欠かせないIDEと言えます。
Android Studio(Kotlin / Java)
Android Studioは、GoogleのAndroidアプリ開発用IDE(統合開発環境)です。
WindowsとMac両方のOSに対応し、アプリ開発に必要な機能が一通り揃っています。
使用できるプログラミング言語は、Kotlin、Java、C++など複数あり、中でもGoogleはKotlinとJavaを推奨しています。
Android Studioの特徴は、強力なコードエディタと開発ツールにあります。
コーディングの際に、入力を補助してくれたり、間違いをリアルタイムで指摘してくれたり、画面デザインを視覚的に作成できたり、ユーザーフレンドリーな機能が備わっています。
Android Studioを使えば、スマートフォンやタブレット向けのAndroidアプリを開発できるだけでなく、Android Wear、Android TV、Android Auto向けのアプリ開発も可能です。
Unity(C#)
Unityは、ゲームエンジンであり、統合開発環境(IDE)としても機能します。
もともとはゲーム開発用でしたが、現在ではVRやARアプリの開発にも広く使われています。
Unityの特徴は、マルチプラットフォーム対応にあります。
一度開発したアプリを、iOS、Android、Windows、Mac、ゲーム機など、様々なプラットフォームに簡単に移植できます。
また、ビジュアルスクリプティング機能により、プログラミングの知識が少ない人でも、AR体験を視覚的に構成できます。
もちろん、C#でのプログラミングも可能で、より高度なARコンテンツを作成することができます。
初心者から上級者まで、幅広い開発者に支持されているUnityは、ゲームやVR/ARアプリ開発の分野で欠かせないIDEとなっています。
以下の記事で詳しく解説しています。
Unreal Engine(C++)
Unreal Engineは、フォートナイトのEpic Gamesが開発したゲームエンジンであり、Unity同様に統合開発環境(IDE)としても機能します。
高品質な3Dグラフィックス制作に定評があり、近年ではVRやARアプリの開発にも用いられています。
Unreal EngineはC++を主要なプログラミング言語として採用しており、高度な最適化が可能です。
また、ブループリントと呼ばれるビジュアルスクリプティング機能を備えており、プログラミングの知識が少ない人でも、AR体験を構成できます。
Unreal Engineの強みは、リアルタイムレンダリングの品質の高さです。
フォトリアルな画像を実現できるため、没入感の高いARコンテンツを作成することができます。
以下の記事で詳しく解説しています。
|AR開発向けのソフトウェア11選
AR開発を効率的に行うためには、適切なソフトウェアを選択することが重要です。
ここでは、AR開発向けのソフトウェア(ARフレームワーク)を11個紹介します。
ARフレームワークとは、AR機能を簡単にアプリに組み込むためのツールキットのことです。
これらを使うことで、AR開発に必要な機能を簡単に実装できます。
各ARフレームワークの特徴を理解して、開発するARアプリのコンセプトに合ったソフトウェアを選びましょう。
Amazon Sumerian
「Amazon Sumerian」は、Amazonが提供しているサービスで、VR(仮想現実)やAR(拡張現実)、アプリケーションの作成と実行することができるプラットフォームです。
ブラウザベースの3Dアプリケーションを構築することもでき、わずか数分で3Dシーンを作成可能です。
また、既存のWEBページにデジタルキャラクターを出現させて、WEBページの案内をさせることも可能です。
VRやAR、プログラミングの知識なしにそれらの構築が可能であるうえ、初期費用が無料であるため、初心者でも始めやすいサービスと言えるでしょう。
具体的には、ECサイトや教育用シミュレーション、およびトレーニング用アプリケーションの作成が可能です。
ARKit
「ARKit」は、Appleが開発したiOS用のAR開発プラットフォームです。
特別なデバイスを準備する必要がなく、iOSデバイスのカメラとセンサーを使用して、現実世界と仮想オブジェクトを融合させたARアプリケーションを開発できます。
代表的な機能としては、物理空間の測定や検出、平面認識、オブジェクト追跡、ジオロケーション、手のジェスチャー検出などがあります。
ARKitはリリース後にアップデートを重ねており、最新の「ARKit6」での進化は次の通りです。
- AR中の4K動画撮影が可能になり、画像キャプチャもより高解像度に
- 平面認識及びモーションキャプチャーの精度が向上
- ロケーション・アンカーの対象地域が拡大し、東京が追加
Google ARCore
「Google ARCore」は、Googleが開発した、Androidスマートフォンやタブレットなどのデバイス上でARを実現するためのソフトウェア開発キット(SDK)です。
ARCoreは特殊な機器を使わずに、スマートフォンにデフォルトで搭載されているカメラ、センサー、プロセッサーなどを利用してARコンテンツを利用することが可能です。
その機能として代表的なものは、モーション追跡、環境理解、光学的なエフェクト、平面認識などです。
さらに、平面と特徴点にもVRオブジェクトを置けるというARCore唯一の機能もあります。
こちらもARKit同様、年々アップデートを重ねており、より便利に使うことができるようになっています。
Snapchat Lens Studio
「Snapchat Lens Studio」は、米Snapchatが提供する、ARを利用したオリジナルのフィルターやエフェクトを制作するための、無料のソフトウェアツールです。
Lens Studioを利用することで、3Dモデルやエフェクト、音楽、アニメーションなどを組み合わせて、Snapchatのカメラフィルターやレンズを作成することができます。
作成したフィルターやレンズは、Snapchat上で利用することができ、他のユーザーと共有することもできます。
豊富な機能とテンプレートが特徴的で、ユーザーの髪の色を変える「Hair Color」や、猫や犬の顔を認識できる「Pet」など面白い機能が多いです。
ARToolKit
「ARToolKit」は、“ビジョンベースAR”を実現するためのライブラリです。
無料で使えるオープンソースで、Windows、Mac OS X、Linux、iOS、Androidなどのさまざまなプラットフォームで利用できます。
モバイル向けのプラットフォームに対応しているAR開発ツールは数多く存在していますが、ARToolKitはモバイル向けとデスクトップ向けの双方のプラットフォームに対応しているという長年の実績があります。
また、マーカー型とマーカーレス型の双方のソフトウェアライブラリが提供されます。
開発環境の選択肢が広げられる点でも非常に利便性の高いツールと言えるでしょう。
Meta Spark Studio(旧Spark AR Studio)
「Meta Spark Studio」は、旧Facebook社が提供をスタートした、ARを利用したフィルターやエフェクトを制作するための無料のソフトウェアツールです。
代表的なアプリとして、人の顔を認識してデコレーションする『SNOW』があります。
カードやはがきなどの物理的なものにARマーカーを印刷し、スマートフォンのカメラでARマーカーを表示すると、仮想的な映像が浮かび上がるタイプもあります。
Meta Sparkでは、作成したARエフェクトを自分のアカウントで利用するだけでなく、FacebookやInstagram上で公開してユーザーと共有することができます。
AR.js
「AR.js」は、JavaScriptを用いたオープンソースのWebARフレームワークです。無料で使うことができ、簡単なコードでWebARを実装することができます。
AR.jsを使用することにより、ウェブブラウザ上で、ビジョンベースARとロケーションベースARを実現することができます。
ブラウザ上で動作するため、ユーザーがアプリケーションをダウンロードする必要がありません。
また、AR.jsは、「A-Frame」との統合も可能です。
「A-Frame」は、WebVRを実現するためのJavaScriptライブラリであり、AR.jsと組み合わせることで、ARとVRを組み合わせたコンテンツを作成することができます。
8thwall
8thWallは、アメリカのWall社が提供するWebAR開発プラットフォームです。
8thWallの大きな特徴は、初心者でも比較的簡単にWebARを作成できる点にあります。
豊富なデモやアシスタントツールが用意されているため、ARCoreやARKitと比べると敷居が低いでしょう。
WebARは、ユーザーにアプリのダウンロードを求めないため普及しやすく、iOSとAndroidの両方に対応可能で開発コストを抑えられます。
また、ウェブ上でのリンク機能などを活用することで、高い集客効果も期待できます。
こうした利点から、8thWallは国内外の大手企業に採用されています。
トヨタ自動車やソニー・ピクチャーズ、マクドナルド、ナイキ、アディダスなどがWebAR開発に8thWallを活用しています。
Vuforia
Vuforiaは、PTCが提供するスマートフォンやタブレット、ウェアラブルデバイスに対応したAR開発用ライブラリです。
Vuforia Engineにより、デバイスのカメラやセンサーを活用し空間認識させることで、没入感のあるARアプリを開発できます。
Vuforiaの強みは、豊富なサンプルを活用できる点です。
これらのサンプルをカスタマイズすることで、より表現力豊かなARコンテンツを作成できます。
また、開発者が自由にマーカーを指定できるため、アプリに最適な独自のマーカーを作成することも可能です。
このような利点から、多くの企業やエンジニアがVuforiaを選択しています。
特にUnityとの親和性が高く、UnityとVuforiaを組み合わせてARアプリを開発するケースが多く見られます。
Reality Composer
Reality Composerは、Apple社が提供する直感的なARコンテンツ開発ツールです。
最新のXcodeに無料で付属しており、専門的な知識がなくても、誰でも簡単にARコンテンツを制作できるのが特徴です。
Reality Composerを使えば、iOSやMac上で3Dコンテンツにアニメーションやインタラクションを付加し、よりインパクトのあるAR体験を創出できます。
作成したコンテンツはXcodeを通してアプリに組み込むことが可能です。
特にアニメーションの作成は、コーディング不要でマウスクリックのみで高精度な動きを実現できるため、ARコンテンツ開発のハードルを大幅に下げました。
Reality Composerは、より多くの人々にARコンテンツ制作の機会を提供するツールとして注目を集めています。
PalanAR
PalanARは、コーディング不要で魅力的なWebARコンテンツを制作できる開発プラットフォームです。
画像や動画、3Dモデルなどのファイルをアップロードするだけで、簡単にWebARを作成できます。
オブジェクトの配置や大きさ、角度、インタラクションなどの設定も、直感的な操作で実現可能。
PalanARで作成したWebARは、ユーザーがスマートフォンやタブレットをかざすだけで体験できます。
専用アプリのインストールが不要なため、気軽にARを楽しめるでしょう。
個人クリエイターから大企業まで、様々な業種でPalanARが活用されています。
東京都中央区の成人の日向けコンテンツや、嵐山商店街の七夕まつりフォトスポットなど、ユニークな事例も存在します。
プログラミングスキルがなくても、PalanARを使えば誰でも手軽にWebARコンテンツを制作できます。
|AR開発の注意点
AR開発においては、現実世界と仮想世界の融合を実現するため、デバイスや技術について十分に理解し、ユーザーの体験を最適化することが重要です。
また、ARの潜在的な問題やリスクを認識し、セキュリティやプライバシーにも十分な配慮が必要になってきます。
開発環境の構築が必要
AR開発を行う際には、まず適切な開発環境を構築することが必要不可欠です。
開発環境としては、UnityやXcode、Android Studioなどのツールが一般的に用いられます。
これらのツールは、ARアプリケーションの作成に非常に効率的です。
また、ハードウェアやソフトウェアの選定も重要です。AR開発には、高性能なマシン、専用のARヘッドセットなどが必要となる場合があります。
また、選定した開発環境に合わせて、必要なライブラリやツールもインストールする必要があります。
適切な開発環境を構築することで、開発者はより効率的なARアプリケーションの開発を行い、ユーザー体験を向上させることができます。
利用規約を詳細に作成
利用規約は、ユーザーがARアプリケーションを利用する際に遵守しなければならないルールや規則を定めた文書であり、開発者とユーザー双方にとって大切な意味を持ちます。
ユーザーがアプリケーションの利用にあたって遵守しなければならないルールや条件を明確にすることにより、トラブルを回避することができます。
利用規約の内容には個人情報の取り扱いや、アプリケーションの利用条件、著作権に関する情報など、様々な事項が含まれていて、法律や規制に沿って作成する必要があります。
これらはアプリをリリースする審査にも関係してくるため、適切な内容を盛り込みましょう。
利用規約は常に見直し、適宜更新することで、ユーザーの信頼を維持することができます。
法律を遵守
ARアプリを開発する時は、トラブルを回避するためにも法律を遵守することを心がける必要があります。よくあるトラブルの一つに「プライバシーの侵害」があります。
個人情報保護法では、“位置情報は個人情報に該当する”とされています。
位置情報を把握され、ストーカー被害に遭うなどのトラブルになりかねないため、位置情報を使用したアプリを開発する際は十分な注意が必要です。
また、「著作権」についても理解しておく必要があります。
既存のアプリやキャラクターをそのまま用いることは当然のことながら、類似するものを開発した場合にも著作権違反になることがあります。
公序良俗に従い、これらのポイントを常に頭に置いておきましょう。
事前の企画段階で明確な目的を設定する
ARアプリ開発の成功には、事前の企画段階で明確な目的を設定することが重要です。
目的を明確にしないまま開発を進めると、ユーザーのニーズを満たせないアプリが出来上がってしまい、せっかく導入しても思うような効果が得られないでしょう。
例えば、社内研修用のARアプリを開発する際、目的を定めず漠然と作ってしまうと、肝心の学習効果が低く、利用価値のないアプリになってしまうかもしれません。
また、目的があいまいだと、開発チームのモチベーションも上がりにくく、プロジェクトの遅延や予算オーバーにつながりかねません。
綿密な事前企画によって、ARアプリ開発の目的を明確に定義づけることが、開発を成功に導く鍵となります。
|まとめ
今回の記事では、AR開発に必要な技術や開発手順、そしてAR開発が可能な7つのソフトウェアを紹介しました。
それぞれのソフトウェアには、特徴や使い方が異なるため、自分に合ったソフトウェアを選ぶことが重要です。
今後も新しい技術が誕生し、より豊かな体験やサービス提供のために、さらに進化し続けていくでしょう。
一般ユーザーでも開発可能なツールが増えていくことが今後も予想されるので、ぜひ挑戦してみてはいかがでしょうか。
ARコンテンツ制作!自社開発による柔軟性でお客様のビジネスをリードする『monoAR』
サービスの特徴や導入事例をまとめた資料をご用意しました。
monoARサービス紹介資料の無料ダウンロードはこちら
資料をダウンロードする