CrossRoad

XRを中心とした技術ブログ。 Check also "English" category.

Godot EngineでVision OSアプリをビルドして動作確認しました

最近何度か分けて書いていましたが、きりがよいところまで確認できたのでまとめます。

参考のため、Godot Engineのインストールから書きました。

確認した環境

・Mac OS Sonoma14.5
・xcode 15.4
・Godot Engine v4.2.1 stable

1. インストールからビルドまでの手順

1.1 Godot Engine、xcodeをインストールする

こちらからインストールします。

godotengine.org

Xcode

Xcode

  • Apple
  • Developer Tools
  • Free
apps.apple.com

1.2 GodotVisionのリポジトリをコピーする

このリポジトリ「GodotVisionExample-main」をローカル環境にコピーします。

github.com

1.3 GodotVisionExample-main/Godot_Project を指定してGodot Engineでインポートする

「Godot Engineでプロジェクトをインポートする」は「Unityでプロジェクトを開く」と同じ意味です。

Godot Engineを開くと、最初にGodot Project一覧画面が表示されます。ここでimportボタンを押します

Project manager in Godot Engine

project.godotが入っているフォルダまで開いて、Select Current Folderを押します。

Select godot project file on Godot project manager

1.4 godot-joit_macos_editor.framework が開けないエラーメッセージを解決する

今回のGodot Engineプロジェクトを開くとエラーメッセージが出ます。解決方法はこちらをご覧ください。

www.crossroad-tech.com

1.5 Godot EngineでiOSエキスポート向け設定を行う(1回のみ)

こちらに書いた通りです。Godot EngineではUnityでの「ビルド」を「エキスポート」と呼びます。
www.crossroad-tech.com

ここまで実施したら、次はxcodeを開きます。

1.6 xcodeでGodotVisionExample.xcodeprojがあるフォルダを指定して開く

xcodeで開くと、このようなフォルダ構成になります。Package Dependenciesは開いた後で自動的に追加されます。

Folder configuration of GodotVision on xcode

パッケージインストールか、何かのindex整理なのか、初回に開いた時のみ、5分くらい処理が走っていました。

当初xcode15.2で試したときは上記のPackage Dependenciesが1つしか表示されずビルドしてもエラーになりました。xcode15.4にしたら解決したのですが、別の要因かもしれません。

1.7 (実機) Provisioning Profileを生成してからビルドする / (シミュレータ) そのままビルドする

公開されているxcodeプロジェクトは、そのままビルドして動作確認ができました。シミュレータの場合、Provisioning Profileで警告マークがつきますが、シミュレータでの動作確認は可能なので無視して問題ありません。

1.8 動作確認する

アプリが開くと、このような画面になります。

GodotVisionExample on VisionOS simulator

水平方向に5つのボタンがあり、Reload, Hello, Physics, Skeletons, CSG と書かれています。
HelloからCSGのボタンは、4つの独立したシーン (ここではUnityのsceneと同義) を読み込むようになっています。

このように、ボタンを押すことで異なるシーンを確認できます。

Works GodotVisionExample on VisionOS simulator

xcodeプロジェクトの中に入っているContentView.swiftを見ると、ある程度処理を追うことができます。

gist.github.com

2. その他Tips

2.1 Godot EngineでVisionOSアプリを開発するためのドキュメントサイト

こちらに一通り書いてあります。前半は今回私が書いたようなビルド手順です。後半はカメラ、インタラクション、audioなどの各種機能をどうやって使うか、ロードマップなどが書かれています。

godot.vision

2.2 GodotVisionとGodotVisionExampleリポジトリの違い

実は、公式サイトからはVisionOS開発について、少なくとも2つのリポジトリが公開されています。

github.com

github.com

GodotVisionは、Godot as a Library、ヘッドレスという言い方で説明できます。xcodeネイティブプロジェクトからGodot Engineの機能を呼び出してVisionOSアプリを開発するものです。Realitykitでレンダリングされます。

GodotVisionExampleは、xcode向けサンプルプロジェクトと、Godot Engineのプロジェクトが入っています。この記事では、このリポジトリにあったxcode向けサンプルプロジェクトを試しました。
これからになりますが、中に入っているGodot Engineのプロジェクトを書き換えることで好きな開発ができるはずです。

2.3 xcodeでParse Error: [ext_resource] referenced non-existent resource atが出る

ビルドまでの手順でxcodeをいきなり開いていると発生します。Godot EngineでGodot.projectを開いてからxcodeを開くと解決します。

3. おわりに

うまく行った手順を書いているので比較的あっさりしていますが、実際はプロジェクトを開くタイミングか開く位置の問題か、多数のエラーが出ていました。

途中、Apple Developer Programが必要かもと思って契約しましたが、たぶん関係なくできると思います。

中身の細かい処理についてはGodot Engineのgdスクリプトになるため、どこか機会があれば解説します。