無料でオープンソースの ゲームエンジン Godot 4.1 がリリース!

CGソフト

2023年7月6日(現地時間)- 無料でオープンソースの ゲームエンジン Godot 4.1 がリリースされました。

新機能ハイライト

このアップデートの主な変更点と新機能のハイライトは以下の通りです。

パフォーマンス

Godotのゲームは、ノードのツリーとして構築されます。ノードは、ゲームエンティティのためのエンジンの基本ビルディングブロックです。ノードの追加と削除は、エンジンが非常に頻繁に行う必要がある操作なので、可能な限り高速である必要があります。

高速ハッシュマップ

4.1では、高速ハッシュマップを使用するようにアルゴリズムが変更され、子ノードの追加と削除が数倍速くなりました。その結果、一般的でないノード操作は若干遅くなり、ベースとなる Node クラスのメモリフットプリントは 10% 増えますが、これはすべての Godot ユーザー、特にノード操作を多用する複雑なプロジェクトにとって大きなメリットとなります。

マルチスレッド(実験的)

このバージョンでは、 Juan Linietsky氏によって始められた機能である、シーン用の実験的なマルチスレッドも導入されています。新しいノードプロパティは、ノードがどのように処理されるかを、連続して、または並列で完全にコントロールできるようにします。

この機能はエッジケースを見つけるために広範なテストが必要なため、現在は実験的とされており、本番環境での使用はまだ推奨されていませんが、この機能によりシンプルなコントロールで最新のハードウェアを最大限に活用するための基盤が整うとされています。

また、Pedro J. Estébanez氏は大量のマルチスレッド読み込みの問題と制限の修正を行いました。

キャッシュ

レンダリング面では、Vulkanレンダラーにパイプラインキャッシュが追加されました。

Godotはすでにシェーダーをキャッシュし、シェーダーのコンパイル時のもたつきを軽減していましたが、パイプラインのコンパイルは依然として、いくつかのもたつきとロード時間の低下につながっていました。

パイプラインのコンパイル時のスタッタリング問題は解決には程遠いものの、これは正しい方向への一歩であり、RenderingDeviceベースのレンダリングバックエンドを使用する際のロード時間のわずかな短縮につながるとされています。

このキャッシュはプロジェクト設定でオフに切り替えることができ、Godot 4.1ではデフォルトでオンになっています。

この改善は、速度低下の原因すべてに対応するものではありませんが、今後のリリースでも取り組む予定となっています。

コア

Godotにモデルをインポートする際、モデルが後ろ向きになってしまうという問題がよくありました。

Juan Linietsky 氏、Tokage 氏、Aaron Franke 氏は、この問題に対処するためのいくつかの方法に取り組みました。実装された変更の1つは、エディター上で前後のカメラの向きを入れ替えるものです。また、look_at()関数に、カメラのマイナスZ軸の代わりにモデル空間を前方の参照として使用する引数が追加されました。これらの変更は、パス・フォローに関する長年のバグの修正にも役立ちます。

また、今回のアップデートでは、 lawnjelly氏によるフレームデルタスムージングも Godot 4 に導入されました。これにより、動きの流動性が大幅に改善され、よりスムーズなゲームプレイが可能になります。このオプションはデフォルトで有効になっていますが、VSync も有効になっている場合にのみ機能しますのでご注意ください。

スクリプティング

GDScript

これまでGDScriptでは、同じスクリプトの複数のインスタンス間でデータを共有するために、リソースやオートロードを使用する必要がありました。

George Marques氏のおかげで、代わりに静的変数を作成して使用できるようになりました。静的変数は、各インスタンスではなくクラスにデータを格納するので、クラスのすべてのインスタンス間で共有されます。変数を静的変数にするには、スクリプトの先頭で定義した変数の前にstaticキーワードを追加します。

Godot 4 で追加された GDScript の素晴らしい機能は、指定したクラスのドキュメントページを自動的に生成することです。

ocean 氏によるシステムの再構築が行われ、列挙型を型として扱うようになり、生成されるドキュメントがより正確になりました。また、変数や関数の定義の上にドキュメントを配置する代わりに、インラインドキュメントを使用できるようになりました。

var my_variable = 10 ## This is an inline docstring

C#/.NET

今回のリリースでは、C#とGDScriptの機能を同等にすることに焦点が当てられました。

Godot4.1からは、 Raul Santos氏と Will Nations氏のおかげで、ファイルに[GlobalClass]属性を追加することで、C#でもこれが可能になりました。また、[Icon]属性を使って、グローバルクラスにユニークなアイコンを付けることもできます。

このリリースでは、C#で作成されたプロジェクトはまだモバイルやウェブプラットフォームにエクスポートできないことに注意してください。この制限の解決は、おそらく2023年末の.NET 8のリリースに依存します。つまり、モバイルおよびウェブプラットフォームを有効にするための作業は、今年後半にしか本当の意味で開始できないということになります。

GDExtension

Godotには、エンジンを再コンパイルすることなく、C++のような低レベル言語をゲームスクリプト言語として使用する独自の技術が搭載されています。

今回のリリースではまだベータ版ですが、GDExtensionはスクリプト機能の面でGDScriptやC#にさらに近づき、GDExtensionを使って新しいビジュアルシェーダノードを実装したり、エディタプラグインを作成したりできるようになりました。

