はじめに
実験で、現実の環境をUnity上に落とし込み疑似AR状態にして実験をする必要が出てきた.3DCADを勉強し始めたが、いつまでたっても実験に入れない.そこで、IpadのLiderでスキャンしたデータで疑似ARができるのか試してみた.
オブジェクト編とは?
現在、Liderスキャンの用途として主に2種類ある.一つ目が部屋まるごとスキャンする用途、二つ目がオブジェクト単体をスキャンする用途である.それぞれLiderデータのサンプリングの細かさを変えることでデータが大きくなりすぎないようにであったり、精度が粗すぎないように調整しているらしい.
今回は、オブジェクトをスキャンした結果について記述する.
試したアプリ
-
3d Scanner App™
無料iphoneLiderアプリ.古くからあるそうでネット上に情報も多い.主な使い方は【iPad Pro】3D Scanner App(LiDARスキャナ)で3Dモデルを簡単に作成するを参照. -
Polycam
課金型iPhoneLiderアプリ.最近のLiderアプリの中では評判が一番高い.値段も高い.主な使い方は【iPad / iPhone Proシリーズ】LiDARアプリ「Polycam」で3Dスキャンをするを参照.
撮影状況と撮影対象
撮影状況
iPadLiderは撮影環境によって色味(RGMセンサ)であったり、深度センシング(Liderセンサ)精度に差が出るらしい.そこで一応記述しておくと、大学のだだっ広い部屋でブラインドをして屋外の日光が入ってこないようにした.また、蛍光灯を全部点け特定の方向のみ光が強くならないようにした.
撮影機器はiPadPro(2020, 11inch).
撮影対象
今回撮影するのは、研究室で実験に使っているスピーカーである.以下に写真を示す.
表
裏
スピーカーは立方体で、そのスピーカーの底辺面積と近い大きさの台があったのでその上に乗せた.
結果
3d Scanner App™
このアプリで撮影してOBJで出力した.それをWindows3D Viewerで見ると以下のようになる.
凹凸感は再現しようと頑張っているのが見て取れる.実際に、スピーカーのコーン紙部分は若干再現されていた.しかし、全体的に歪んでしまっているのと、色の位置が合っていない場所があることがリアル感を失わせる原因になっていると感じる.
Polycam
このアプリで撮影したものを無料で出力しようとすると、glbという形式になる.これはCADなどで読み込めず加工がしにくそう.出力結果を以下に示す.
若干バリがあるが、きれいにできている.コーン紙の凹凸感も良く再現できていた.エンクロージャー表面が滑らかでなく凸凹してしまっているが、もうこれはしょうがないんだと思う.
UnityとOculusLinkで見てみる.
Polycamで撮ったデータをUnityとOculusLink,OculusQuest2を使ってみてみた.まず、Unityに入れた後のスクショを提示する.
Unityへのインポート方法はKhronosGroup/UnityGLTFでglbファイルの読み込みを試すを参照.
色味が本物より、ちょっと濃く感じる.自分がUnity強々ではないのでどうやればいいのかわからないが、標準設定だと色が暗くなるみたいだ.
次にOculusQuset2で見てみる.オブジェクトの条件は、Unity上でのスピーカースケールが(1, 1, 1)で、Positionが(0, 0, -2)である.つまり2 m地点に頭部と水平に提示したという条件で出している.
違いが分かりにくいというか、ほぼ同じようにOculusでも見ることができた.
一方サイズ感は小さく感じる.これはHMDの感じ方なのか、Lider側の問題なのか、Unity側の問題なのかはわからない.
スピーカーの高さを,目線でなく現実のスピーカーと同じ高さにして見比べてみると同じ大きさに見えた
おわりに
今回、実際にiPadProを用いてLiderスキャナを用いたオブジェクトの3Dスキャンを行いUnityに取り込んでみた.結果としては、悪くない精度で撮れたのではないかと思う.用途によっては精度が足りないかもしれないが、自分がやる実験には十分であった.次は部屋のスキャンをしてみたいが、それはQiitaに載せられるのだろうか?