OSS ゲームエンジン Godot で 3D Tiles を表示する

## はじめに

2025年5月1日のCesium社の記事によると、オープンソースのゲームエンジンである [Godot Engine](https://godotengine.org) でも [3D Tiles](https://cesium.com/why-cesium/3d-tiles) が扱えるようになりました。

これまでも商用ゲームエンジン向けの3D Tilesを扱うためのプラグイン（Unity用の [Cesium for Unity](https://cesium.com/learn/unity) や Unreal Engine用の [Cesium for Unreal](https://cesium.com/learn/unreal)）は提供されていましたが、今回、ついにオープンソースのゲームエンジンにも対応したとのことで試してみました！

この記事は、実際の操作体験をまとめた備忘録です。ゲームエンジンの経験がほとんどなくても簡単に扱うことができたので、ぜひ、記事を見ながら試してみてください！

https://cesium.com/blog/2025/05/01/introducing-3d-tiles-for-godot-by-battle-road

本題に入る前に、まず3D Tiles と Godot Engine の概要について簡単に説明します。

#### 3D Tilesとは？

3D Tilesは、点群データや建築物の3Dモデル、フォトグラメトリなどの大規模な3D地理空間データをストリーミングするための標準仕様です。地理空間データの標準化機構であるOGC（Open Geospatial Consortium）で標準規格として認定されています。

https://cesium.com/why-cesium/3d-tiles

3D Tilesについて詳しく知りたい方は、以下の記事をご参照ください：

https://qiita.com/ciscorn/items/b646ac56b21a72ea810b

#### Godot Engineとは？

Godot Engine（読み方：ごどー）は、MITライセンスで提供されているオープンソースのゲームエンジンです。2D・3Dゲーム開発に対応しており、Windows、macOS、Linux、モバイル、Webなど、多様なプラットフォームへのエクスポートが可能です。独自のスクリプト言語GDScriptとノードベースの直感的な設計が特徴で、軽量かつ高速な開発を実現できます。

この記事を書くにあたり、はじめてGodot Engineをインストールしましたが、起動の速さに驚きました！（2秒で起動します）

https://github.com/godotengine

https://godotengine.org

## 3D Tiles For Godotとは？

3D Tiles For GodotはCesiumエコシステム助成金の支援を受けて [Battle Road](https://battleroad.digital) 社が開発したGodot向けのプラグインです。同社は惑星規模のモデリングとシミュレーションのためのプラットフォーム [AtomEngine](https://atomengine.com) の開発元でもあります。

https://godotengine.org/asset-library/asset/3976

https://github.com/Battle-Road-Labs/3D-Tiles-For-Godot

このプラグインはGodot 4用の拡張機能で、GDExtension（Godot 4から導入された外部プログラム統合の新機能）を使用して3D Tiles機能を実装しています。Godotの物理演算や衝突判定、キャラクターインタラクションにも対応しています。
Godot Engineユーザーにとっては、自身のコンテンツに容易に3D Tilesを取り込むことができるようになった、ということなのでしょうか？

::: note info
2025年6月4日現在、このプラグインはWindowsでのみサポートされています。
将来的には、LinuxやmacOSにも対応予定のようです。
:::

## Godotで3D Tilesを表示できると何が嬉しいのか？

正直、この点についてはよくわかっていません。

ただ、Godot Engineを操作して特に感じたのは、初心者でも扱いやすいということです。
あくまでも感覚的な部分ですが、UnityやUnreal Engineに初めて触れた時と比べて、やりたいことをどう実現すればよいかが直感的に理解しやすい印象でした。
必要最低限のボタンしかなかったり、システムの設定に応じて自動的に日本語表示になっていたり、細かい設定が不要な点がいいな、と感じています。

いずれにしても、3D地理空間データを扱うための新しい選択肢が増えたことは、開発者コミュニティにとって大きな意味があると思います。「Godot Engineのここがいいぞ！」という点があればぜひ教えていただきたいです！

## Godotで3D Tilesを表示する手順

それでは、やってみましょう！
ここでは、[3D Tiles For Godot](https://godotengine.org/asset-library/asset/3976) を利用して [Google Photorealistic 3D Tiles](https://developers.google.com/maps/documentation/tile/3d-tiles-overview?hl=ja) を表示するまでの手順を解説します。

1）Godot Engineを起動する（Godot 4.1以降の安定版を使用すること）

![Screenshot 2025-06-04 221245.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3762063/b90a9b73-ebd5-42bf-adbb-f9639df5dcd9.png)

2）新規プロジェクトを作成する

画面左上の［作成］ボタンをクリックして、新規プロジェクトを作成します。
レンダラーは「Forword+」を選択します。

![Screenshot 2025-06-04 224132.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3762063/d7201ef8-240e-4625-ad7a-7ee72d2e0b94.png)

3）[Godot Asset Library](https://godotengine.org/asset-library/asset/3976) からプラグインをダウンロードする
 
![スクリーンショット 2025-06-04 22.25.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3762063/cf5cb56b-4d83-4c81-aac9-71cb0e6cf8f5.png)

4）ダウンロードしたプラグインをプロジェクトに取り込む

ダウンロードしたプラグインのzipファイルを解凍し、「addons」フォルダと「bin」フォルダをそれぞれ作成したプロジェクトのフォルダに配置します。
プロジェクト構成は以下のようになります。

```
my_project/
├── addons/
│   └── cesium_godot/  <-- ここにプラグインのファイル群が入る
│       ├── panels/
│       ├── scripts/
│       └── visuals/
├── bin/               <-- ここにプラグインのバイナリファイルが入る
└── project.godot
```

5）プラグインを有効化する

メニューから［プロジェクト］→［プロジェクト設定］を選択します。
プラグインタブで［オン］にチェックを入れればcesium_godotが有効化されます。

![Screenshot 2025-06-04 230632.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3762063/8e592940-a29b-4250-bba4-5d8eaa61beb3.png)

6）Cesium ionに接続する

プラグインが有効化されたら、Cesium Ion Panelが表示されます。
まずは、［Connect to Cesium ION］ボタンからCesiumアカウントに接続しましょう。
ブラウザで「Succesfully authorized!」と表示されたら、Godotに戻りましょう。

![Screenshot 2025-06-04 231451.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3762063/8b6706a1-bbcc-476b-a538-54bfe4a4c59f.png)

7）タイルセット等を追加する

以下の手順で、新規3Dシーン、タイルセット、ダイナミックカメラを追加します。
Cesium3DTilesetとCesiumGeoreferenceがカメラのインスペクタープロパティに自動的に追加されるので、基本的には「追加」ボタンをポチポチすればOKです。

1. シーンパネルから「3Dシーン」を追加します。
1. Cesium Ion Panelから「Google Photorealistic 3D Tiles」を追加します。「Blank 3D TIles Tileset」を追加したら、アセットIDとデータソースURLでカスタマイズすることもできます。
1. Cesium Ion Panelから「Dynamic Camera」を追加します。

8）再生ボタンをクリック！

ここまできたら、再生ボタンをクリックするだけでシーンが読み込まれて、3D Tilesが表示されます！
キーボードのWASDでカメラを前後させたり、マウスの右クリックでビューを移動することができます。

![oooutput.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3762063/4146fa82-e4ec-4fca-8837-40c6a1921313.gif)

より詳しく解説された記事がありましたので、こちらもご参照ください：

https://qiita.com/oho-sugu/items/1f6405480ad6fa5b6152#%E7%92%B0%E5%A2%83

## おわりに

以上のように、Godot Engineで簡単に3D Tilesを表示することができました！
Godot Engineの動作の軽さは驚きです！ぜひ試してみてください！