(もし知ってても言えないですしね)既存実装と比較したARKitのアドバンテージは何だと思うか?質問が悪かったので、「じゃあ既に実装が済んでいて、ARKitを使うとなると既存実装にプラスしてバージョンわけが必要というデメリットがありつつ、それでもARKitを使う理由はあるのか」という観点から、我々の既存実装と比較したARKitを使うメリットについて聞いてみました。回答:Appleの純正フレームワークは公開APIよりもっと下のレイヤーを利用した実装ができるので、サードパーティ製の実装よりもハードウェアに最適化されている。よってバッテリー消費量や処理速度の面で優れていると考えられるユーザーがタップしなくても、ARのセッションを開始した時点でシーンの解析が完了している(これは厳密には我々の用途にとってはアドバンテージではないが、「違い」ではある)デバイスの姿勢も考慮してキーポイントを抽出してるので、デバイスを動かすと云々(すみません、実はこのへんちょっとよくわかりませんでした)結局のところ、ARのシーンとしてはどういうものが検出できるのか我々の要件としては、水平面に何かを置きたいわけじゃなくて、対象オブジェクトを囲むように3Dノードを表示したいわけです。ところがARKitは検出した床やテーブル等の水平面に何かを置く実装しか見当たらないので、「こういうのってARKitでできるの?」ということを聞いてみました。回答としては、今のところ「水平方向」(horizontal)の「平面」(plane)しか検出しないそうです。いうのはまだありません。壁のような「垂直方向の平面」を検出したり、我々のアプリのように人間や銅像や動物といった任意のオブジェクトを検出したり、そういうことは現状ではサポートしてないようです。ポケモンGoのようにキャラクターの3Dモデルを表示するタイプのARにはいいですが、我々のアプリのような用途や、実世界のものに合わせて何か情報を表示したり、みたいなタイプのARにも現状では向いてなさそうです。いう水平方向の平面が認識されるかについても教えてくれたのですが、ある程度の大きさが必要で、たとえばイスの座面は十分な広さがあるので水平面として検出されるが、背もたれの上(伝わりますかね?)みたいな狭いものは水平面としては検出されないと。一つ提案として言ってくれたのは、検出したキーポイントはAPIから取れるので、それらを使って自分で垂直方向の面なり何なりを再構成することならできる、と言ってました。これはありかもしれません。PlusのようにDepth(デプス/深度)を取れるようなデバイスの場合、それを使ってより精度良く検出するような処理を内部でやってたりするのか?ということを聞きました。回答:使ってない普通のカメラだけで精度良く動くようなアルゴリズムになっていて、デバイスによる処理の差異はないそうです。おわりに結論としては、我々の用途には今のところは合ってなさそうです。今後のアプリ開発の可能性を広げてくれる非常におもしろいフレームワークであることには代わりはないので、プライベートでは引き続き触っていこうと思っています。(22)月別アーカイブリンクWishlist検索はてなブログをはじめよう!shu223さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。