はじめに
普段、IT企業で働いてますプログラマー芸人のジンバと申します!
Unity × Immersal SDKでVPSを用いたARアプリを実装できます!現実空間に正確にオブジェクトを配置することができますよ!
通常、スマホを使い専用アプリでマッピングするのですが360度カメラでも可能です!手順を紹介します!
GoProなどで360度動画を撮影
360度動画のタイムラプスで撮影。(普通の動画だと容量が重くなるため。)
撮影の際、蛇上に歩くと良いらしい
を参考に
撮影した360度動画をGoProプレイヤーなどで読み込みmp4ファイルを出力
.360ファイルを選択
ファイル→エクスポート。5.6Kだと失敗したので4Kにした。
動画→画像に
上のリポジトリをダウンロードし、
immersal-python-tools-for-customer-main\mapping\360\フォルダをVSCodeで開く。
先ほど読み込んだmp4ファイル(例:BigRoad360.mp4)を配置し、画像の切り出し先のフォルダ(例:BigRoadOutput)を作成する。
save-frames-from-video.pyのスクリプト内のパスを先ほどのものに修正して実行する。
interval_seondsはタイムラプスの1枚の画像あたりの秒数を指定する。(もし1秒で30枚の画像なら、1/30 = 0.03秒)
するとフォルダに分割された画像とjsonファイルが生成される。
点群データ作成
3D空間データを生成するソフトウェア「Agisoft Metashape」をインストールし、先ほどの画像ファイルをドラッグアンドドロップする。
Reference Settingsが以下画像のようになっているか確認。
Tools→Camera CalibrationでCamera typeをSphericalに変更する。
Workflow → Align PhotosでEstimatedにして実行する。
すると点群が表示される。
Workflow -> Build Model, Workflow -> Build Textureを実行する。
すると3Dモデルが表示される。
ファイル出力
Export → Export Modelでfbxやglbモデルを出力。fbxとjpgが出力されるはず。後でUnityで使う。
Export → Export Camerasでxmlファイルを出力
Immersalにデータを送信
VSCodeを開き、先ほど動画を置いた階層にxmlファイルを配置
metashape-xml-to-json.pyのxmlと画像フォルダのパスを修正して実行する。
jsonファイルの中身が変更されていることを確認する。
submit-images-and-json-with-retries.pyのトークンやフォルダパス、マップ名を修正して実行する。
実行後、Immersalデベロッパーページのマップ一覧を見ると追加されている。
告知
ご覧いただきありがとうございました!
普段、IT企業で働いてます「プログラマー芸人」ジンバです!
YouTubeもご覧くださいー!↓