オープンソースの無料ゲームエンジン Godot 4.0 が正式リリース

CGソフト

2023年3月1日(現地時間)- 無料でオープンソースの ゲームエンジン Godot 4.0 が正式にリリースされました。

新機能ハイライト

コアの完全なオーバーホールとエンジンの全面的な書き換えが行われたこのメジャーアップデートバージョンは、3年以上にわたる17のアルファ、17のベータ、6つのRCを経て、この度正式なリリースとなりました。これまでで最大のリリースで制作期間も長いことを考えると、Godot 4.0は、通常のアップデートというよりも、 great rebuild だと言われています。

次の長時間動画で新機能を確認することができます。

内部的な変更の多くは紹介するのが難しく、初期の開発期間の多くは、既存の機能のリファクタリングや書き換えに費やされました。もう少し詳しく知りたいという方は、Godotのリード開発者であるJuan Linietsky(reduz)が、以前のブログ記事( 12 )でエンジンコアで行われた大きな改良をいくつか取り上げています。

3D & レンダリング全般のオーバーホール

Vulkanと新しいレンダラ

2つの新しいVulkanバックエンド(ClusteredとMobile)により、Godotレンダリングが進化しました。

今後、パフォーマンスの最適化のためにVulkanが活用されますが、一方で性能の低いハードウェアを持つユーザーに不利益を与えないようにすることが非常に重要とされています。そのため、OpenGLベースの互換性レンダラーを統合し、古いデバイスやローエンドデバイスをサポートすることを目標としています。また、WindowsとXboxをより良くサポートするために、 Direct3D 12レンダラーも開発中です。

さらに、Je06jm氏の貢献により、AMD の Fidelity FX Super Resolution 1.0 (FSR 1.0)を活用して、ゲームをスムーズに動かしながら低解像度でダイナミックかつ美しくレンダリングすることも可能になりました。FSR 2.1のサポートは、今後のリリースで予定されています。

ライティングとシャドウの改善

Godotのグローバルイルミネーションシステムが一から作り直されました。Godot 4では、大規模なオープンワールドに対応した、新しいリアルタイムグローバルイルミネーション技術を初めて導入しています。

SDFGI(Signed Distance Field Global Illumination)は、Juan氏が開発・実装したもので、詳しくはこちらで紹介されています。

GIProbeは、VoxelGIノードに取って代わった中小規模の環境に適したリアルタイムソリューションで、特にインテリアに良い結果をもたらします。ローエンドデバイスでもライトマップを使用してライティングとシャドウをプリレンダリングすることはできますが、ライトマップのベイクはGPUを使用するため、より高速なレンダリングを実現します。

■新しいレンダリング最適化技術

Godot 4では、Joan Fons(JFonS)氏とJuan氏によって実現された、いくつかの新しいレンダリング最適化技術を自由に使用することができます。

新しい自動オクルージョンカリングは、他のジオメトリに隠れたモデルを検出し、動的に除去することで、CPUとGPUの両方のレンダリング性能を向上させます。

オープンな環境では、オブジェクトがほとんど重ならないので、オクルージョンカリングはあまり役に立ちません。そういう場合は、新しい自動メッシュLODを活用するか、視認範囲を完全にコントロールできる手動HLODを使用することができます。

ミッド&ポストプロセッシングの強化

レンダリング貢献者のClay John (clayjohn)氏によって、ハイエンドデバイスでさらなるクオリティを求める際の  Screen Space Indirect Lighting が導入されました。

SSILは、スクリーン・スペース・サンプリングを使って、暗部や間接照明を強調することができます。さらに、強力なSSAO実装(Screen Space Ambient Occlusion)により、light affect(直接光がどの程度影響を受けるか)など、多くの便利な設定にアクセスできます。アンビエントオクルージョンマップでオブジェクトを無視することで、品質を最適化することが可能です。

写真撮影を好むユーザー向けに、リアルなライトユニットが導入され、ライトの強さを調整したり、標準のカメラ設定(絞り、シャッタースピード、ISOなど)を使用して最終シーンの明るさをコントロールすることができるようになりました。物理的なライトユニット(Physical light units)はデフォルトでオフになっていますが、プロジェクト設定で有効にすることができます。

