utymapで現実世界を散歩してみた
現実世界を散歩するとか、当たり前すぎて何言ってるの?という感じですね。
今回は、以前からやりたかった「現実世界の地図データ」を用いて、
アプリに現実世界を取り込んでしまおう!という試みです。
地図データは、オープンソースで公開/制作されている「OpenStreetMap」が使えます。
OpenStreetMap Japan | 自由な地図をみんなの手に/The Free Wiki World Map
このOSMのデータを解析して3Dモデルを描画するしくみとしては、
すでに「ActionStreetMap」というライブラリがあります。
こちらもオープンソースですね。
しかし、このActionStreetMapは開発が終了?しており、
後継の「utymap」を現在開発中のようです。
今回はこのutymapのデモを動かすところまで、を試してみました。
utymapの環境準備と各種ソースのビルド
utymapはプラットフォーム非依存の「core」DLLと、
Unity向けのデモソースが付属されています。
これらの環境を用意するための奮闘記録はWikiにまとめています。(丸2日かかった)
デモで遊んでみる
起動できたら、「PlayGame」を選択します。
「Start location」の「Name」欄に地名を入力し、「Search by name」すると、
検索結果がいくつか出てくるので、訪れたい場所を選びます。
(漢字もうけつけるが、たまに中国の地名と被っていることもある)
「Use device location」というのは恐らく、Androidなんかで
端末から位置情報を取得できるのではないかと思いますが、
今回はWindowsPCでの実行なので使えませんでした。
「Select scene」でデモの種類を選択すると、始まります。
- 「Street level」:キャラクターを操作して歩く3Dデモ
- 「Bird eye level」:真上から見た平面図デモ(操作不可)
- 「Globe level」:地球儀風デモ(操作不可)
↓Street level はこんな感じ
建物はだいたいキューブになっています。
高さが一律で適当なのか、超高層ビル群みたいになっています。
マップはタイル式になっており、端まで行くと
ストリーミングで次のマップが読み込まれます。これぞオープンワールド。
推奨される使い方としては、マップデータをローカルで持っておいて
オフラインで動くようにすること、なので、あくまでデモ用ですね。
よし、家の近所から南下して、淀川越えをやってみよう!
と思って歩いたところ、
橋がない!詰んだ!(もちろん水面ポリゴン上も歩けますが)
プロシージャルメッシュでTerrainを生成している都合上、制約は多いですね。
- トンネルは作れない(高架下をくぐる、とかできない)
- 標高データの反映はまだ(山、坂道、丘)
- 特徴的な建物は自前で差し替えが必要
現実世界を取り込むのは難しい・・・ということがこのデモでわかりました。
ただキューブが並んでいるだけでは、今どこにいるのかさっぱりわからないのです。
しかし、「埋め込まれたスポット情報を基になにかをする」
ということが期待できるので、可能性は広がりましたね!