chronote

ゲーム創作活動の備忘録、日々の雑記など。

utymapで現実世界を散歩してみた

 

現実世界を散歩するとか、当たり前すぎて何言ってるの?という感じですね。

今回は、以前からやりたかった「現実世界の地図データ」を用いて、

アプリに現実世界を取り込んでしまおう!という試みです。

 

地図データは、オープンソースで公開/制作されている「OpenStreetMap」が使えます。

OpenStreetMap Japan | 自由な地図をみんなの手に/The Free Wiki World Map

 

このOSMのデータを解析して3Dモデルを描画するしくみとしては、

すでに「ActionStreetMap」というライブラリがあります。

こちらもオープンソースですね。

actionstreetmap.github.io

 

しかし、このActionStreetMapは開発が終了?しており、

後継の「utymap」を現在開発中のようです。

github.com

 

今回はこのutymapのデモを動かすところまで、を試してみました。

 

utymapの環境準備と各種ソースのビルド

utymapはプラットフォーム非依存の「core」DLLと、

Unity向けのデモソースが付属されています。

これらの環境を用意するための奮闘記録はWikiにまとめています。(丸2日かかった)

utymap [chronote.wiki]

 

デモで遊んでみる

起動できたら、「PlayGame」を選択します。

f:id:chronote:20170104180258p:plain

「Start location」の「Name」欄に地名を入力し、「Search by name」すると、

検索結果がいくつか出てくるので、訪れたい場所を選びます。

(漢字もうけつけるが、たまに中国の地名と被っていることもある)

 

「Use device location」というのは恐らく、Androidなんかで

端末から位置情報を取得できるのではないかと思いますが、

今回はWindowsPCでの実行なので使えませんでした。

 

「Select scene」でデモの種類を選択すると、始まります。

  • 「Street level」:キャラクターを操作して歩く3Dデモ
  • 「Bird eye level」:真上から見た平面図デモ(操作不可)
  • 「Globe level」:地球儀風デモ(操作不可)

↓Street level はこんな感じ

f:id:chronote:20170104181226p:plain

建物はだいたいキューブになっています。

高さが一律で適当なのか、超高層ビル群みたいになっています。

マップはタイル式になっており、端まで行くと

ストリーミングで次のマップが読み込まれます。これぞオープンワールド

 

推奨される使い方としては、マップデータをローカルで持っておいて

オフラインで動くようにすること、なので、あくまでデモ用ですね。

 

よし、家の近所から南下して、淀川越えをやってみよう!

と思って歩いたところ、

f:id:chronote:20170104181610p:plain

橋がない!詰んだ!(もちろん水面ポリゴン上も歩けますが)

 

f:id:chronote:20170104181927p:plain

 

プロシージャルメッシュでTerrainを生成している都合上、制約は多いですね。

  • トンネルは作れない(高架下をくぐる、とかできない)
  • 標高データの反映はまだ(山、坂道、丘)
  • 特徴的な建物は自前で差し替えが必要

 

現実世界を取り込むのは難しい・・・ということがこのデモでわかりました。

ただキューブが並んでいるだけでは、今どこにいるのかさっぱりわからないのです。

しかし、「埋め込まれたスポット情報を基になにかをする」

ということが期待できるので、可能性は広がりましたね!