開発チームはまた、将来のリリースでAPIが変更されても、Godot 4.1のために書かれたコードが動作し続けることを保証するための後方互換性システムも実装しました。しかし、GDExtension の重大な問題を修正するために、4.1 では重要な互換性の破壊を行う必要がありました。そのため、既存の Godot 4.0 エクステンションは 4.1 用に移植し、再コンパイルする必要があります。

最後に、GDExtension API を将来拡張できるようにするために、もう一度アーキテクチャについて多くの作業が行われました。

エディター

●Godot 4では、プロジェクトやエディターの設定、さまざまなポップアップに使用する複数のウィンドウをサポートしています。このバージョンから、ドキュメントをフローティングウィンドウに切り離したり、シェーダーエディタを含むスクリプトエディタを切り離して別のモニターに配置したりすることもできるようになりました。

それに加えて、エディタはウィンドウのレイアウトを記録するようになったので、エディタを閉じて再び開いたとき、多くの場合、中断した場所から始めることができるようになりました。

●Godot 4.0では、型付き配列を定義してエクスポートするオプションと、個々のノードをインスペクタにエクスポートするオプションが導入されましたが、この2つを組み合わせることはできませんでした。Godot 4.1以降では、ノードの配列をインスペクタにエクスポートできるようになりました。

●プロジェクトマネージャーで、個々のプロジェクトにタグを割り当てたり、タグでプロジェクトをフィルタリングできるようになりました。これにより、Godot プロジェクトの検索がより簡単になりました。

レンダリング

パーティクルタービュランス

パーティクルタービュランス(Particle turbulence)は、よりクリエイティブなコントロールを提供するために、アーティストのフィードバックに基づいてこのバージョンで作り直されました。タービュランスは、多くの最新ゲームで見られるような、豊かで広大なエフェクトを作成するために広く使用されています。

新しい3Dノイズを使ったより複雑なフォグボリューム

新しい3Dノイズテクスチャを使用すると、ボリュームフォグの密度を簡単にコントロールでき、特定の領域で薄くすることができます。NoiseTexture3Dはパーティクルアトラクターベクターフィールドの作成にも使用でき、パーティクルに影響を与える風のシミュレーションに便利です。

今後の予定

Godotのレンダラーにはまだ多くの改良が予定されていますが、そのほとんどは将来のリリースに搭載される予定です。レンダリングチーム(およびすべてのレンダリング貢献者)は、新機能よりもバグ修正と安定性を優先しました。特に、3D GLES3レンダラーはまだ完成していませんが、今後数ヶ月の間にかなりの作業が行われる予定です。

ナビゲーション

Godot 4.0では、AIナビゲーションのためのリアルタイム回避機能が導入されましたが、これは単一平面に限定されていました。

このリリースでは、 smix8 氏によって回避アルゴリズムが完全に書き直され、より良い挙動とより大きな制御ができるようになりました。回避は2Dまたは3Dで行えるようになり、飛行中のエージェントが地上を歩くエージェントの上を移動することが可能です。

それに加え、レイヤーを使って、どのエージェントがどのエージェントを避けるかをコントロールしたり、あるエージェントが他のエージェントを押しのけるように優先順位を割り当てることができるようになりました。

改善されたナビゲーションがどのように機能するかについてはこちらをご覧ください。

プラットフォームサポート

Godot のゲームをすべての一般的なプラットフォームでプレイできるような取り組みが行われており、4.1でもGodot 4.0と同じ機能が提供されています。

エンジンの標準バージョンと.NETバージョンの両方ですべてのデスクトッププラットフォームにエクスポートでき、プロジェクトでC#を使用しない場合はモバイルとウェブにエクスポートできます。4.1の時点では、特定の最新機能のベンダーのサポートが不十分なため、Webエクスポートにはまだいくつかの制限があります。

macOSのChromeのようなWebGL 2のサポートが不十分なブラウザは、残念ながらGoogleが修正するか、専用のWebGL 1 / GLES2レンダラーをサポートするために多大な努力を払わない限り対処できない問題に悩まされています。また、SharedArrayBufferのサポートに必要なCORSヘッダを設定できないホスティングプラットフォームでのウェブゲームの設定が複雑であることも分かっています。これは主にSafariがcoep:credentiallessヘッダーのサポートを実装するかどうかに依存しますが、ChromiumベースのブラウザとFirefoxはすでに問題なく動作します(特にitch.ioで公開する場合)。

回避策は現在調査中となっています。

その他すべてのバグ修正と改善の完全なリストはこちらから

次のリリースについて

すでに Godot 4.2 の開発が進められており、4ヶ月後にリリースされる予定です。開発チームは、このペースを維持し、信頼できるリリース・サイクルを守ることに尽力しているとことです。

開発をサポート

次のリンクからエンジンの開発をサポートすることができます。

金銭的な支援以外にも、質の高いバグレポートの作成、コードベースへの貢献、ドキュメントの作成、チュートリアルの作成(ドキュメントや自分のスペースで)、さまざまなコミュニティプラットフォームで質問に答えたり役立つヒントを提供したりすることもサポートにつながります。

ダウンロード

Godot Engine の最新版のダウンロードはこちらから


Godot Engine ウェブサイトへGodot 4.1 is here, smoother, more reliable, and with plenty of new features

コメント

Translate »
タイトルとURLをコピーしました