2Dの改善

パワフルな新しい2Dレベル編集ツール

互換性を破壊するメジャーリリースということで、Godot 4 では 2D ワークフローにいくつかの根本的な変更が導入されました。最大の改良点は、要望や報告に基づいて再構築された新しいタイルマップエディタです。

  • 2DエディタのメンテナであるGilles Roudière (groud)氏は、タイルセットとタイルマップのワークフローを統合し、タイルの整理や配置、メタデータやアニメーションの供給など、より柔軟な対応を可能にしました。タイルのコリジョン、ナビゲーション、ピボットポイント、その他多くのプロパティをより効率的に微調整することができます。
  • 新しいタイルマップエディタには、レイヤー、広範囲を素早くペイントする新しい地形オートタイリングシステム、植物や岩などのプロップを散布するランダムペイントシステム、選択範囲をコピー、スタンプ、保存して後で再利用できる選択ツールなどが含まれています。
  • タイルセットのテクスチャは、タイル間に隙間ができないように自動的に拡張され、新しいシーン配置機能では、グリッドセル内にキャラクターやチェストなどのインタラクティブなシーンを追加することができます。

新しいタイルエディタの詳細については、Gillesの複数の進捗レポートをご覧ください。(12345.)

新しい2Dレンダリングオプション

  • 2Dキャンバスレンダラーがアップデートされ、重なり合う複数のCanvasItemを複雑にブレンドできるCanvas Groupsがサポートされました。例えば、複数のスプライトを重ね合わせ、あたかも1つのアイテムであるかのように背景とブレンドさせることができます。
  • 新しいClip Childrenプロパティを使用すると、任意の2D要素をマスクとして使用することができます。
  • 2DエンジンにMultisample Anti-Aliasing(MSAA)オプションが追加され、画質が向上し、エッジがなめらかになりました。

2Dライティングとシャドウの改善

2D指向性ライトとシャドウでライティングが改善されました。シェーダーで符号付き距離フィールドを使用すると、長いドロップシャドウ、ヘイロー、鮮明な輪郭線など、高度な視覚効果を実現できます。3D感を出すには、ノーマルマップで光の高さを制御することが可能です。また、複数の光源を使用する場合、パフォーマンスの大幅な向上を実感できるはずです。

シェーダー&VFX

新しいアトモスフィアエフェクト

Temporal reprojection の使用により、リアルな外観と高速パフォーマンスのバランスがとられた Volumetric fog が Godot 4 で初めて導入ました。エフェクトをグローバルに設定することも、FogVolumeノードで特定のエリアを定義することも可能です。FogVolumeノード( FogVolume nodes)で動作するカスタムシェーダを記述することで、複雑な動的エフェクトを作成することもできます。

Godot 4.0ではsky shaders.が導入されており、リアルタイムで更新されるダイナミックな空(反射を含む)を作成することができます。

詳しくは、こちらの紹介記事をご覧ください。

テクスチャとマテリアルプロジェクション

Godot 3.5.にバックポートされた新しいノイズテクスチャに加え、デカール(Decals)が導入されました。マテリアルをサーフェスに投影して環境を装飾することが可能となっています。

シェーダーとゲームワールドの連動性を強化

GPUベースのパーティクルに多くの変更が行われ、アトラクター、コリジョン、トレイル、サブエミッター、マニュアルエミッション( collisiontrailssub-emitters and manual emission)がサポートされるようになりました。

また、風向きや濡れ具合など、ゲームワールド全体に適用されるエフェクトについては、マテリアル間でグローバル値を共有可能となっています。

シェーダーエディターの改良

以上すべての新機能の導入は、ビジュアルシェーダーエディターの形と機能を改善するきっかけとなり、見た目も使い勝手も良くなりました。

拡張シェーダ言語

