この記事は, SYSKEN Advent Calendar 2018の17日目の記事です.
こんばんは、niwasakiです。
諸事情よりすこし駆け足で書いていこうと思います。
目次
1. はじめに
2.1 ARcore
2.2 ARkit
2.3 WebXR
3. サーフェス探知
4. ネイティブ・ハイブリッドアプリ
5. マルチプラットフォーム
6. 最後に
1. はじめに
ポケモンGOやPlayStationVR、VRChatなどXRが度々話題になりました。
この記事ではXRの中のARアプリの開発ツールで代表的な”ARcore”,”ARkit”,”WebXR”について比較し喋っていこうと思います。
2.1 ARcore
Googleが開発したネイティブアプリの開発ツールで、対応した端末でしか動きません。なぜかiosにも対応しています。
ちなみに、同社Googleが出している”Hololens”のアプリケーションと開発の流れがとても似ているそうなので、Hololensに興味があるという人は一度ARcoreに触れてみるのもいいのではないのでしょうか?
Unity,UE4,Android studioで開発
2.2 ARkit
こちらはAppleが開発したネイティブアプリの開発ツールで、機能自体は先ほど述べたARcoreと変わりません。
しかし、最近ARkit2になり”FaceID”を利用した顔認識と仮想空間共有ができるようになりました。
Unity,UE4,Xcodeなどで開発
2.3 WebXR
こちらはMozillaが開発したハイブリッドアプリの開発ツールで、マルチプラットフォームであることが最大の長所です。
3.サーフェス探知
ARで最も重要となる処理でその名の通り、床、壁、段差、物体を認識する処理です。
ARcore,ARkit,WebXRでは、床、壁を認識できます。(外国の比較動画では、ARcoreが一番速く認識できるらしい)
基本的には床やマーカーをカメラで撮り続けないといけませんが、ARkitは少し対策が施してありその場から動かなければ、どの方向を向いても耐えることができます。
4.ネイティブ・ハイブリッドアプリ
ネイティブアプリ=端末自体に処理させるアプリ(ARcore,ARkit)
ネイティブアプリは端末自体に処理をさせるので、相当な処理がかからない場合、一番快適に操作できるアプリです。
ハイブリッドアプリ=スマホの機能とwebアプリの混合(WebXR)
ハイブリッドアプリはサーバーにリクエスト→処理→レスポンスしなければならないので、通信によるラグが生じてしまいます。しかし、ハイブリッドアプリにも長所があります。次に説明します。
5.マルチプラットフォーム
マルチプラットフォームは先ほど説明したネイティブアプリとハイブリッドアプリの違いが最も影響するところで、WebViewを用いて作成しています。
これによりブラウザが使えるのであればどの端末、OSでも使えます。
※ちなみに、どこ情報かは忘れたのですがAppStoreやGooglePlayなどネイティブアプリを配信するサービスがなくなり、ほぼすべてのアプリがハイブリッドアプリになるようなマーケティングの話を聞きました。
6.まとめ
オフラインでの処理が多い→ARcore ARkit
未来性→WebXR
作業効率 WebXR<ARcore=ARkit
学習コスト ARcore=ARkit<WebXR
性能優先 WebXR<ARkit<ARcore
機能優先 WebXR<ARcore<ARkit
終わりに
駆け足で書いていきました。現在WebXRは他のと比べると少し劣っているところがありますが開発するならWebXRかな~とは思いました。
購読ありがとうございます。
明日の記事楽しみにしています。さよなら
コメントを残す