ゲームエンジンGodot 4の概要とそのVR開発について

45.3K Views

December 14, 22

スライド概要

2022年12月に開催されたXR Kaigi 2022の登壇資料です。講演動画はこちらです。
https://www.youtube.com/watch?v=58f8Hzi24zI&t=195s

スライド最後の「Godotメモ」「Godot VR開発メモ」のページはこちらです。
https://tech.framesynthesis.co.jp/godot/
https://tech.framesynthesis.co.jp/godot/vr/

profile-image

株式会社フレームシンセシス代表取締役兼テクニカルディレクター。VRとGodotが好き。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

ゲームエンジンGodot 4の概要と そのVR開発について こりん(@korinVR) XR Kaigi 2022 2022/12/14

2.

自己紹介 本名 ハンドル 職業 古林 克臣(こばやし かつおみ) こりん(@korinVR) 株式会社フレームシンセシス 代表取締役CEO 兼VRエンジニア

3.

略歴(VR関連) 2013年~ Oculus Rift DK1を購入 個人でVR作品を制作・展示していたら いつのまにか本業に 2015年~ 施設・イベント向けVRアトラクション制作 2019年~ Questアプリや簡易メタバースシステム開発 2022年12月 VR開発会社「フレームシンセシス」設立

4.

本セッションの構成 前半: ゲームエンジンGodotの概要とバックグラウンドを紹介 後半: Godot 4のXR機能の紹介 下のようなVRウォークスルーを実際に作って現在の状況を確認する "Tanabata evening - Kyoto inspired city scene" (https://skfb.ly/6TsvL) by Mathias Tossens is licensed under Creative Commons Attribution (http://creativecommons.org/licenses/by/4.0/).

5.

Godotとは

6.

Godot(ゴドー)とは • オープンソースの2D/3Dゲームエンジン • Juan Linietsky氏らが2007年頃から開発 • 2014年にMITライセンスでオープンソース化 • Patreonや企業スポンサーから支援を受けつつ アクティブに開発が進められている • 2022年11月にGodot Foundationの設立が発表

7.

Godotの現在の普及状況 3Dゲームエンジンとしては Unity・UEに次ぐポジション GitHubのスターが現在約62,000

8.

Godotの現在の普及状況 2Dも強いためインディーゲームやゲームジャムでの使用が盛ん 昨年はメジャーIPでの使用事例が

9.

Godotを使用したゲームの例 Showcaseページの2022年のデモリール

10.

Godotを使用したVRゲームの例 Nothing to Declare - Godot Reel (Short Gameplay Showcase)

11.

W4 Games社 Juan Linietsky氏らがGodotのエコシステムの強化を目的として設立 Linuxに対するRed Hatのような位置づけと説明されている (エンタープライズサポートやNDAのあるゲームコンソールへの対応等) シードで850万ドル(約12億円)を調達 Red Hatの創業者らが出資

12.

大型アップデートのGodot 4 2023年に安定版がリリース予定 Godot 3系からの新機能が多数 (18ページくらいのベータ版リリースノート) 破壊的変更も多数 ノード名が全面的に変更 例: ARVROrigin→XROrigin3D まだベータ版で不安定なんですが… このセッションではGodot 4に行ってしまいます!

13.

Godotに注目する理由 Unity Unreal Engine 5 Godot Cocos Creator 3系 JavaScript製3Dライブラリ Three.js / A-Frame Babylon.js Rust製のBevy Engine 等々… ライセンス料金が必要ない (デリケートな話題だが…) UnityやUEと系統が似ている オープンソース ネイティブとウェブどちらにも対応 純粋に技術的に面白いポイントがある OpenXRとWebXRにネイティブ対応

14.

“Godot”の由来と読み方 公式のプレスキットより サミュエル・ベケットのフランス語の戯曲「ゴドーを待ちながら」 「戯曲と同じように発音すること」

15.

“Godot”の由来と読み方(裏話) 「逆転裁判3」のゴドー検事 もともとGodotはただのコードネームだったのが アルゼンチン文化にちなんだ名前をつけようと言っていたら 英語版「逆転裁判3」のゴドー(Godot)の本名が ディエゴ・アルマンド(アルゼンチン出身のマラドーナの名前に由来)だったため 正式名称に

16.

Godotはどんなエンジン?

17.

エンジンの概要 • UnityやUEのようなエディタつきゲームエンジン • C++製(Unity、Unreal Engineと同じ) • Godotのエディタ自体がGodotで動いている • スクリプトは独自言語のGDScript • C#も使用可能(.NET 6) • 軽量なエンジンで起動や実行ファイルの出力が非常に高速 • XRに標準で対応(エンジン本体にOpenXR・WebXRモジュール)

18.

デモ:Godotの基本 (約6分)

20.

グラフィックス • 座標系はY-upの右手座標系 • 3DモデルはglTF 2.0(.glb/.gltf)がインポートできる • シェーダーはGLSLベースの独自言語(.gdshader)

21.

リアルタイム大域照明SDFGI Linietsky氏のUE5のLumenとの比較ツイート

22.

物理エンジン • Godot Physics(Godot 3でのBulletから独自エンジンに) • ソフトボディがある

23.

ネットワーク周り • Godot 4で大きくリファクタリングされた(未調査です、すみません……) • ENet / WebRTC / WebSocketでノードの同期とRPC • サーバー・クライアントもフルメッシュも可能 • Nakamaというオープンソースのマルチプレイヤーサーバー(とBaaS)がある

24.

GodotのXR対応について

25.

XR対応について Bastiaan Olij氏がキーパーソン Meta (Facebook) Reality Labsから開発費の支援を2度受けている Meta Quest対応やVulkan対応等 Godot 4ではOpenXRモジュールとWebXRモジュールがビルトイン WebXRモジュールはDavid Snopek氏が開発

26.

GodotのXR対応の基本 カメラリグのノードを作成 XROrigin3D XRCamera3D XRController3D OpenXR / WebXRのインターフェースを取得してXRモードを有効化 Godot XR Tools(UnityのXR Interaction Toolkitに相当)

27.

デモ:GodotのVRのセットアップ (約3分)

29.

Meta Quest対応 ※Godot 4 beta 6時点の手順です ※現時点では描画周りに不具合があります - Project > Install Android Build Template…を実行 - Godot OpenXR Loadersのプラグインをandroid/pluginsフォルダに格納 - (AssetLibでインストールできるようになりそう) - Project > Export…のAndroidの設定で - Use Custom Buildをオン - Godot Open XR Metaをオン - XR FeaturesのXR ModeをOpenXRに

30.

WebXR対応 ※Godot 4 beta 6時点ではまだヘッドセット内で表示できていません (2022-11-20に動作させるプルリクが出ました) WebXRモジュールのインターフェースを取得して WebXR Device APIのセッション開始・終了等のシグナルを処理する VRボタンを配置して押すとWebXRのセッションを開始するようにする 込み入っているので具体的な手順はサイトでフォローアップします!

31.

Godot XR Tools UnityのXR Interaction ToolkitやUE5のVirtual Realityテンプレートに相当 • 移動・ターン • 壁を登る • ボタンやレバー等を操作する • UIを操作する • 物を持つ • テレポート移動 等のコンポーネント一式

32.

デモ:Godot XR Toolsで VRウォークスルーを作ってみる (約12分)

41.

気づいたこと(現時点の課題)

42.

レンダリング ※あくまで現在ベータ版であること(バグフィックスがされていく)に注意 (Godot 4 beta 6時点) MSAA、リアルタイムシャドウ、Mobileレンダリング等で著しいパフォーマンスロス Quest(Android)で色がおかしい(RGBのRとBが逆になる) WebXRでまだヘッドセット内で画面が出ていない(beta 5の後でプルリクが出た) V-SYNCを無効にすると空が表示されなくなる VRモードで起動するときにロゴがちらつく(何らかの描画周りの不具合?) SDFGI、現時点では移動やカメラの向きで激しいアーティファクトが発生 実装の解説スライドに“Can Work in VR”とあるので期待……!

43.

デスクトップ・VRモード両対応は? OpenXRのスイッチをオンにするとアプリ起動時に OpenXRが初期化されてヘッドセットが自動的にVRモードに Windowsでデスクトップモードで起動して あとからVRモードにするアプリはできない (両方のバージョンをビルドしておくしかなさそう)

44.

3Dアセットについて UnityのAsset StoreやUnreal EngineのMarketplaceのような 大きな有料アセットストアがない(AssetLibはあるが) Unity Asset StoreやUnreal Engine Marketplaceのアセットは 一部を除き他のゲームエンジン(たとえばGodot)でも使用可 ライセンスについては各自確認のこと

45.

最新デバイス対応はやはりUnity 新しいVR/AR関連デバイスがリリースされたとき 現状ではまずUnityやUEからSDKがリリースされる Godotがそのポジションになるにはまだ時間がかかりそう AppleがOpenXRに参加していない Godotは現在OpenXRとWebXRに対応 世間的にはこの2つがデファクトスタンダードになったが…

46.

それでもGodotを試す理由

47.

ビルド(エクスポート)が圧倒的に速い 辛いビルド待ちがない Meta QuestだろうがWebGLだろうがほぼ一瞬 トライ&エラーやイテレーションが爆速 現状GDScriptがJITコンパイルもAOTコンパイルも行っていないのはあるが (速度が必要な場合はC#やC++が使用できます) これで十分というケースは多いのでは

48.

無料で使える デリケートな表現(最近は特に)ですが… 気に入ったらPatreonでスポンサーになりましょう! 月10ドルでクレジットに名前が載ります

49.

オープンソース エンジンコードもGitHubのコミットもPRも全部見れる (アカデミックな用途にも良いのでは) OpenXRモジュールもWebXRモジュールも中身が見えてる David Snopek氏がWebXRモジュールの開発実況とかやっている MITライセンスだからこそ “The cube! The cube is here! We did it!”

50.

いつかはゴドーがやってくる……かも?

51.

情報源

52.

Godotに興味が湧いたなら 公式サイト・公式ブログ Juan Linietsky氏のツイートは熱いのでおすすめ GitHubのIssueやPRはチェック!(godot-proposalsも) Godotの公式Discord 日本語Discordサーバー(Godot Engine Japan Community)

53.

フォローアップ Godotのメモと GodotのVR開発のメモ 「Godotメモ」で検索を! 今回紹介しきれなかった諸々 不具合情報やアップデート等 気づいたら更新していきます

54.

Let’s wait for Godot! こりん(@korinVR)