シェーダーメンテナーの Yuri Rubinsky (Chaosus) 氏は、シェーディング言語とビジュアルシェーダーをよりアクセスしやすく、多用途にするためにいくつかの改善をしました。詳しくはこちらから(12

また、 uniform arraysや fragment-to-light varyings、 structs、 preprocessor macros と shader includesなどの新しい構文が追加されました。

compute shaders

グラフィックスカードを使用したアルゴリズムを加速するために、コンピュートシェーダーをサポートし、使用するようになりました。

スクリプティング

スクリプティングについては以下のBeta版のときの記事をご覧ください

https://cginterest.com/2022/09/21/%e3%82%aa%e3%83%bc%e3%83%97%e3%83%b3%e3%82%bd%e3%83%bc%e3%82%b9%e3%81%ae%e7%84%a1%e6%96%99%e3%82%b2%e3%83%bc%e3%83%a0%e3%82%a8%e3%83%b3%e3%82%b8%e3%83%b3-godot-4-0-%e3%83%99%e3%83%bc%e3%82%bf%e7%89%88/#toc7

Physics(物理学)

ゲーム専用物理エンジン

Godot 4では、Godotの内蔵3D物理エンジンである Godot Physics が復活しました。長年にわたり、Godot は Bullet エンジンを使用していましたが、カスタムメイドでゲームに特化したソリューションの方が、新機能を実装したり問題を修正したりする際に、より柔軟性があります。

Godot Physics の機能を Bullet と同等にするため、シリンダー(cylinders)などの新しい衝突形状の追加、地形のハイトマップ( heightmaps)の実装、衣服シミュレーションのためのSoftBodyノード(SoftBody nodes)の実装などが含まれています。

マルチスレッドとパフォーマンスの最適化

パフォーマンス面では、broadphase optimization やマルチスレッドなどの技術が、2Dと3Dの両方の環境で実装されました。シーンや物理ボディの数、CPUコアの数にもよりますが、シミュレーション速度の大幅な向上につながります。これらの改良の一部は、すでに最新のGodot 3リリースにバックポートされています。

より良い Physics API

  • 以前は特定のボディタイプにしかなかった多くのプロパティが、すべてのPhysicsBodyノードで利用可能になりました。
  • 新しいCharacterBodyノードが、古いキネマティックボディに代わって、2Dと3Dでの挙動を強化するようになりました。これにより、柔軟性のある新しい設定可能なプロパティで、高度なキャラクターコントローラをすぐに使用できます。
  • プロパティのスクリプトもよりシンプルになりました。以前のエンジンバージョンでは、移動、スライド、衝突に関連するプロパティは、move_and_slide()に手動で渡す必要がありました。現在は、シーンを使用してノード自体に設定することができます。これにより、必要な物理的インタラクションに必要なコードの量を減らすことができます。また、物理レイヤーとマスクがより直感的に使えるようになりました。

シミュレーションの安定性向上

ジッターや不正確な計算の原因となる以前の問題を修正するために、多くの努力が払われています。そのため、より高いシミュレーションの安定性を期待することができます。この取り組みについては、貢献者のCamille Mohr-Daurat( pouleyKetchoupp )氏、lawnjelly氏, Fabrice Cipolla ( fabriceci ) 氏が、このブログ記事でその成果を報告しています。

注意:Godot 4の開発ロードマップでは、Godot Physicsは今後も継続的に取り組まれる分野であり、さらにパフォーマンスが最適化されます。いくつかの不具合に遭遇するかもしれませんが、それは今後のリリースで改善される予定です。

アニメーション

アニメーションエディターの強化

Juan、Gilles、そしてBelair (Razoric480)氏の協力により、アニメーションエディタはブレンドシェイプトラックをサポートし、ベジェカーブのワークフローが改善されました。複数のカーブを同時に選択・編集したり、個々のトラックを非表示にしたりと、より便利になっています。

3Dアニメーションのワークフローを改善

3Dアニメーションの内部を見直し、メモリ使用量を減らすための圧縮機能が追加されました。統合されたトランスフォームに代わり、専用の位置、回転、スケールトラックが追加され、回転モードの切り替えや回転軸の順序を変更することで、オブジェクトの回転を細かく制御することができます。

これらの新しい実装の詳細については、Juanによるこの投稿をご覧ください。

アニメーションライブラリ&リターゲティングシステム

アニメーションは、個々のリソースやアニメーション プレーヤー ノードに保存されるのではなく、アニメーション ライブラリに保存されるようになりました。これにより、プロジェクト内でアニメーションを簡単に再利用できるようになり、アニメーションだけを含むシーンをインポートできるようになりました。

詳しくはこちらをご覧ください

この機能を補完するために、 Tokage氏が提供する新しいアニメーションリターゲットシステム( animation retargeting system)では、インポート時にアニメーションを異なるアセットにマッピングすることができるようになりました。これにより、既存のアニメーションを、プロポーションの異なる他のモデルに適応させることが格段に容易になりました。その結果、モーションキャプチャデータやオンラインライブラリのリソースを活用し、時間を節約することができます。

ブレンド、トランジション、複雑なアニメーションのサポート

  • アニメーションツリーエディタでは、高度なアニメーショングラフを設定するためのコントロールと柔軟性が向上しました。
  • ブレンドスペースとノードトランジションでシンクプロパティを使用でき、カーブやステートマシンのクロスフェードでブレンドをさらに細かく調整できます。
  • ワンショットノード、トランジションノード、ステートマシンノードを使えば、アニメーションの再開も簡単にできます。
  • アニメーションのステートマシンは、トランジショングラフに従うのではなく、任意の状態にテレポートできるようになったので、コードの自由度が高まりました。
  • K. S. Ernest Lee (fire)は、複雑なステートマシンを完全に自由に作成できるように、Juanが行った以前のプルリクエストを復活させました。この新しい実装により、AnimationTreeの遷移のためのステートマシンの条件として式を使用することができるようになりました。

新しいトゥイーンアニメーションシステム

新しいTweenシステムによって、Tweenアニメーションをより簡単に設定できるようになりました。複雑なアニメーションを構成できるように、APIが書き直されています。ノードを作成する必要がなくなり、スタッキング、オーバーラップ、イージングなど、より汎用性の高い新機能が搭載されています。

UI・テキスト

マルチウインドウ対応

実行中のアプリケーションごとに複数のウィンドウをサポートするようになりました。

UIエディターの改善

UIエディター自体も、ワークフローを簡素化し、インターフェイスをよりよくコントロールできるように、複数の点で改良されています。レイアウトオプションを選択するための新しいビジュアルウィジェットは、選択したUIコンポーネントのサイズを素早く変更することができます。インスペクタは、特定の選択に関連するプロパティをフィルタリングします。

新しいテキストレンダリングシステム

テキストレンダリングのオプションも大幅にレベルアップしました。PPāvels Nadtočajevs (bruvzg) 氏は、GodotのテキストレンダリングシステムをTextServerという傘の下に再実装しました。このバックエンドソリューションは、画面上にテキスト情報を表示するためのあらゆる作業を行います。また、マルチチャンネル符号距離フィールドオーバーサンプリングにより、どのような解像度でもテキストを鮮明に表示することができます。

合字、フォントファミリー、その他のOpenTypeの機能に加え、フォントリソースはGodot 3から2つの重要な違いがあります。1つ目は、適切なマルチレベルフォールバックロジックで、1つのフォントリソースで可能な範囲よりも広い範囲の文字をカバーするのに役立ちます。2つ目は、フォントサイズのバリエーションです。フォントのサイズはもはやフォント自体に縛られないので、その場で簡単に変更することができます。、設定可能なフォントを持つすべてのコントロールノードは、テーマプロパティでサイズを変化させることができるようになりました。

新テーマ&テーマエディター

  • 新しいテーマエディターによって、複雑な外観を作成するためのより良いツールが提供され、UIデザインのワークフローを簡素化することができるようになりました。
  • ローカルシステムにインストールされたフォントにエディタで直接アクセスできるようになりました。
  • デフォルトのプロジェクトテーマは、よりクリーンな外観を提供し、埋め込まれた画像を取り除くために近代化されており、エクスポートされたプロジェクトのサイズがわずかに減少するはずです。

インターナショナル化

拡張言語サポート

Godot 4.0 は、双方向テキストとフォント合字のサポートが追加されました。。これは、世界中の人々に向けたゲームを作ることができるだけでなく、右から左への言語(アラビア語、ウルドゥー語、ペルシャ語など)を使う開発者が、最も使いやすい言語で Godot を使用できるようになったことを意味します。

より簡単な翻訳ワークフロー

  • Godot 4のエディターは、プロジェクトのシーンやスクリプトから直接Portable Object Template(またはPOT)の翻訳ファイルを生成できるようになりました。これにより、翻訳者は簡単にコンテンツを扱うことができ、完全な翻訳を作成することができます。ワークフローで他のファイル形式を使用する場合は、独自のパーサーを追加することも可能です。
  • 翻訳システムは、コンテキストを認識することにより、同じ文字列でも文脈に応じて複数の翻訳ができるようになりました。また、複数形もサポートしており、数量に応じて正しい翻訳が可能です。
  • 擬似ローカライゼーションツールも内蔵されており、ローカライゼーションをより効果的に行うことができます。Google Summer of Code 2021の学生であるAngad Kambli (angad-k)氏によって実装されたこのツールを使えば、実際の翻訳に頼らずに、UIに及ぼす発音記号やその他のフォントの影響を簡単にテストして、プロジェクトのストレステストを行うことができます。擬似ローカライズ機能については、こちらの学生のレポートで詳しく解説されています。

エディター・UX

プロジェクトで活用できるようになった新機能の多くは、、エディタ自体にも適用され、使い勝手が向上しています。新しいテキストレンダリングシステムと双方向テキストのサポートだけでなく、より多くのユーザーへのアクセシビリティを向上させるため、Androidデバイスのタッチサポートが強化されました。

また、自分のプロジェクトですでに使える実用的な機能で、エディター自体に追加されている例として、マルチウィンドウのサポートがあります。すでにインスペクタなどのドックを他のモニタに移動することができ、今後のGodot 4のリリースでは、インターフェースのより多くの部分が別ウィンドウとしてポップアップすることをサポートする予定です。

インポートが簡単に

専用のインポートダイアログ( dedicated import dialog)が搭載されました。インポートしたシーンの各パーツ、マテリアルや物理的なプロパティをプレビューし、カスタマイズすることが可能です。新しいプラグインインターフェース( new plugin interface.)のおかげで、スクリプトを使用してさらに微調整することも可能です。

また、etcpakライブラリと新しいマルチスレッドインポーターのおかげで、テクスチャのインポート速度が大幅に向上しています significant bump )さらに、glTFファイルをランタイムでインポートできるように( import your glTF files)なったので、このエンジンで作る3Dプロジェクトやツールをよりモジュール化することができるようになりました。

