ArcGIS Maps SDK for UnrealEngineとPLATEAUで遊ぼう

# ArcGIS Maps SDKで遊ぼう
内容としてはほぼ下の記事に書いてある内容です。みんなもArcGISMapにPlateauのモデルを生やして遊ぼう

https://developers.arcgis.com/unreal-engine/

大体Webページごと日本語に翻訳してもいけます
![HighresScreenshot00000.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2257391/b456e30e-d3d2-1cb2-ed38-9d8d847a0c97.png)
こんなんが一時間ぐらいで作れます

目次
・[ArcGISの開発者用アカウントを作る](#arcgisの開発者用アカウントを作る)
・[UEのプラグインを入れる](#ueのプラグインを入れる)
・[地図を表示する](#地図を表示する)
・[PLATEAUを読み込む](#plateauを読み込む)
・[プレイできるようにする](#プレイできるようにする)

### ArcGISの開発者用アカウントを作る
https://developers.arcgis.com/sign-up/

※2025/1/31追記
5024年5月ごろにライセンス周りの大幅な整備があり、ArcGIS　DeveloperアカウントはArcGIS Location Platformアカウントに変わりました。
無料で使用できる点、任意の従量課金制の点、商用利用が個人法人問わずに可能な点について変更はありません。


ArcGISの開発者用アカウントは無料で作成することができます。（ArcGISOnlineの方のアカウントの作り方は知らないので割愛します）
マップの読み込み量に応じて従量課金制となっていますが
・無料分が広大で個人で使う分にはそうそう使い切れない
・アカウント作成日から一か月ごとに無料枠のリセットあり
・従量課金をオンにしてクレジットカードを登録しなければ無料枠が終わった時点で読み込まれなくなる
システムなのでほぼ無料といっても差し支えありません。（※あくまで開発者用アカウントの話です）

使用量が気になったときはログイン後、ダッシュボード→最近のAPIキー→キーの上の使用状況の表示から確認できます

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2257391/ff05bb03-83db-7c79-4d65-1a1f4b4a9588.png)

ログインはメールアドレスではなく名前なのでお間違いないよう ~~（筆者は間違えてログインできない！とパニックになりました）~~

### UEのプラグインを入れる
https://developers.arcgis.com/downloads/#unreal-engine

~~ArcGISのUEプラグインは2023年10月14日現在
UE5.0
UE5.1
UE5.2
に対応しています~~

2024年12/3更新
・UE5.3
・UE5.4
・UE5.5
対応に変更になりました
最新バージョンはV 1.7.0です。

この記事では
プラグインのバージョン v 1.3.0
UEのバージョン　5.2.1
を使用しています

プラグインの入れ方はプロジェクトファイルのPlugins下にプラグインを突っ込む方法です
わからない方はこちら

新しいプロジェクトにプラグインを入れる

https://developers.arcgis.com/unreal-engine/install-and-set-up/add-the-plugin-to-a-new-project/

既存のプロジェクトにプラグインを入れる

https://developers.arcgis.com/unreal-engine/install-and-set-up/add-the-plugin-to-an-existing-project/

リビルドの警告が出ますがYesを押して続行してください（若干時間がかかりますがちゃんと起動します）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2257391/0ad64c89-2ce0-81d8-210f-b8e8309a6529.png)

プラグインのチェックがついていることを確認します

### 地図を表示する
https://developers.arcgis.com/unreal-engine/maps/

左上のモード選択からArcGISを起動します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2257391/d422a270-f10d-7aae-d65d-18975106b89c.png)

こんなタブがでてきます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2257391/a1b4fc47-a194-3dbe-cd77-f9db84e70a20.png)

地球全体を表示させたい、かなり広範囲を飛び回りたい、地面が球状になっていないと困る場合はGlobal、
小範囲でいい場合はLocalを選びましょう。
Globalはこの後入力した緯度経度の地点が真上に来るように表示されます。

公式には Enable Large　Worldsにチェックを入れてくださいとありますが現在その項目は削除されている模様なので飛ばして大丈夫です。とりあえず動きます。

#### Globalの場合
OriginePositionを開いて緯度経度を入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2257391/3f4decf6-79a3-0a2d-ed8d-e1e56f70caba.png)
ややこしいですがLongitudeが経度、Latitudeが緯度です。
Altitudeは高度らしいですがひとまず触らなくても大丈夫です。WKID（空間参照）も同様に触らなくて大丈夫です。
Createボタンを押します。

