![見出し画像](https://assets.st-note.com/production/uploads/images/123247228/rectangle_large_type_2_b9572b1f3b4b090ed3109e7f2c7e21ee.png?width=1200)
[Unity]Cesium for Unityを使ってみた
こんにちは! エンジニアの宮Pです😎
今回は、Cesium for Unityを使って3Dの街並みを眺めてみました😀
Cesiumとはオープンソースの3D地理空間可視化プラットフォームです。これを使うと世界中の地形、街並みを3Dで再現することができます。
弊社がある水道橋も、ちゃんと再現されるんでしょうかね…?🤨
まずは基本機能を導入して、様子をみてみます。
前提条件として、Unityのバージョンが2021.3.2f1 以降である必要があります。少し前のUnityを使っている人は、予めアップデートしておきましょう。
Cesium ionの登録
まずはCesiumのアカウントを作成してサインアップします😉
Epic GmaesやGithub、Googleアカウントの他、メールアドレスでもアカウントを作成できます。
自分に適したものを選んでアカウントを作成してください🙂
![](https://assets.st-note.com/img/1701478575658-zi1mhlbLvg.png?width=1200)
私はメールアドレスを使ってアカウントを作成しました。
英語で記載されたページですが、パスワードやプライバシーポリシーへの同意など見慣れた項目ばかりなので、悩むところはないと思います😉
Unityプロジェクトの設定
Unity Hubで、3D (URP)のテンプレートを使って新しいプロジェクトを作ります。
(気が付けば色々なテンプレートが増えました……これらの違いも一度調べておこうかと思います)
![](https://assets.st-note.com/img/1701247061305-pNnbZd9chc.png?width=1200)
動作環境によってはプロジェクト作成時にエラーが発生することがあるかも知れません。
私の手元でも警告メッセージが出ましたが、RetryやContinueで続けることで稼働することを確認しています😉
Unityが起動したら、Cesiumパッケージをプロジェクトに読み込みます。
EditメニューからProject Settingsを選び、Packace Managerを選択します。
ダイアログ内のScope Registriesに次の内容を入力して、[Save」ボタンで保存してください。
Name : Cesium
URL : https://unity.pkg.cesium.com
Scope(s) : com.cesium.unity
![](https://assets.st-note.com/img/1701479107375-SQuPG7ITQ4.png?width=1200)
今度はWindowメニューからPackage Managerを開きます。
上部メニューの「+」ボタンの横は「Packages: In Project」に設定されていると思います。
これを「My Registries」に変更してください。
![](https://assets.st-note.com/img/1701320764250-QtmTU3uMdg.png?width=1200)
My Registriesには、先ほどのCesiumが登録されています。
右下の[Install]ボタンで、このパッケージをインストールします。
![](https://assets.st-note.com/img/1701479793322-MZbBCAgJhY.png?width=1200)
インストール中にUnityの再起動を促されるので、Yesをクリックしてください。
![](https://assets.st-note.com/img/1701480237260-wiwnpJrXFr.png)
再起動後、UnityのメニューにCesiumが追加されます。
このCesiumメニューからCesiumを選び、ダイアログ下部の[Connect to Cesium ion]ボタンをクリックしてください。
![](https://assets.st-note.com/img/1701508398787-AiZtGnh0bP.png)
各アセットへのアクセス許可を尋ねられますので、[Allow]ボタンをクリックしてUnityに戻ります。
![](https://assets.st-note.com/img/1701508561943-lPy3WGiBHJ.png?width=1200)
Cesiumが有効になったら、Tokenメニューを選択して新しいトークンを作成します。
Unityのプロジェクト名が表示されているはずですが、必要に応じて名前を変更し、[Create New Project Default Token]ボタンをクリックします。
![](https://assets.st-note.com/img/1701509222637-BHocjvHYvm.png)
このトークンがCesium ionに登録されます。
下のリンクからCesiumアカウントのページを開いて、新しいトークンが追加されたことを確認してください。
このようにトークンが追加されています。
![](https://assets.st-note.com/img/1701509559046-DPRL8590sL.png?width=1200)
カメラの調整
プロジェクトにCesiumのアセットを追加します。
CesiumメニューからCesium World Terrain + Bing Maps Aerial imageryの[+]ボタンをクリックしてください。
HierarchyビューにGlobal Volumeが追加され、じわじわと山並みの画像が表示されます😮
![](https://assets.st-note.com/img/1701510273963-gf6zD9HSEW.png?width=1200)
Global Volumeの他にCesiumGepreferemce、Cesium World Terrainも追加されています。
Inspectorで設定項目を選択すると、ツールチップが表示されます。気になる項目をチェックしてみてください。
![](https://assets.st-note.com/img/1701510834222-bwca7Ogpcf.png)
メインカメラの設定
モニターをGameに切り替えて、ゲーム画面をプレビューしてみます。
![](https://assets.st-note.com/img/1701510168410-0WcjNqMU95.png?width=1200)
手前の山は見えますが、その先には何も描画されていません🙄
モニターをSceneに戻して、HierarchyのMain Cameraを選択してください。山並みの上に、カメラの視野を示す白いフレームが表示されます。
カメラの視野はこの範囲に限定されるため、その先が見えていません。
![](https://assets.st-note.com/img/1701511885144-47Dq79byrB.png?width=1200)
視野を少し広げて、山並みが少し先まで見えるようにします。
Inspectorビューのプロパティの中に、Clipping Planes Near / Farという項目があります。
Nearはオブジェクトを表示するカメラからの最小距離です。この値を大きくするほど、カメラ近くのオブジェクトが何も表示されなくなります。
一方、Farはオブジェクトを表示する最大距離です。今は、この値が小さいために遠くの地形が表示できていません。
Nearを1に、Farを10,000に変更してみます。
![](https://assets.st-note.com/img/1701513202435-TtpSqGgPUB.png?width=1200)
カメラの視野が大きくなり、右下のMain Cameraのプレビューの中で遠くの景色が描画されるようになりました。
Gameビューの景色も、先ほどとは見違えるようになりました。
![](https://assets.st-note.com/img/1701582640665-Zmax83JOef.png?width=1200)
ところで、この山並みはどちらのものなのでしょう?🙄
CesiumGeoreferenceのプロパティに書かれている緯度:39.7、経度:-105.2の場所をgoogle mapで検索してみます。
![](https://assets.st-note.com/img/1701582428100-B4JcIXD9xB.png?width=1200)
どうやらアメリカ合衆国コロラド州にある山のようです🙄
自分には馴染みのない場所なので、弊社のある水道橋周辺を見てみます。
以前にGeospatial APIでサンプルを作った時に計測した、弊社の緯度・経度をを使います。
次の値を入力してみます。
Latitude:35.7
Longitude:139.7
Height:1000
どこかの町のような場所が出てきました😮
![](https://assets.st-note.com/img/1701582009496-6W7BiOcrKR.png?width=1200)
しかしながら、何となく見た目がのっぺりとしています。
これは、Cesium World Terrainに建物の情報が含まれていないためです。
Cesium OSM Buildingsデータセットを追加して、建物も再現してみます。
CesiumメニューからCesium OSM Buildingsの[+]ボタンをクリックします。
ニョキニョキとビルが生えてきました😁
![](https://assets.st-note.com/img/1701582095957-rVnb8vCZ0O.png?width=1200)
とはいえ、水道橋っぽさは今一つ見えてこないですね😅
Cesiumには他にも色々なパッケージが用意されていますので、もう少し何かを足す必要があるのかも知れません。
まとめ
ひとまず、今回はここまで。
Cesiumを使うとリアルな地形を簡単に表現できることが解りました。
位置情報を利用したアプリ制作にも使えそうですね!
次回もCesium for Unityの使い方を調べていく予定です😄
私たちは、お客様のご要望にあわせて様々なコンテンツ、アプリを制作いたします。
ご質問やご要望は、<お問い合わせページ>よりお送りください。
この記事が気に入ったらサポートをしてみませんか?