新エディター機能&ウィジェット

  • 今年のGodot Summer of Codeで学生によって追加された新しいコマンドパレットは、キーボードが得意なユーザーにとって、多くのエディタ操作に素早くアクセスすることができます。この機能の詳細については、 Bhuvaneshwar (Bhu1-V)によるレポートをこちらでお読みください。
  • すべてのプロジェクトにフォールバック環境を追加していた「default_env.tres」が、エディター内デフォルトのDirectionalLight3DとWorldEnvironmentに変更されました。これにより、実行時にエディタ内ノードを手動で無効にするのを忘れないようにする手間がなく、ライティングやエフェクトの調整、エディタのアセットプレビューが簡単にできるようになりました。詳しくはこちらをご覧ください。
  • 異なるピッカー形状とカラーモードを持つ新しいカラーピッカーで、プロジェクトのカラーパレットをすばやく選択または更新できるようになりました。
  • 新しい履歴ドックは、アンドゥとリドゥの履歴を表示し、任意のステップに素早くジャンプすることができます。取り消し履歴はシーン単位で動作するようになったので、Ctrl Zを押すとアクティブなシーンに貼り付きます。

インスペクタードックの改善

スクリプトからカスタムリソースタイプをエクスポートし、インスペクタでノードを直接参照できるようになりました。同様に、アノテーションを使ってセクションを描いたり、プロパティを整理したりすることが可能となっています。また、インスペクタで配列、辞書、複雑なリソースを編集するのも簡単で、ページネーションも用意されています。