#### Localの場合
OriginPositionを開いて緯度経度を入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2257391/a39c38d6-c2da-cebe-089f-631a4576a675.png)
Enable Extentにチェックを入れてMapextentに上で入力したのと同じ緯度経度を入力します。
Extent Shapeはマップの切り抜き方で、正方形・長方形・円から選ぶことができます。数字はメートル単位です。
Cleateボタンを押します。

この時点ではまだ地図は表示されません。

カメラタブに移動してカメラをCreateボタンで追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2257391/7edaa9c2-1936-5315-b899-46e550eacf3d.png)
ArcGISは、ArcGISのカメラを通さないとマップが表示されないようになっているようで、ひとまずカメラがないことにははじまりません。（後からプレイヤーのカメラに追加することができます）

Anthタブに移動してAPIキーを入力します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2257391/4f42e6eb-fca0-193c-29a2-b0bca7cf7d26.png)

ArcGISのアカウントに移動て、右上のダッシュボードを押します。
APIキーが表示されるのでコピーしてきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2257391/d806c493-6706-7f96-2c42-1510411e1478.png)

コピーしたキーを
APIキーにコピーします。

Bacemapに移動して地図の見た目を決めます。
写実的な見た目にしたいのでImageryを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2257391/0197d11a-5b67-48e1-8e01-414a4af9f52a.png)

地図が読み込まれました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2257391/e8037981-af12-eec9-d728-bdda38d177fc.png)

Localで生成していると、なぜかEnable Extentのチェックが外れて広大な範囲が読み込まれています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2257391/e12696c5-a271-43a4-a3bf-184aa6060063.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2257391/3914eeec-2fb5-b9e8-f0c7-a30dfa0545fb.png)
再度チェックをつけるときちんと制限された範囲が出てきます。

### PLATEAUを読み込む
PLATEAUの建物のメッシュは公式がレイヤーを配布しており、PLATEAUのプラグインを入れなくても表示することができます。

https://livingatlas.arcgis.com/en/home/

PLATEAUと検索すると出てきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2257391/34e97472-ba01-a8e7-c98e-b435b6b0f2c7.png)

好きな範囲を選択して開きます。
スクロールしていくと右下の方にあるURLをコピーします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2257391/6ae1f72d-17dc-fc17-0747-f63811dbfc08.png)

UEに戻りLayerのタブを開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2257391/86a1388d-26ad-0e44-978d-a4763d33662d.png)
Typeを3DObjectに変更します。
SourceにコピーしてきたURLを貼り付けます。
Nameに任意の好きな名前を入れます。一応日本語などは使わないこと推奨。（c++のシステムっぽいので）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2257391/3f727605-eae2-bc7e-87e0-61bf68564fbb.png)
入れ終わったらAddを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2257391/d0cc2c62-7041-8f87-6f32-b334bc075b3b.png)
モデルが表示されました。
Lod2がある範囲は2が、それ以外は1が表示されます。

### プレイできるようにする
現状、マップはシミュレーションやプレイを押すと読み込まれなくなってしまいます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2257391/9af5a382-55c9-5941-2fc9-26b2584dd327.png)

これは大体追加したDefalutPawnがとんでもない位置にすっ飛んで行ってるせいです。
選択して0，0，50000とかにしてやればちゃんと表示されるようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2257391/a034ddcc-5f54-fdb3-7ff2-db11c7b7b157.png)

じゃあDefaultPawn以外でプレイしたい場合はどうすんねん、という話ですが、PlayerになるPawnにArcGISのカメラを追加してやることで解消できます。
ThirdPersonCharactorにカメラを入れてみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2257391/7dd44b22-50d0-4cb6-471d-76a9d76bf3c2.png)
DefaultPawnを削除してThirdPersonCharactorを配置します。
空中に浮かせておかないと読み込みよりも地面をプレイヤーが通過するのが早くて落下してしまいます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2257391/9cc9e945-dbe5-b01c-7c57-b67069936380.png)
ArcGISのタブを開きます。
SetttingのタブからEnableMeshCollidersにチェックを入れます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2257391/8c5fb475-679f-83f6-29b3-d8e6b4893bc4.png)
プレイしてみます。
<iframe width="560" height="315" src="https://www.youtube.com/embed/9jaoac0BHqI?si=eTBixJbW9HzCwbIh" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
いけましたね。

DefaultPawnを近くに置いておくことでLevelSequenceで動画の撮影もすることができます。
初期の読み込みさえ考慮すれば上空は十分使えそうですね。
<iframe width="560" height="315" src="https://www.youtube.com/embed/RjPm3phHhb8?si=Y8hscgt_1VnEtV4R" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>

ArcGIS for UEの使い方は以上です。
みんなもUEでArcGISを使って遊ぼう！