Unity × Geospatial API
こちらをメインで参考に進める
Buildのタイミングで下記エラー。Intel Mac時代のbrew install cocoapodsした残滓が悪さしてたっぽい
code:sh
iOS framework addition failed due to a CocoaPods installation failure. This will will likely result in an non-functional Xcode project.
過去のpods消して、brew install cocoapodsで最新のをApple Silicon側で入れたら解消
(一応Ruby自体もシステムは触らないようにrbenvをこれを機に導入)
Unity-iPhone.xcworkspace側を開く必要がある(.xcodeprojをXCodeで開きビルドするとこける)
普通の3Dでプロジェクト作り始めると諸々面倒そうだったのでARで作り直す
動いた
https://scrapbox.io/files/6699388a73a900001ce34cd8.PNG
知識補完していく
VPSは自己位置推定。写真とGPSから3D空間(正確には3D空間は作って無くて良くて環境地図があれば良いはず)を作り出す。なのでアンカーでうったオブジェクトをtransformで動かすことできる。元を辿れば3DオブジェクトをVR的に配置するのと一緒 どれくらいの範囲を作成する?
Immersalでは、事前に対象地点の写真をアップロードして、自己位置推定用の空間マップを作っておきます。ARアプリでは、その空間マップを利用して自己位置を推定することで、現実空間の上に、さまざまな3Dモデルを重ねて表示できます。 あとまあ屋内であれば3D的な空間さえ作れれば問題ないので、それこそLiDARとかでマップ作って、そこに配置するとかは容易だろう
オクルージョンさせるためにはビルと同じ位置に3Dオブジェクト必要?
Streetscape Geometry APIを使用すると、ユーザーの周りの建物のジオメトリを取得できます。
(Geospatial APIは)VPSなので、正確な現在位置の情報を取得することだけができる。
建築物や地形のジオメトリを出現させる場合は、別サービスが提供する建築モデル(国土交通省のPLATEAUなど)と組み合わせる必要がある。
建築モデルは位置合わせをして出現させる必要がある。とてもめんどくさい。
LOD1やLOD2の建築モデルを個別にダウンロードして、位置合わせなどをする必要がある。
普通のGeospatial API使うだけだとARっぽく現実世界に投影 EditorでGoogle Earthのようなものを表示してそれを参考にGeospatialAPIのAnchorを置ける機能です。 Geospatial Creatorで渋谷の位置指定してオブジェクト置けば、実際に渋谷にオブジェクト置ける
直感的にオブジェクトを配置できる
この記事読む限りはノーコードでできますよ!みたいな強みっぽい
EditorでGoogle Earthのようなものを表示してそれを参考にGeospatialAPIのAnchorを置ける機能です。
ARCoreとは、Googleが開発しているARを体験するためのフレームワーク
ARKitとは、Appleが開発している、ARを体験するためのフレームワーク
ARFoundationは、ARCoreとARKitの差異を気にすることなくアプリを制作できるように開発されたUnityのフレームワークです
動物のリグ
35 Rig Library For Rigify 35種類の動物を簡単にリグを設定出来るライブラリとアドオンセット
スキニングなどは自分で行う必要があります。
Auto-Rig Pro: Rig Library 24種類の動物用リグがセットになったBlender用データ
これにする。スキニングもあるし、アニメーションもある
最初これ
3D Tilesデータを可視化するためのソフトウェア。今回のケースだとUnityで表示するために使っている雰囲気。普通にPlateauとかもそのまま3Dオブジェクトとして読み込めばUnityで表示できるが、合わせてCesium使うと「地球儀」みたいなイメージで緯度経度とか保って現実世界通りに配置できるみたいなイメージを現状は持っている https://scrapbox.io/files/669d7f090ccf8d001c9a0e7d.png
Webブラウザ上で動かせる精巧なバーチャル地球儀であり、3D TilesやKMLファイル等様々な情報を可視化することができ、空間情報の分析等のプラットフォームとして広く利用されています
ご存知の方も多いかと思いますが、Cesium は、3D のビューワーエンジンです。GIS のアプリを開発する上で必要な機能は備えており、さらに WMS や WMTS などの OGC の標準フォーマットや Esri のマップサービスなど多くのデータフォーマットに対応しています。 そう、GISアプリケーションを作るためのもの。なので今回はあくまでGeospatial Creatorとして「Unity上で地図を可視化」するために利用しているだけだと思う。その可視化を通して緯度経度上に物体を置けるので、結果として直感的に色々できて便利
なんかGeospatialCreatorなる名前で作ったプロジェクト、全然ARGeospatialCreatorOriginが出てこなくて辛い
前回Geospatial API検証したプロジェクトだと出てきた。謎。原因不明
自分の手元環境ではGeospatial API検証したものでのみGeospatial Creatorの環境構築ができたことを覚えておく
https://scrapbox.io/files/669fd1656c788c001c7cf8de.png https://developers.google.com/ar/geospatialcreator/unity/quickstart
https://scrapbox.io/files/669e89b14fa238001c2077d1.png
表示完了
https://scrapbox.io/files/669fb1a171fb05001dbe54f3.png
気軽に設置可能
https://scrapbox.io/files/669fb3875bd6e2001c639ce4.png
Build Settingsでシーンを設定
iOSとかにCesium導入できるか?
エディターのシーン ビューには、起点の指定した緯度と経度にあるマップ タイルが表示されるはずです。実行時には、アプリが AR カメラを使用することを想定しているため、Geospatial Creator は既に Cesium 3D マップ タイルセット オブジェクトを「EditorOnly」タグで構成しています。このため、ゲームの実行時にタイルがダウンロードまたはレンダリングされることはありません。これは、Cesium3DTileset オブジェクトのインスペクターから変更できます。Cesium のジオリファレンスと 3D タイルセット ゲームオブジェクトの詳細については、Cesium for Unity のドキュメントを参照してください。
ふたつSceneが含まれるがArf4の方だけうまくいった。ARf5もビルドはうまくいくが、ボタンが押せない。なのでARf4を利用する
https://scrapbox.io/files/66a1285d11ea2e001cdedc24.png
表示完了(駅前)