シーンドックの改善

  • シーンドックでは、ノードの検索やフィルタリングを素早く行えるように。
  • 新しく改良されたスクリプトテンプレートで、ノードの種類ごとにカスタマイズできるように(customized per node type)。
  • Fabriceの提供により、便利な物理ボディテンプレートも付属しています。

スクリプトエディターの改良

  • シンタックスハイライト、フォントの合字、マルチカーソルのサポートが大幅に改善されました。
  • 関数をオーバーライドすると、マージンに新しいアイコンが表示され、親実装やドキュメントへのリンクが表示されます。
  • スクリプトエディターで、JSON、YAMLなどのテキストベースのデータファイルを編集できるようになりました。
  • Godot 3.5にすでにバックポートされている機能の1つに、シーン内でノードをユニークなものとしてマークする機能があります。この機能を複数のノードに同時に適用することで、フルパスを記述することなく、スクリプト内でこれらのノードに素早くアクセスできるようになりました。ユニークとマークされたノードはキャッシュされるため、アクセス時のパフォーマンスは非常に優れています。
  • スクリプトエディターへのドラッグ&ドロップもすべてサポートされています。Controlキーを押しながら複数のノードをドラッグしてオンレディ変数を作成したり、ノードやファイルをクリックしてスクリプトエディタにドラッグしてパスを取得することができます。

