夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

Microsoft Map-SDK for Unity その7 Map-SDKの基礎

本日はツールの調査記事です。

本日はツールの調査枠です。

MicrosoftからはMixedRealityToolkit以外にも多くの開発者向けのSDKが公開されています。

 その一例として[Microsoft Map-SDK for Unity(以下Map-SDK)]を調査しています。

 今回はMap-SDKの基礎を調査します。

〇Map-SDKの基礎

・Map-Session

f:id:Holomoto-Sumire:20200911090415j:plain

 [Map-Session]コンポーネントはMap-SDKのコアなコンポーネントで、ユーザーの資格情報などを提供します。

APIキーに相当する[Developer Key]を記入することでサーバーとの通信を行います。

 f:id:Holomoto-Sumire:20200911090458j:plain

 [Developer Key]の取得にはBing Mapの開発者登録が必要です。

redhologerbera.hatenablog.com

・Show Map Data in Editor

f:id:Holomoto-Sumire:20200911090848j:plain

[Show Map Data in Editor]はUnityのエディタ上でマップを表示するかの設定です。 特に問題がない限りオンのままで使用します。

・Autodetect Region

[Autodetect Region]は自動で領域を特定するという意味ですが、よくわかりませんでした。 

・Autodetect Language

[Autodetect Language]はユーザーの環境から自動で言語を設定する機能です。

f:id:Holomoto-Sumire:20200911091400j:plain

筆者の環境では[日本語]を使用しているため[Japanese]が設定されます。

地図上で住所の表記などでこの設定が影響されますが、問題として使用しているテキストのフォントによっては日本語など対応していない場合があります。

その場合□□□というように文字化けしてしまうのでフォントを変更するか[Autodetect Language]を解除して手動で設定します。

f:id:Holomoto-Sumire:20200911091400j:plainf:id:Holomoto-Sumire:20200909085648j:plain

・Language Changed(System Language)イベント

[Language Changed(System Language)]イベントは言語が変更されたときに発火するイベントです。

f:id:Holomoto-Sumire:20200911092329j:plain

例えば実機で実行中にユーザーが言語を日本語に変更した場合[あなたの言語は日本語されました]というテキストを表示することができます。

・Map Renderer

[Map Renderer]コンポーネントは地図データのストリーミングと描画を管理するコンポーネントです。

・Latitude Longitude

f:id:Holomoto-Sumire:20200911092852j:plain

緯度と経度です。描画する地図の中心の座標を指定します。 緯度と経度が分かれば世界中のどこでも表示することができます。(データがない地点を除き)

f:id:Holomoto-Sumire:20200911093324j:plain
緯度と経度を入力して熊本駅を表示

・Zoom Level

その名の通り地図の拡大率です。

f:id:Holomoto-Sumire:20200911093512j:plain

f:id:Holomoto-Sumire:20200911093555j:plain

f:id:Holomoto-Sumire:20200911093409j:plain

最小にすると世界規模で表示できます。

f:id:Holomoto-Sumire:20200911093641j:plain
Zoom Level最小

細大にすると車の形が識別できるレベルで大きくすることができます。

f:id:Holomoto-Sumire:20200911093729j:plain
Zoom Level最大

・Zoom LevelRange

Zoomできる値の値域を設定できます。

f:id:Holomoto-Sumire:20200911094028j:plain

・MapShape

[Map Shape]は地図を表示する形を正方形にするかシリンダー(円柱)にするかを選択できます。

f:id:Holomoto-Sumire:20200911094302j:plain

f:id:Holomoto-Sumire:20200911094341j:plain

f:id:Holomoto-Sumire:20200911094410j:plain

・Local Map Radius /Local Base Height

f:id:Holomoto-Sumire:20200911094525j:plain

地図のスケールを変更することができます。

・Map Collider Type

f:id:Holomoto-Sumire:20200911094700j:plain

[Map Collider Type]は描画する地図の当たり判定です。 MapをGestureで動かしたい、Map自体を動かしたいといった場合必要になります。

無し、ベースのみ、全体の3種類が設定できます。

・Map Terrain Type

f:id:Holomoto-Sumire:20200911094951j:plain

描画する際の地形のタイプを選択できます。

[Default]では立体的に建物が描画されます。

f:id:Holomoto-Sumire:20200911094410j:plain

[Elevated]は標高データのみで構成され高解像度の3Dモデルは使用されません。

f:id:Holomoto-Sumire:20200911095517j:plain

[Flat]は標高データ、3Dモデルどちらも使用されません。 フラットな地図になります。

f:id:Holomoto-Sumire:20200911095541j:plain

・Elevation Scale

f:id:Holomoto-Sumire:20200911095613j:plain

この値は地形などの立体の倍率です。大きくすると高い構造物はより高く、わずかな高さの差を大きくすることができます。

f:id:Holomoto-Sumire:20200911095810j:plain

・CastShadow

影を描画する設定です。

f:id:Holomoto-Sumire:20200911095915j:plain

影があることでより建物がリアルになります。

・ReceiveShadow

f:id:Holomoto-Sumire:20200911100016j:plain

他のオブジェクトから影を受ける設定です。 例えば雲などを配置すると影ができます。

f:id:Holomoto-Sumire:20200911101451j:plain

・Render Clipping Volume wall

マップのベースの設定です。

f:id:Holomoto-Sumire:20200911101637j:plain

 このチェックボックスをオンにすることで描画領域でくりぬかれた地形を埋めるように描画が行われます。

f:id:Holomoto-Sumire:20200911101710j:plain
Render Clipping Volume Wallがオン

 

f:id:Holomoto-Sumire:20200911101818j:plain
Render Clipping Volume Wallがオフ

 以上がMap-SDK for Unityの基礎になります。

 

〇サンプル