AR開発高速化!
「CFA」作りました!
登壇者:KENTO
Twitter : @okprogramming
仕事 : XR関連のR&D
Twitter : @Up_frontier
Twitter : @gaprot_jp
話すこと
・マーカーレス型ビジョンベースARの問題点
・CFAって何?
・CFAの実装で得た知見、工夫
なぜ話すのか?
AR開発の難しさを知ってほしい!
独自の打開策を生み出したので聞いてほしい!
大変だったので知見を共有したい!
・マーカーレス型ビジョンベースARの問題点
・CFAって何?
・ CFAの実装で得た知見、工夫
引用元: https://www.atmarkit.co.jp/ait/articles/1109/26/news136.html
マーカーレス型ビジョンベースARって?
マーカーレス型ビジョンベースAR作成の問題点
①見た目の確認・修正が何度もできない
→空間認識が前提のため細かい調整で現地と作業場所の往来が必要
②絵コンテではイメージがつきづらい
→ARには体験のデザインやインタラクティブが伴う
(※絵コンテ ... 映画やアニメと同じくARコンテンツの内容を進行に合わせて描いたもの)
③モック制作に時間をかけられない
→本開発に時間をかけたい
モックは打ち合わせでの「話の種」にしかならない
・マーカーレス型ビジョンベースARの問題点
・CFAって何?
・CFAの実装で得た知見、工夫
CFAって何?
・Contents Formatter for AR
マーカーレス型ビジョンベースARの問題点を解決する
ARコンテンツ開発加速ツール
①見た目の確認・修正が何度もできない
②絵コンテではイメージがつきづらい
③モック制作に時間をかけられない
全体図
具体的な機能
★配置ツール
空間アンカー(認識した空間)
からの相対位置に ”目印” を設定
目印の座標をまとめた
"配置データ" を作成
エディター上に目印の位置を再現
★作成ツール1
“配置データ”を読み込むと
目印をシーン上に配置
(0,0,0)が空間アンカー
目印をヒントに
ARオブジェクトを配置
Boltでコンテンツ作成
★作成ツール2
シーン全体やARオブジェクトごとに、
Boltを利用した”ギミック”を
簡単に実装可能
ARコンテンツ作成に特化した、
自作ノードも用意
★ビューワーアプリ
作成ツール(Unity プロジェクト)を
ビルドしたものが
ビューワアプリとして利用可能
iOS, Android, HoloLens2 で
同じコンテンツを動作確認可能
※ここまでの詳細は「アップフロンティア CFA」で
Youtube検索
作成ツールからビューワアプリへ
非常時に備えマーカー型も対応
例)ロケーション情報が変わってしまった
空間アンカー と 画像マーカーを
ビューワアプリ上で
簡単に切り替えることができる
・マーカーレス型ビジョンベースARの問題点
・CFAって何?
・CFAの実装で得た知見、工夫
・Azure Spatial Anchorの組み込み
・Boltでノードを自作
・HoloLens2対応
CFAの実装で得た知見、工夫
Azure Spatial Anchorの組み込み
・公式のサンプルとAPIドキュメントで大まかなプロセスを理解
・SpatialAnchorManager クラスが
空間アンカーに関する一連の処理の中心を担っていた
・CFA用に SpatialAnchorManager を使いやすく
参考リンク: https://github.com/microsoft/MixedRealityLearning
Azure Spatial Anchorの組み込み
SpatialAnchorManager に実装されている関数 関数の担う役割
CreateSessionAsync() セッションを作成、作成完了まで待つ
StartSessionAsync() セッションの開始完了まで待つ
StopSession() セッションを停止する
ResetSessionAsync() セッションを再起動し開始まで待つ
DestroySession() セッションを破棄
Session.CreateWatcher(AnchorLocateCriteria criteria)
戻り値 : CloudSpatialAnchorWatcher
指定された条件(ID等)に一致するアンカーを探索する
CloudSpatialAnchorWatcher.Stop() アンカー探索を中止する
CreateAnchorAsync(CloudSpatialAnchor anchor) アンカーをクラウドにアップロードし完了を待つ
DeleteAnchorAsync(CloudSpatialAnchor anchor) クラウドのアンカーを削除し完了を待つ
セッション: アンカーに関する一連の流れ (空間認識、空間アンカーのアップロード ・探索・維持)
Azure Spatial Anchorの組み込み
空間アンカーや、空間アンカーのセッションの状態を
CFAのあらゆる機能に通知させる必要がある
例)
・空間アンカーの探索を終えたらARコンテンツを開始する
・空間アンカーのセッションを破棄し終えたら、トップ画面に戻る
・エラーハンドリング
CFAの実装で得た知見、工夫
・Azure Spatial Anchorの組み込み
・Boltでノードを自作
・HoloLens2対応
Boltでノードを自作
★狙い
・モック制作を非エンジニアに協力してほしい(理想)
→ビジュアルプログラミングで作成してもらう
・処理を「パーツ」として扱える
→使い回し、組み合わせ、入れ替えで制作を高速化
Boltでノードを自作
・Boltが提供する Unitクラスを継承してノード自作
・計30を超える自作ノード
・DLLを覗いて模倣
・C#コーディングと共存が可能
例)オブジェクトを非表示にする
CFAの実装で得た知見、工夫
・Azure Spatial Anchorの組み込み
・Boltでノードを自作
・HoloLens2対応
HoloLens2対応
インターフェースを介して様々な単機能をモジュール化
HoloLens2対応
エディタ上
(タップ操作のシミュレート)
モバイル
(タップ操作)
エディタ上
(ハンドトラッキングの
シミュレート)
HoloLens2
(ハンドトラッキング)
共通の処理として扱えるので開発効率UP
HoloLens2対応
・CloudAnchor がモジュール構造である理由
→より有用なARクラウド(GCAなど)が登場した際には乗り換えが可能なため
CFAについて
CFA公式サイト:https://cfa.upft.jp/
配置ツール:https://youtu.be/2kEmFZztMgs
作成ツール:https://youtu.be/Ho1iUGs3vfk
ビューワーアプリ:https://youtu.be/kCEGEoQXCNw

AR開発高速化!「CFA」作りました!