より簡単なバージョン管理

  • バージョン管理システムを使用する場合、ファイルのパスに依存するのではなく、リソースに一意の識別子が割り当てられるため、マージの競合が少なくなります。
  • エディターはproject.godotファイルの中に、プロジェクトを編集するために最後に使われたバージョンを保存するようになりました。これにより、プロジェクトがどのバージョンのGodotで作成されたかをすぐに確認することができるようになります。
  • 異なるバージョンのGodotで作られたプロジェクトや、使用できないエンジン機能を使用して作られたプロジェクトを編集しようとすると、プロジェクトマネージャーが警告を表示するようになりました。

新しいムービーメーカーモード

ムービーメーカーモードが導入されました。シーンをフレームごとに最大品質設定でレンダリングし、エンジンを使ったビデオやトレーラー映像を記録することができます。Godotでは、フレームを圧縮されたAVIビデオや、ロスレスレンダリングのためのPNGイメージのシーケンスとしてレンダリングすることができます。

新エディターテーマ

Hugo氏は、よりモダンな雰囲気で、より使いやすいように配色を改善した新しいエディターテーマ( new editor theme )も作成しました。このテーマは、複数のテーマカスタマイズオプションによって、あなたの好みに合わせてカスタマイズすることができます。

ナビゲーション

サーバーベースナビゲーションシステム

新しいナビゲーションシステムが搭載されました。以前のバージョンは、完全にノードベースであったため、使い勝手やパフォーマンスが制限されていました。Andrea Catania によって始められ、 smix8によって続けられた作業のおかげで、ナビゲーションシステムは現在、サーバーベースのアプローチを使用しています。

この実装は、すでにGodot 3.5にバックポートされており、Andreaの実践例( Andrea’s practical example)でその詳細を読むことができます。

拡張された複雑なナビゲーションサポート

新しいNavigationServerは、完全にダイナミックな環境とオンザフライのナビゲーションメッシュベイクに対応しました。リージョンをストリームすることができるので、広いオープンスペースにシステムを適用でき、物理ボディは、静止していても動いていても、障害物としてマークして自動衝突回避を行うことができます。マルチスレッドのサポートにより、すべてが以前より高速に動作します。

Godot 4.0では、ナビゲーションリンク( Navigation links)により、ジャンプポイントやテレポートなどを設定することができるようになりました。これにより、AIエージェントは、2Dや3Dのシーンで興味のあるポイントに移動し、隙間を越えたり、動くプラットフォームの上を歩いたり、梯子を登ったりすることができます。

さらに、複雑なシナリオをサポートするために、回避アルゴリズムを改善するための作業が進行中とのことです。

XR

より広いヘッドセットとプラットフォームのサポート

OpenXRはエンジンのコアに組み込まれたので、XRプロジェクトを構築するためのプラグインは不要になりました。OpenXRアクションマップでは、さまざまな種類のXRコントローラの入力と出力を、名前付きのアクションにバインドすることができます。SteamVR、Oculus、Monadoを通じて動作するすべての主要なPCヘッドセットは、WindowsとLinuxでサポートされています。

