616 Views
April 10, 24
スライド概要
この資料では、UnityのAR機能を箱庭アセットとして利用するための情報を 整理しています。
• 箱庭におけるARアプリーケーションの位置付け • UnityのARフレームワークの説明
• AR Foundationのチュートリアル
• 箱庭空間とARアプリ空間の位置関係
• 標準のトラッキング機能あれこれ
• 箱庭ARアプリの実装例
補足:箱庭空間とARアプリ空間の位置合わせについては、まだ研究中です。
TOPPERS/箱庭WG活動でUnityやらAthrillやらmROSやら触ってます。 最近は仕事の関係でWeb系の技術に注力しつつ、箱庭への転用を模索しています。 2023年8月1日:合同会社箱庭ラボに移動しました
箱庭(Hakoniwa) Unity-AR 合同会社箱庭ラボ 森崇
はじめに • この資料では、UnityのAR機能を箱庭アセットとして利⽤するための情報を 整理しています。 • 箱庭におけるARアプリーケーションの位置付け • UnityのARフレームワークの説明 • AR Foundationのチュートリアル • ARアプリ空間の座標系の整理 • 箱庭空間とARアプリ空間の位置関係 • 標準のトラッキング機能あれこれ • 箱庭ARアプリの原点設定⽅法 • 箱庭ARアプリの画⾯構成と仕様 2
箱庭におけるARアプリーケーションの位置付け • 箱庭のシミュレーション空間をARアプリケーションの空間にマッピングし、 • 現実の空間に箱庭シミュレーション空間のゲームオブジェクトを可視化する 箱庭シミュレーション空間 ARアプリの空間 箱庭実⾏PC ARデバイス 現実に存在 現実に存在しない 現実の空間 現実に存在
UnityのARフレームワークの説明 • AR Foundation とは何か • AR Foundation のアーキテクチャ
5 AR Foundation とは何か • UnityのARアプリケーション作成フレームワークです。 • マルチプラットフォーム対応のARアプリケーションを作成できます。 • Google ARCore XR Plug-in(Android) • Apple ARKit XR Plug-in(iOS) • OpenXR Plug-in(HoloLens 2, Oculus Quest, …) • 様々な拡張現実技術の機能を利⽤できます。 • デバイスのカメラからの画像をレンダリングしたり、2D画像を検出して追跡したり等 • サンプルプログラム • GitHubの以下で公開されています。 • https://github.com/Unity-Technologies/arfoundation-samples
AR Foundation のアーキテクチャ • 拡張現実のコア機能(トラッキング、平⾯検出、画像認識など)は、 • Subsystemとしてインタフェース定義され、各ベンダがプラグインとして機能提供している。 • Unity上のAR機能は、Managerが定義し、Unityシーン内でアタッチして利⽤する Manager セッション カメラ <<interface>> Subsystem ・・・ セッション カメラ ・・・ アタッチ Unity シーン AR⽤ゲーム オブジェクト Apple ARKit XR Plug-in Google ARCore XR Plug-in
AR Foundation のチュートリアル • インストール • シーンの設定 • 以下のゲームオブジェクトがシーン内に存在しないと、AR が適切に機能しません • AR Session • ターゲットプラットフォーム上で AR を有効にする • XR Origin • デバイストラッキングを有効にしてトラッカブルを Unity の座標系に変換する
ARアプリ空間の座標系の整理 現実空間の座標系 Y XR Originの座標系 ARデバイス ARアプリ起動時に決まる。初期位 置は外部指定可能 (デフォルトはARアプリ空間の原点) Y Y ARデバイスの向きや移 動に従って変化する Z Y Z 現実空間の原点 X X この ギ ャッ 必 プを 要 が ⼩さ あ る くす る X 前︓Z 上︓Y 右︓X (iPhoneの場合) ARアプリ空間の原点 Unityゲーム オブジェクト ARアプリ空間の座標系 Z X Z
箱庭空間とARアプリ空間の位置関係 • 箱庭空間の原点 • 現実空間とマッピングする • 緯度・経度・⾼度を原点とする • ARアプリ空間の原点 • 箱庭空間の原点と⼀致させる • 原点を⼀致させる⽅法︓ • デバイストラッキング • ARアプリを箱庭空間の原点で起動する • 画像トラッキング • 現実空間上に配置されたマーカーからの相対位置で • 箱庭空間の原点を特定し、ずれている場合は、 • ARアプリ内の周辺環境の位置全体をシフトする • その他 • 他にもいろんな⽅法があると思います。 • 次⾴で使えそうな技術を考察。 原点 (緯度, 経度, ⾼度) ゲーム空間では、(0, 0, 0)
10 標準のトラッキング機能あれこれ トラッキング機能 トラッキング対象 トラッキング内容 考察 デバイストラッキング ARデバイス デバイスの位置と姿勢 基本路線はこれを利⽤する 平⾯検出 現実空間の⽔平⾯や垂直⾯(床や壁) 平⾯の位置、⼤きさ、形 状 床や壁との距離から位置補正に使える︖ 画像トラッキング 現実空間の2D画像(事前定義済み) 画像の位置と動き マーカーを特定ポイントにおいておけば、位置補正に 使えそう オブジェクトトラッキング 現実空間の3Dオブジェクト オブジェクトの位置と動き 対象のオブジェクトとは具体的に何者かがよくわからな いので、利⽤できそうかどうか不明(要調査) フェイストラッキング 現実空間の⼈の顔 表情や顔の動き 位置情報の利⽤には使えなさそう ボディトラッキング 現実空間の⼈の体 体全体の動き 位置情報の利⽤には使えなさそう 点群 現実空間でカメラが捉えた特徴点 特徴点までの位置 対象の点群とは具体的に何者かがよくわからないの で、利⽤できそうかどうか不明(要調査) レイキャスト 仮想世界から現実世界へレイ投射した先 の平⾯/オブジェクト 投射した先までの距離 意図して位置合わせしたい場合に使うと良さそうだけ ど、マーカーでも良いような気はする。 アンカー 現実世界の特定の点 ︖(勉強中・・) まだよくわかってないが、使えそうな予感がした。
箱庭ARアプリの原点設定⽅法 • 原点設定⽅法 • Unityアプリ起動ポイントを現実空間の原点と⼀致させることで、 • 現実空間の原点とUnityアプリ空間の原点を⼀致させる • 原点設定時の課題 • 現実空間の原点とARデバイスでの観察ポイントが異なる • 現実空間の原点でARデバイスを起動させることが困難 • ARデバイスを観察ポイントまで移動させると⾃⼰位置に誤差が⽣じる • 課題解消⽅法 • ARデバイスは観察ポイントで起動する • 現実空間の原点と観察ポイントとのギャップ解消⽅法 • XR Originのオフセットを外部指定することで解消する • XR Originのオフセットは基本メジャーで⼨法を測定する • この際、オフセット調整⽤のアプリを⽤意することでオフセット位置合わせを簡易化できるようにする • ARデバイス起動後は⽅向の変更は許容するが、移動できないように固定する
箱庭ARアプリの画⾯構成 • 箱庭ARアプリは3画⾯構成です • 起動画⾯︓ • 各種パラメータ設定します • 観察ポイント調整画⾯︓ • 原点から観察ポイントまでのオフセット調整をします • 箱庭Fusion体験画⾯︓ • 箱庭Fusion体験します 観察ポイント 調整画⾯ 起動画⾯ 箱庭Fusion 体験画⾯
箱庭ARアプリの画⾯仕様(1/3) • ボタン • START︓箱庭Fusion体験画⾯へ移動します • ADJUST︓観察ポイント調整画⾯へ移動します • SAVE︓全パラメータを保存します • ⼊⼒パラメータ項⽬ • Session Position • 観察ポイントのオフセットです • Session Rotation • 観察ポイントの⽅向です • Sever(ARDev) • ARデバイスのIPアドレスと受信ポート番号を指定 • Client(Hakoniwa) • 箱庭PCののIPアドレスと受信ポート番号を指定 0, 0, 0 0, 0, 0
箱庭ARアプリの画⾯仕様(2/3) • カメラ映像 • 本画⾯に遷移するとARデバイスのカメラで現実空間と • ARアプリ空間のFusion映像を確認できます。 • 本映像を⾒ながら観察ポイントのオフセット値の調整を • ⾏うことができます。 • ボタン • Back︓TOP画⾯へ移動します • Save︓全パラメータを保存します • 表⽰される値 • 上側の座標︓ • 観察ポイントの位置座標 • ARアプリの原点から⾒た時の位置です • 下側の値︓ • 観察ポイントでのARデバイスの⽅向 • 参考として表⽰していますが利⽤されません ⿊い部分に現実空間のカメラ映像 が表⽰されます。
箱庭ARアプリの画⾯仕様(3/3) • カメラ映像 • 本画⾯に遷移すると • ARデバイスのカメラで • 現実空間とARアプリ空間の • Fusion体験ができます。