Godot EngineでApple Vision Proアプリをビルドする
はじめに
2024年、ゲーム開発の世界に新たな可能性が生まれました。オープンソースのゲームエンジンであるGodot Engineが、バージョン4.5 dev 5からApple Vision ProのプラットフォームであるvisionOSをサポートするようになったのです。
なぜGodotでvisionOS開発が注目されるのか
Godot Engineは、Unity、Unreal Engineに続く第3の選択肢として、多くの開発者に支持されているゲームエンジンです。完全無料でオープンソース、軽量でありながら高機能という特徴を持ち、インディーゲーム開発者を中心に急速に普及しています。
一方、Apple Vision Proの開発環境は、これまで主にSwiftUIやRealityKit、Unity(Unity PolySpatial)に限られていました。Godotのサポートにより、より多くの開発者がvisionOSアプリケーション開発に参入できる道が開かれたことになります。
現時点での制限事項
ただし、現状はまだ開発の初期段階であり、できることは限られています:
visionOS特有の機能(ハンドトラッキング、空間アンカー、パススルー等)はまだ実装されていません。また、4.5 dev 5ではエクスポートテンプレートが提供されていないため、実際に試すためにはソースコードからのビルドが必要です。
本記事では、4.5 dev 5を使用してGodot EngineをソースからビルドしてvisionOS向けのテンプレートを作成する手順を詳しく解説します。すでに4.5 beta以降をお使いの方は、「実際にアプリをビルドしてみる」のセクションまでスキップしてください。
Godot Engineをソースからビルドする
前準備
GodotをビルドするにはmacOS環境が必要です。以下、公式ドキュメントに基づいた手順を説明します。
必要なツールをインストールします:
- Apple Developer Program に登録する
- Xcode - App Storeから最新版をインストールします(visionOS SDKも含まれています)
- Homebrew - macOS用のパッケージマネージャー
- SCons - Godotのビルドシステム
-
Bluetoothゲームパッド(オプション) - ゲームパッド対応のプロジェクトを動作確認する場合は、Apple Vision ProにBluetoothゲームパッドを接続する
筆者はNintendo Switch ProコントローラーをBluetooth接続して動作しました。
# Homebrewがインストールされていない場合
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# SConsをインストール
brew install scons
Godot本体のビルド
Godotのソースコードを取得してビルドします。初回のビルドには、マシンスペックにもよりますが、約10〜20分程度かかります。
# Godotのソースコードをクローン
git clone https://github.com/godotengine/godot.git
cd godot
# macOS用のエディタをビルド(Apple Silicon向け)
scons platform=macos arch=arm64
ビルドが成功したら、以下のコマンドでGodot Engineが起動することを確認します:
./bin/godot.macos.editor.arm64
起動時にセキュリティ警告が表示された場合は、システム環境設定の「セキュリティとプライバシー」から実行を許可してください。
visionOS用エクスポートテンプレートのビルド
次に、visionOS用のエクスポートテンプレートをビルドします。これは実際のアプリをビルドする際に必要になります。
# デバッグ版テンプレートのビルド
scons platform=visionos use_lto=no vulkan=no target=template_debug simulator=no arch=arm64
# リリース版テンプレートのビルド(バンドル生成付き)
scons platform=visionos use_lto=no vulkan=no target=template_release simulator=no arch=arm64 generate_bundle=yes
ビルドオプションの説明
-
platform=visionos
: visionOSプラットフォーム向けにビルド -
use_lto=no
: Link Time Optimizationを無効化(ビルド時間短縮のため) -
vulkan=no
: Vulkanサポートを無効化(visionOSでは不要) -
target=template_debug/release
: デバッグ版またはリリース版のテンプレート -
simulator=no
: 実機向けビルド(シミュレータは現在未サポート) -
arch=arm64
: Apple Silicon向けアーキテクチャ -
generate_bundle=yes
: 最終的なzipファイルを生成
ビルドが完了すると、bin/godot_visionos.zip
が生成されます。
テンプレートのインストール
ビルドしたテンプレートをGodotエディタが認識できる場所に配置します。
- Godotエディタを起動します:
./bin/godot.macos.editor.arm64
- 適当なプロジェクトを開く、もしくは新規プロジェクトを作成します
- メニューから「エディタ」→「エクスポートテンプレートの管理」を開きます
- ダイアログ内の「フォルダーを開く」ボタンをクリックします
- 開いたフォルダに、先ほどビルドした
bin/godot_visionos.zip
をvisionos.zip
という名前でコピーします:cp bin/godot_visionos.zip ~/Library/Application\ Support/Godot/export_templates/4.5.dev5/visionos.zip
これで、visionOS向けのエクスポートが可能になりました。
実際にアプリをビルドしてみる
デモプロジェクトのダウンロード
まずは試しにPlatformer 3D Demoをビルドしてみましょう。
このデモはゲームパッド操作が必要なため、事前にApple Vision ProにBluetoothゲームパッドを接続してください。
プロジェクトの設定
- Godotエディタでプロジェクトを開きます
- 「プロジェクト」→「プロジェクト設定」メニューを選択
- 「高度な設定」をチェックします
- 「レンダリング」→「テクスチャ」→「VRAM圧縮」→「Import ETC2 ASTC」をチェックします
エクスポートの設定
- 「プロジェクト」→「エクスポート」メニューを選択
- 「追加」ボタンをクリックして「visionOS」を選択
- 最低限、「Apple Store Team ID」と「Bundle Identifier」を設定します。他の項目は必要に応じて設定します
- export_presets.cfgファイルをテキストエディタで開く
-
codesign/apple_team_id="YOUR_TEAM_ID"
の行を見つけて削除 - または値を空にする:
codesign/apple_team_id=""
ビルドと実行
エクスポート設定が完了したら、「エクスポート」ボタンをクリックしてXcodeプロジェクトを生成します。生成されたプロジェクトをXcodeで開き、ビルドするとApple Vision Pro実機で実行できます。
トラブルシューティング
ビルドエラーが発生する場合
- Xcodeが最新版であることを確認してください
- visionOS SDKがインストールされていることを確認してください(Xcode → Preferences → Platforms)
- ビルドログを確認し、必要な依存関係がすべてインストールされているか確認してください
テンプレートが認識されない場合
- Godotのバージョンとテンプレートのバージョンが一致していることを確認してください
- テンプレートファイルの名前が正しいことを確認してください(
visionos.zip
)
まとめ
本記事では、Godot Engine 4.5 dev 5でvisionOSアプリをビルドする手順を解説しました。現時点では2D/3Dアプリケーションの基本的な機能のみのサポートですが、Godotコミュニティの活発な開発により、今後さらに機能が拡充されていくことが期待されます。
visionOS固有の機能が実装されれば、より多様なアプリケーション開発が可能になるでしょう。Godotの軽量さと使いやすさは、visionOSアプリ開発の新たな選択肢として大きな可能性を秘めています。
参考リンク
- Godot Engine公式サイト
- Godot 4.5 dev 5リリースノート
- Godot公式ドキュメント - Compiling for macOS
- Apple Vision Pro開発者向けドキュメント
今後のアップデートにより、RealityKitやUnity PolySpatialのようなアプリが開発できるようになることを期待しています。
Discussion