プロジェクトがAndroidデバイス向けであれば、公式プラグインによってMeta QuestとPICO 4 VRヘッドセットのサポートが拡張されます。また、Magic Leap 2ヘッドセット、OpenXR準拠のHTCヘッドセット、新しいLynx R1 ARヘッドセットもすでに使用可能ですが、これらのサポートはまだ微調整中とのことです。

Godot XRツール

アセットライブラリにある Godot XR Tools では、多くの一般的なXRメカニックを自由に使えるようにする、十分に文書化されたツールキット(well-documented toolkit )にアクセスできるようになりました。プロジェクトテンプレート( project template )から始めて、ツールキットを使って、VR空間での移動、プレイヤーのコントローラと同期した手の表示、オブジェクトをつかむなどのコンポーネントを追加することができます。

Teddybear082氏は、Godot XR Toolsを使って、さまざまなオープンソースプロジェクトのVR移植版を実装しています。このことからも、その使い勝手の良さがわかります。たCruelty Squadの彼の移植をチェックしてみてください。

ネットワーキング&マルチプレイヤー

より安定したネットワーキングシステム

Godot 4.0 でのネットワーキングは、より快適で信頼性の高い体験となります。DNS、HTTP、TCP、UDP、ENet、Websocketなど、ネットワークシステムの基礎とその信頼性に多くの時間と労力を費やしてきました。すべてのコアコンポーネントはリファクタリング、改良され、多くのバグやエッジケースが修正、処理されました。DNSは複数のIPアドレスを正しく解決し、接続はより安定し、中断やハングアップが少なくなり、大容量のダウンロードも思い通りに動作するようになりました。

これらの機能改善やその他の無数の機能改善は、Fabio Alessandrelli (Faless), Max Hilbrunner (mhilbrunner), Haoyu Qiu (timothyqiu), David Snopek (dsnopek), Jordan Schidlowsky (jordo), sarchar と多くの貢献者により行われました。

いくつかの機能や改善はGodot 4の新機能ですが、多くの重要な修正はすでにGodot 3にバックポートされています。

マルチプレイヤー開発ワークフローの簡素化

  • GDScriptの変更により、リモートプロシージャコール(RPC)は、新しいアノテーションを使用して明確な構文で設定できるようになり、コードのパフォーマンスが全般的に向上しました。
  • 新しいMultiplayerSpawnerとMultiplayerSynchronizerノードにより、シーンのレプリケーションがこれまで以上に簡単になりました。
  • ヘッドレスモード(レンダリングやオーディオ出力なし)が利用可能になり、Windows、Mac、Linuxで動作するようになりました。これにより、マルチプレイヤーサーバーのホスティング、サーバーコードのテスト、CI/CDが格段に容易になるはずです。
  • ヘッドレスビルドをプレースホルダーアセットで実行することもでき、サーバービルドのメモリと処理のフットプリントを大幅に削減することができます。
  • さらに、タイムアウトの設定やネットワーク帯域の制限など、要望の多かったネットワーク機能が可能になりました。

これらの改善は、Fabio氏によって行われました。このテーマについてもっと読みたい方は、この一連の投稿をご覧ください。

オーディオ

サウンドデザインと音楽も、Godot 4.0ではいくつかの改良が加えられている分野です。また、エンジンで適切にサポートするためには、多くの専門的な知識を必要とする分野でもありますが、幸運なことに、Ellen Poe (ellenhp) 氏によってオーディオシステムに関する多くの長年の問題が解決されました。

よりクリーンなサウンド

新しいリリースでは、オーディオ処理ロジックのかなりの部分がAudioServerに移されました。これは、Godotのオーディオシステムをより柔軟で機能豊富なものにするための将来の改良の道筋をつけるものです。すでに、リサンプリングの動作が大幅に改善され、ポッピングの問題やアーティファクト、レースコンディションが少なくなっていることを実感することができます。

内蔵ポリフォニー

