ARとは
ARとはAugmented Realityの略で、日本語では「拡張現実」という意味です。現実世界を立体的に読み取り、バーチャルな情報を重ねて表示することで現実世界を仮想的に拡張する技術です。
スマートフォンやタブレット、ARグラスなどを用いて体験でき、商品の情報やプロモーションとなるアニメーションなどのARコンテンツを公開する企業もあります。
AR開発向けのソフトウェア
AR開発向けのソフトウェアを紹介します。
ARKit 6
「ARKit 6」は、Appleが提供するiOSを対象にしたAR開発プラットフォームです。Depth APIを採用しており、スマホのカメラで映し出した空間の奥行きを認識するので現実世界にARが溶け込みます。開発環境はXcodeが使えます。
ARCore
「ARCore」は、Googleが提供しているARフレームワークです。専門知識がなくても開発でき、カメラ機能と連携して物体の表面や3Dの立体的な像まで検出します。そのため、作成したオブジェクトを使ってさまざまな動きを表現することが可能です。
Meta Spark Studio
「Meta Spark Studio」は、Meta社(旧Facebook社)が提供しているUnityなどで開発できるAR開発ツールです。Facebook、Instagramのカメラ・写真機能の拡張が可能なツールで、作成したエフェクトはFacebook、Instagram上で公開できます。専門的な技術がなくてもカメラエフェクトの自作が可能です。すべて英語で表記されているため、利用する際はブラウザの翻訳機能などを活用するとよいでしょう。
Snapc AR Lens Studio
「Snap AR Lens Studio」は、写真投稿型SNSの「Snapchat」が提供しているAR開発ツールです。Mac版・Windows版の両方に対応しているため使いやすいことが特長です。Snap AR Lens Studioを使えば、誰でも簡単にオリジナルのカメラレンズ(エフェクト)を作成できます。
ARToolKit
「ARToolKit」は、株式会社エム・ソフトが提供しているオープンソースのビジョンベースAR開発ツールです。Mac・Windows・iOS・Androidで開発でき、Unityを用いたプログラミングができます。オープンソースのためサポートがない点には注意が必要です。
AR.js
「AR.js」はAR.js Org Communityが提供する、JavaScriptを用いたオープンソースのWebAR開発ツールです。WebARはウェブブラウザ上でARコンテンツが動作するため、アプリケーションをダウンロードせずにAR体験ができます。
AR技術の種類
ARには「ロケーションベースAR」と「ビジョンベースAR」の2つの種類があります。それぞれの種類について詳しく解説します。
位置や方角を取得する「ロケーションベースAR」
一般的に、方角や位置情報を取得するためにはGPSを利用します。ロケーションベースARは、GPSの情報に加えて磁気センサーや加速度センサーを活用する技術です。
この技術を活用することで、位置情報以外にも端末の向きや傾きといった情報を取得でき、簡単な機能であれば専用のライブラリがなくても位置情報を活用できることが特長です。
しかし、ロケーションベースARはGPSの機能に依存する部分が多く、精度が低いことが課題です。近年では技術の発展により精度は向上していますが、完全にズレをなくすことは難しいといえるでしょう。
画像や空間を認識する「ビジョンベースAR」
ARは現実を拡張するため、画像や空間の認識技術が重要です。この技術をビジョンベースARと呼び、マーカーという四角い画像を基準に周囲の情報を認識します。
ビジョンベースARは大きく分けて「マーカー型ビジョンベースAR」と「マーカーレス型ビジョンベースAR」の2種類があります。
マーカー型ビジョンベースAR【画像認識】
マーカー型ビジョンベースARは、マーカーを認識して画像に付加情報を表示します。このマーカーを設置すれば正確な情報を表示しやすいことが特徴です。
マーカーは使用するライブラリやエンジンに依存しており、OSSのライブラリが公開されているため利用しやすいでしょう。しかし、あらかじめ現実環境にマーカーを配置しておく必要があるため、利用はある程度制限されるでしょう。
マーカーレス型ビジョンベースAR【空間認識】
マーカーレス型ビジョンベースARは、マーカー型ビジョンベースARと違いマーカーを使用せず、現実空間に存在する物体・空間を認識する技術です。マーカーを設置できない場所でも認識できるメリットがありますが、処理する情報量が多くなってしまいます。
結果として高い技術力が求められるほか、認識するまでに時間がかかる場合も少なくありません。
AR開発に必要な準備
AR開発を行う準備として、IDE(統合開発環境)の構築と各IDEで使用するプログラミング言語について知っておくことが必要です。AR開発に用いられる代表的なIDEとプログラミング言語は以下のとおりです。
- Xcode
- Apple社が提供するIDEで、Objective-CやSwiftというプログラミング言語を使用します。macOSやiOS向けアプリの開発に使用され、Apple Developer ProgramのIDがあれば無料でダウンロードが可能です。
- Android Studio
- Googleが提供するAndroid向けアプリの開発に使用されるIDEです。使用するプログラミング言語はKotlin、Java。WindowsとMacのどちらでも使用可能です。
- Unity
- Unity Technologise社が提供するゲーム開発プラットフォームで、C#というプログラミング言語を使用します。Windows、Mac、Linux、iOS、Androidなど大半の主要なプラットフォームに対応。年商10万ドル以下の企業であれば無料で使用可能です。
AR開発のやり方
AR開発の具体的な手順を紹介します。AR開発の基本的な手順は以下のとおりです。
- 1.AR開発環境を構築
- AR対応のスマートフォン、タブレットなどの端末とIDE、ARフレームワーク、3Dモデル作成ツールを揃えます。そのほか必要なツールがあれば準備しておきましょう。
- 2.3Dモデル作成ツールでオブジェクトを作成
- 3Dモデル作成ツールを使用して、ARで表示させたいオブジェクトやアニメーションを作成します。
- 3.ARフレームワークを使用してARをプログラミングする
- ARフレームワークはAR開発のベースとなるプログラムで、オブジェクトを空間に表示させるために必要です。オブジェクトの配置や動作をプログラミングし、ブラウザや端末で表示できるようにします。
- 4.端末でARをテストし公開
- 開発したARコンテンツが正常に動作しているか、スマートフォンやタブレットなどの対応端末でテストしましょう。動作に問題がある場合はプログラムを修正します。正常に動作していたらARコンテンツを公開しましょう。
ARを開発するときの注意点
最後に、AR開発をする際の注意点を見ていきましょう。具体的な注意点は以下の3つです。
- ■開発環境の構築が必要
- ■法律を遵守する
- ■利用規約を詳細に作成する
それぞれの注意点について詳しく解説します。
開発環境の構築が必要
ARは開発環境でプログラミングしたものをARツールで実現しています。そのため、ARツールだけではなく開発環境の構築が必要です。
ARアプリの開発環境としてよく使われるのは、UnityやXcode、Android Studioです。中でも、3Dゲーム開発エンジンであるUnityは初心者でも扱いやすく、立体的なコンテンツとの相性がよいのでAR開発に適しています。
法律を遵守する
AR開発をするときは、法律を遵守しなければトラブルを招くため注意してください。特に位置情報を把握するケースが多く、個人情報に該当します。そのためアプリで位置情報を利用する場合は適切に扱わなければなりません。
また、ARに限らずアプリを開発する際は類似アプリの存在にも注意が必要です。似ているアプリを開発・リリースした場合、著作権違反になる可能性があります。これはアプリの仕様だけではなく、機能拡張の外部ツールやライブラリも該当します。
利用規約を詳細に作成する
トラブルを避けるためには、法律を遵守するだけではなく、利用規約を作成することも重要です。利用規約の作成はアプリをリリースする審査にも関係しているため、適切な内容を盛り込みましょう。
特に個人情報の取り扱いや免責事項、問い合わせ先を明記するようにしてください。免責事項とは、トラブルが発生した際の賠償責任を免除する項目のことです。
ARを開発し新しいサービスを生み出そう
AR開発をする際には、その技術の種類に注目しましょう。AR技術には大きく分けて「ロケーションベースAR」と「ビジョンベースAR」の2種類があり、位置や空間を認識する能力が異なります。トラブルを避けるためには法律を遵守し、利用規約を作成することが重要です。
また、ITトレンドではそのほかのソフトウェアやシステムの開発に役立つツールも紹介しています。興味がある方はぜひ一括資料請求をご利用ください。