0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Immersal×360度カメラでVPSマッピング

Last updated at Posted at 2025-08-05

はじめに

普段、IT企業で働いてますプログラマー芸人のジンバと申します!
Unity × Immersal SDKでVPSを用いたARアプリを実装できます!現実空間に正確にオブジェクトを配置することができますよ!

通常、スマホを使い専用アプリでマッピングするのですが360度カメラでも可能です!手順を紹介します!

GoProなどで360度動画を撮影

360度動画のタイムラプスで撮影。(普通の動画だと容量が重くなるため。)

3d3324d9-3b18-4082-80cf-93e9da0eee09.jpeg

撮影の際、蛇上に歩くと良いらしい

ba412996-9878-4fbf-8f9a-93012e02c236.png

を参考に

撮影した360度動画をGoProプレイヤーなどで読み込みmp4ファイルを出力

.360ファイルを選択

7efc674f-d79d-4475-aa66-58f30b120604.png

ファイル→エクスポート。5.6Kだと失敗したので4Kにした。

3236bf04-4a52-44cb-9d0d-b356d31c0a3d.png

動画→画像に

上のリポジトリをダウンロードし、
immersal-python-tools-for-customer-main\mapping\360\フォルダをVSCodeで開く。
先ほど読み込んだmp4ファイル(例:BigRoad360.mp4)を配置し、画像の切り出し先のフォルダ(例:BigRoadOutput)を作成する。

0a0af348-f9d0-4ab0-ad05-c3938b8eaa4b.png

save-frames-from-video.pyのスクリプト内のパスを先ほどのものに修正して実行する。
interval_seondsはタイムラプスの1枚の画像あたりの秒数を指定する。(もし1秒で30枚の画像なら、1/30 = 0.03秒)

10d1377e-c631-432f-b940-eb36bb9975a0.png

するとフォルダに分割された画像とjsonファイルが生成される。

edf0baad-3d51-4064-9db6-46bacc04be5e.png

点群データ作成

3D空間データを生成するソフトウェア「Agisoft Metashape」をインストールし、先ほどの画像ファイルをドラッグアンドドロップする。

Reference Settingsが以下画像のようになっているか確認。

84a9b70e-19b0-4c43-9319-628a8ad9e638.png

Tools→Camera CalibrationでCamera typeをSphericalに変更する。

bb96982a-ba41-4e1d-9fc1-ce861f453a4a.png

60338af7-72bb-4ffe-a1ae-97093df8a35d.png

Workflow → Align PhotosでEstimatedにして実行する。

0137a66f-a39b-44ec-a7ca-db9d9c6e0dbf.png

c8164a97-0c2f-477d-8dd0-6095ce61e43b.png

すると点群が表示される。

994c8dd1-6d52-40fb-a988-5298ee9a78bb.png

Workflow -> Build Model, Workflow -> Build Textureを実行する。

234b939a-1fb7-4b40-99a5-06e036d247c2.png

07c3feb2-0b5f-4d3a-830d-243b951fe0f6.png

すると3Dモデルが表示される。

7b733adc-d6c5-4032-b22e-e988425cee65.png

ファイル出力

Export → Export Modelでfbxやglbモデルを出力。fbxとjpgが出力されるはず。後でUnityで使う。

e303cfcd-c06c-4a00-8bec-cdba03b0926d.png

a0ecd599-05c6-4536-a106-835183023ee4.png

Export → Export Camerasでxmlファイルを出力

bd3693e5-d116-40a7-9022-e3a090322ee4.png

caaca75c-729e-4679-8c94-971a69c2c910.png

Immersalにデータを送信

VSCodeを開き、先ほど動画を置いた階層にxmlファイルを配置

96cd9374-7b9c-458e-be8a-9a5ffcd282f1.png

metashape-xml-to-json.pyのxmlと画像フォルダのパスを修正して実行する。

86a096ef-afd5-47df-a55e-c59d1a03466e.png

jsonファイルの中身が変更されていることを確認する。

9a50f1e0-281f-4e3a-b0a7-69ba20780a5e.png

submit-images-and-json-with-retries.pyのトークンやフォルダパス、マップ名を修正して実行する。

77bd5cbd-8259-43ab-9855-afd39134f1c3.png

実行後、Immersalデベロッパーページのマップ一覧を見ると追加されている。

7ff65487-3610-4966-a3b3-b5b509d93967.png

告知

ご覧いただきありがとうございました!
普段、IT企業で働いてます「プログラマー芸人」ジンバです!
YouTubeもご覧くださいー!↓

初テレビ.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?