新たに内蔵されたポリフォニーサポート( built-in polyphony support )により、1つのAudioStreamPlayerノードを使用して、同じ音を何度も重ねたり繰り返したりすることができます。これにより、銃声など、より満足度の高いサウンドエフェクトを実現できます。

音楽ループポイント&音声合成

BPMを意識したトリミングで音楽のループポイントを設定する新しいインポートオプションや、包括的な開発を可能にし、プロジェクトをより身近なものにする新しいテキスト読み上げ機能が実装されています。これは、すでにGodot 3.5にバックポートされています。

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

Android&Web対応

Godot 4では、世界中のゲームやアプリの開発者が可能な限り幅広く参加できるよう引き続き取り組んでいます。Windows、MacOS、Linuxに加え、Android端末やWebブラウザでも動作するとされています。

より多くの書き出しオプション

Godot 4 では、複数の CPU アーキテクチャに対応した新しいファーストクラスのビルドシステムを提供します。ビルドをコンパイルしておけば、Raspberry Pi、Microsoft Volterra、Surface Pro X、Pine Phone、VisionFive、ARM Chromebook、Asahi Linuxなどのデバイスをターゲットに、手作業で手間をかけずにコンパイルできるようになりました。これは、Godotが持つ既存のx86 Windows & Linux、およびAndroid、iOS、macOSの各種アーキテクチャへのサポートに加え、さらに追加されます。

また、ウェブプラットフォームに関する他の多くの改良点の中で、Fabio氏は、HTML5エクスポートのリモートプロファイリング( remote profiling of HTML5 exports )を可能にするために必要なツールを追加しました。これにより、デスクトッププラットフォームと同じように、ウェブエクスポートでデバッガー/プロファイラーを実行できるため、ウェブベースのゲームを磨き、最適化するのがより簡単になります。

もちろん、サードパーティの力を借りて、Xbox、PlayStation、Nintendo Switchなどのために『Godot 3』でゲームを作ることは可能です。いくつかのチームはすでにGodot 4のコンソール対応に取り組んでおり、誰もがアクセスできるようにしたいと考えられています。

とはいえ、コンソール向けのプロジェクトであれば、使用するエンジンにかかわらず、最終的にはコンソールメーカーに登録し、その多くのガイドラインに従ってゲームを適合させ、厳しいQAをパスするという難しい作業を行う必要があります。

今後について

Godot 4.0はGodot 4の始まりです。この最初の安定リリースでは、パフォーマンスはまだ最適化されていないと感じることもあるかもしれませんが、アルファ版やベータ版と同様に、今後も定期的にリリースが行われます。バージョン4.0.1、4.0.2などがすぐにリリースされ、今年の後半にはGodot 4.1で新機能や大きな改善が行われる予定となっています。

正確なロードマップは現在作成中で、後日公開される予定です。

Godot 3 のユーザーについては、関連する機能とバグフィックスを次期 Godot 3.6 にバックポートするため、引き続き多くのケアを受けることができます。これは長期サポート(LTS)リリースとなり、既存のGodot 3プロジェクトを有効にするために、当分の間、保守される予定です。Godot 4の開発を通して、私たちは多くの互換性と関連性のある作業をバックポートしており、いくつかの新機能がすでにGodot 3.4と3.5に搭載されています。

学習リソース

GDQuestチームは、オープンソースのデモやYouTubeのチュートリアルを作り、Godotのためのプロフェッショナルコースも作っています。以下のリンクからご覧ください

開発をサポート

コミュニティーの取り組みとして、Godotは個人の貢献者に頼って改善しています。近年では、ユーザーや企業の寄付によって、数多くのコア貢献者を雇用できるようになり、Godot 4.0 のリリースをより早く完成させることができるようになりました。その結果、毎月の支出は毎月の収入よりも高くなり、開発資金を一度限りの多額の寄付金に頼ってきました。現在、4.0の開発サイクルのペースを維持するためには、より多くの毎月の寄付が必要です。もちろん、現在メンテナが不足している主要分野に注力するために、より多くの貢献者を雇用する必要もあります。次のリンクからエンジンの開発をサポートすることができます。

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

ダウンロード

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


Godot Engine ウェブサイトへGodot 4.0 sets sail: All aboard for new horizons

コメント

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