機能一覧

このページでは、Godotが現在サポートしているすべての機能をリストアップすることを目的としています。

注釈

このページでは、現在の安定版である Godot (3.5) でサポートされている機能の一覧を示します。最新の開発バージョン (4.0) では、より多くの機能が利用可能です。

機能

プラットフォーム

エディタとエクスポートしたプロジェクトの両方を実行可能:

  • Windows 7以降 (64ビットと32ビット)。

  • macOS 10.12以降 (64ビットと x86とARM)。

  • Linux (64ビットと32ビット、x86とARM)。

    • 古い十分なベースのディストリビューションでコンパイルされた場合、バイナリは静的にリンクされ様々なディストリビューションで実行できます。

    • 公式のバイナリはUbuntu 14.04でコンパイルされています。

  • WebAssembly による HTML5 (Firefox、Chrome、Edge、Opera)。

エクスポートされたプロジェクトの実行:

Godotは可能な限りプラットフォームに依存しないことを目指しており、比較的簡単に新しいプラットフォームに移植することができます。

エディタ

機能:

  • シーンツリー エディタ。

  • 内蔵スクリプトエディタ。

  • Visual Studio Code や Vim などの外部スクリプトエディタに対応。

  • GDScriptデバッガ

    • 複数スレッドでのデバッグはまだサポートされていません。

  • パフォーマンス計測ツール。

  • 実行時スクリプト再読み込み。

  • 実行時シーン編集。

    • 変更はエディタに反映され、実行プロジェクトを閉じた後も保存されます。

  • リモート インスペクタ。

    • 変更内容はエディタに反映されず、実行中のプロジェクトを閉じた後は保持されません。

  • 実行時カメラ複製。

    • エディタ内のカメラを移動し、実行プロジェクトで結果を確認してください。

  • 内蔵かつオフラインで読めるクラスリファレンスドキュメント。

  • コミュニティによって翻訳された数十の言語にてエディタを使用できます。

プラグイン:

2Dグラフィックス

2つのレンダラーが利用可能:

  • OpenGL ES 3.0レンダラー (デスクトップ プラットフォームではOpenGL 3.3を使用)。

    • ハイエンドビジュアル。デスクトッププラットフォームに推奨。

  • OpenGL ES 2.0 レンダラー (デスクトッププラットフォームではOpenGL 2.1を使用)。

    • モバイルとウェブのプラットフォームで推奨。

機能:

  • スプライト、ポリゴン、ラインのレンダリング。

    • Polygon2DやLine2Dといった線やポリゴンを描画する高度なツール。

  • アニメーションするスプライトを作るのに役立つAnimatedSprite。

  • 視差レイヤー。

    • エディタでのプレビューを含む疑似3Dサポート。

  • 法線マップを用いた2Dライティング。

    • ハード、あるいはソフトな影。

  • ビットマップ (ビットマップフォント) を用いたフォントレンダリングや、フリータイプ (ダイナミックフォント) を用いたフォントラスタライズ。

    • ビットマップフォントはBMFontといったツールを使うことでエクスポート可能。

    • ダイナミックフォントは、モノクロフォントと色付きフォント(例えば絵文字のための)をサポート。対応形式は TTF と OTF と WOFF1 と WOFF2 です。

    • ダイナミックフォントは、任意で幅と色を調整可能なアウトラインをサポート。

    • より高い解像度でフォントをシャープに保つための、フォントのオーバーサンプリングをサポート。

  • GPUベースのパーティクルは、カスタム パーティクルシェーダーをサポートしています。

  • CPUベースのパーティクル。

2Dツール

  • 2Dカメラは、スムージングとドラッグマージンを内蔵。

  • 2D空間で経路を表現する Path2D ノード。

    • エディタ内で描画したり、手続き的に生成が可能。

    • ノードを Path2D に追従させるためのノードである PathFollow2D。

  • 2Dジオメトリ用ヘルパークラス。

  • テクスチャ付きの 2D ラインを描画する Line2Dノード。

2D物理演算

物理ボディ:

  • 静的ボディ。

  • リジッドボディ。

  • キネマティックボディ。

  • ジョイント。

  • 出入りするボディを検出するための Area。

衝突検出:

  • 組み込みシェイプ: ライン、ボックス、円、カプセル。

  • 衝突ポリゴン (手動で描いたり、エディタ内でスプライトから生成可能)。

3Dグラフィックス

2つのレンダラーが利用可能:

  • OpenGL ES 3.0レンダラー (デスクトップ プラットフォームではOpenGL 3.3を使用)。

    • ハイエンドビジュアル。デスクトッププラットフォームに推奨。

    • sRGBを使用したオプションのHDRレンダリング(デフォルトで有効)。

    • オプションの depth prepass(デフォルトで有効)を使用して、オーバードローのコストを削減し、複雑なシーンのレンダリングを高速化します。

  • OpenGL ES 2.0 レンダラー (デスクトッププラットフォームではOpenGL 2.1を使用)。

    • モバイルとウェブのプラットフォームで推奨。

    • 互換性を高めるためのLDRレンダリング。

    • すべての機能が利用できるわけではありません。OpenGL ES 3.0 レンダラーを使用している場合にのみ利用可能な機能は、以下では GLES3 と記載されています。

カメラ:

  • 透視投影、平行投影、視錐台オフセットカメラ。

** 物理ベースレンダリング (組み込みのマテリアル機能):**

  • ディズニーPBRモデルに準拠。

  • Lambert、Lambert Wrap (half-Lambert) 、Oren-Nayar、Toonの拡散シェーディングモードに対応。

  • Schlick-GGX、Blinn、Phong、Toon、Disabled 鏡面反射シェーディングモードをサポート。

  • ORMテクスチャに対応するラフネスメタリック用ワークフローを使用。

  • 水平方向の鏡面オクルージョン(フィラメントモデル)("horizon specular occlusion (Filament model)")を使用したマテリアルの外観の改善

  • 法線マップ。

  • アルベドマップと法線マップの詳細マッピング。

  • 透過パイプラインを通過しないように、アルファ ブレンディングやディザリングを使用できる距離フェード。

  • ディザリングは、ピクセル単位またはオブジェクト単位で決定可能。

  • GLES3: 距離に応じて自動レベルのディテールを持つ視差 / リリーフマッピング。

  • GLES3: サブサーフェス・スキャタリングおよび透過。

  • *GLES3:*材料の粗さをサポートする屈折(ぼやけた屈折をもたらす)。GLES2では、屈折は機能的ですが、材料の粗さのサポートが欠けています。

  • GLES3: 近接フェード (ソフトパーティクル)。

リアルタイム照明:

  • 指向性ライト (太陽 / 月)。1 シーンにつき 4 個まで。

  • 全方位ライト。

  • コーンの角度および減衰量を調整できるスポットライト。

  • 鏡面エネルギー("Specular energy")は、ライトごとに調整できます。

  • GLES3: 照明はシングルパスフォワード方式で行われます。デフォルトでは、メッシュリソースごとに最大 32 個のオムニライトと 32 個のスポットライトを表示できます。必要に応じて、この制限を増やすことができますが、その引き換えに、シェーダーのコンパイル時間が長くなり、パフォーマンスが低下します。GLES2 はマルチパス フォワード方式をライティングに使用していますが、ライトの数に制限はありませんが、ライトが多いと遅くなります。

シャドウマッピング:

  • DirectionLight: 直交 (最速)、PSSM 2分割および4分割。分割間におけるブレンドに対応しています。

  • OmniLight: デュアル パラボロイド (高速) またはキューブマップ (低速だがより正確)。パノラマの形でカラープロジェクターテクスチャに対応。

  • スポットライト: 単一テクスチャ。

間接照明によるグローバルイルミネーション:

  • ベイク済みライトマップ (高速ですが、実行時は更新不可)。

    • ベイクは間接照明のみ、または直接照明と間接照明の両方をサポート。ベイクモードは、ライトごとに調整して、ハイブリッドライトベーキングが可能。

    • 自動オクツリーベースシステムを使用して、ダイナミックオブジェクトをライティングができます。マニュアルでのプローブ配置は必要ありません。

    • ライトマップはCPU上でベイク。

  • GLES3: GIプローブ (低速、セミリアルタイム)。反射をサポート。

反射:

  • ReflectionProbe を使用した高速ベイクド反射、または低速リアルタイム反射。オプションで視差補正を有効にすることができます。

  • 反射技術は、高い精度とスケーラビリティを共に混在させることができます。

  • GLES3: ボクセルベースの反射 (GIプローブ使用時)。

  • GLES3: スクリーンスペース リフレクション。

空:

  • パノラマ空 (HDRIを使用)。

  • プロシージャルな空。

霧:

  • 減衰カーブを調整できる深度フォグ。

  • 減衰量を調整可能な高さフォグ (床または天井)。

  • カメラの向きに応じた自動の深度フォグ色に対応 (太陽の色に合わせて)。

  • フォグの中で光を視認しやすくすることができる、オプションの透過率。

パーティクル:

  • CPUベースのパーティクル。

  • GLES3: カスタムパーティクルシェーダに対応した、GPUベースのパーティクル。

ポストプロセッシング:

  • トーンマッピング (Linear、Reinhard、Filmic、ACES)。

  • オプションのバイキュービック アップスケーリング付きのグロー / ブルームと、複数のブレンドモード: スクリーン、ソフトライト、追加、置換。

  • 一次元rampを用いた色補正。

  • 明るさ、コントラスト、彩度の調整。

  • GLES3: ビューポートの明るさに応じた自動露出調整。

  • GLES3: 近 / 遠距離の被写界深度。

  • GLES3: スクリーンスペース アンビエントオクルージョン (SSAO)。

  • GLES3: カラーバンディングを回避するためのオプションのデバンディング (HDRレンダリングが有効になっている場合に有効)。

テクスチャ フィルタリング:

  • ニアレスト、バイリニア、トリリニア、または異方性のフィルタリング。

テクスチャ圧縮:

  • ロスレスまたは非可逆WebP(使用VRAMサイズは節約せず、ストレージ・サイズが縮小されるのみ)。

  • S3TC (デスクトップ プラットフォームでのみ対応)。

  • ETC1 (GLES2レンダラー使用時に推奨)。

  • GLES3: 高品質圧縮のためのBPTC (macOSには未対応)。

  • GLES3: ETC2 (macOSには未対応)。

アンチエイリアシング:

  • マルチサンプル アンチエイリアシング (MSAA)。

  • 高速近似アンチエイリアス(FXAA)。

パフォーマンス:

  • rooms and portals を伴うオクルージョンカリング。プライマリおよびセカンダリの可視性を持つゲームプレイ通知に対応し、AI/物理処理を必要としないノードの処理を無効化します。

  • リアルタイムのオクルーダースフィア(球体とポリゴン)。ルームやポータルほど効果的ではありませんが(ゲームプレイの通知もサポートしていません)、セットアップは簡単です。

注釈

これらエフェクトのほとんどは、より良いパフォーマンス、もしくはクオリティー改善のために調整できます。これはGodotをオフラインレンダリングで使用する際に役立ちます。

3Dツール

  • ビルトインのメッシュ:立方体・円柱・円錐・ (半) 球・角柱・平面・四角形。

  • 手続き型ジオメトリ生成 用ツール。

  • 空間領域構成法(CSG) (プロトタイピング用)。

  • 3D空間で経路を表現する Path3D ノード。

    • エディタ内で描画したり、手続き的に生成が可能。

    • ノードを Path3D に追従させるためのノードである PathFollow3D。

  • 3Dジオメトリ用ヘルパークラス。

  • エディタから現在のシーンをglTF 2.0ファイルへエクスポート対応。

3D物理

物理ボディ:

  • 静的ボディ。

  • リジッドボディ。

  • キネマティックボディ。

  • 乗り物ボディ (シミュレーションではなく、アーケード物理用)。

  • ジョイント。

  • ソフトボディ。

  • ラグドール。

  • 出入りするボディを検出するための Area。

衝突検出:

  • 組み込みのシェイプ:立方体・球・カプセル型・円柱 (Bullet 物理エンジンに備わっているもののみ)。

  • エディタから任意のメッシュの形状の三角コリジョンが生成可能。

  • エディタから任意のメッシュの形状の、一つまたは複数の凸型コリジョンが生成可能。

シェーダー

  • 2D: 頂点、フラグメント、ライト用のカスタムのシェーダ。

  • 3D: 頂点、フラグメント、ライト、天球用のカスタムのシェーダ。

  • テキストベースのシェーダは GLSLにインスパイアされたシェーダ言語 <doc_shading_language>を使っています。

  • ビジュアルシェーダーエディタ。

    • ビジュアルシェーダープラグイン。

スクリプト

全般:

  • スクリプトがノードを拡張する、オブジェクト指向デザインパターン。

  • スクリプト間で通信するためのシグナルとグループ。

  • 異なる言語でのスクリプティングに対応。

  • ベクトルやトランスフォームといった、多くの2Dや3Dの線形代数データ型。

GDScript:

  • オプションでの静的型付け が可能な 高水準インタプリタ言語 <doc_gdscript>

  • Pythonにインスパイアされた構文。

  • GitHubでのシンタックスハイライトに対応。

  • スレッドの使用で非同期処理を行ったり、複数のプロセッサコアを利用したりできます。

C#:

  • ファイルサイズと依存関係を抑えるために、異なるバイナリでパッケージ化されています。

  • Mono 6.x を使用。

    • C# 7.0の構文と機能を完全サポート。

  • すべてのプラットフォームをサポート。

  • IDE の機能を利用できるため、外部エディタの使用をおすすめします。

VisualScript:

GDNative (C、C++、Rust、D、...):

  • 必要がある場合、パフォーマンス向上やサードパーティ機能の統合のためのネイティブライブラリをリンクすることができます。

    • パフォーマンスが十分な場合は、ゲームロジックの記述には GDScript または C# を使用することをおすすめします。

  • C言語とC++向けに公式のバインディングがあります。

    • ビルドシステムや言語機能はなんでも使うことができます。

  • コミュニティにより保守されているD言語、Kotlin、Nim、Rust のバインディングが提供されています。

警告

Godot4.0ではビジュアルスクリプトを完全に廃止することが決定されています。<https://godotengine.org/article/godot-4-will-discontinue-visual-scripting> そのため、これからビジュアルスクリプトを使用してプロジェクトを作成するのは推奨されていません。Godot4.0より先のバージョンでビジュアルスクリプトを拡張機能としてリリースする可能性はあります。

Godot3はビジュアルスクリプトをサポートしているものの、特にGodot4に移行したいと考えている場合はこちらを trying out GDScript 見ることをお勧めします。

オーディオ

機能:

  • モノラル、ステレオ、5.1チャンネル、そして7.1チャンネルの出力。

  • 2Dおよび3Dでの非位置的および位置的再生。

    • 2Dと3Dにおけるオプションのドップラー効果。

  • 再ルーティング可能な オーディオバス と数十種類のエフェクトをサポートしています。

  • カメラとは異なる位置からリスニングするためのListener2DとListener3Dノード。

  • AudioEffectCaptureクラスを使ったリアルタイムにアクセスできる録音マイクの音声入力。

  • MIDI 入力。

    • MIDI出力にはまだ対応していません。

** 使用API :**

  • Windows: WASAPI。

  • macOS: CoreAudio。

  • Linux: PulseAudio、または ALSA。

インポート

フォーマット:

  • 画像: イメージのインポートを参照。

  • オーディオ:

    • オプションの IMA-ADPCM 圧縮を使用した WAV。

    • Ogg Vorbis。

    • MP3.

  • 3Dシーン:

    • glTF 2.0 (推奨)

    • ESCN (Blenderから直接エクスポート)。

    • FBX(実験用、静的メッシュのみ)。

    • Collada(.dae)。

    • Wavefront OBJ (静的シーンのみ、メッシュとして直接ロード可能)。

  • 3D メッシュはMikktspaceを使用してインポート時に接線を生成し、Blenderなどの他の 3D アプリケーションとの一貫性を確保します。

入力

  • ハードコードされた入力イベントまたは再マップ可能な入力アクションを使用した入力マッピング・システム。

    • 軸の値は、設定可能なデッドゾーンを使用して 2 つの異なるアクションにマップできます。

    • キーボードとゲームパッドの両方をサポートするために同じコードを使う。

  • キーボード入力。

    • キーは、キーボード レイアウトに依存しない "物理" モードでマップできます。

  • マウス入力。

    • マウスカーソルは、ウィンドウ内で表示、非表示、キャプチャ、または閉じ込めることができます。

    • キャプチャすると、WindowsやLinuxでは未加工の入力値が使用され、OSのマウスアクセラレーション設定を回避することができます。

  • ゲームパッド入力 (最大8台同時使用コントローラ)。

  • 筆圧対応のペン/タブレット入力。

  • ゲームパッド、キーボード、マウス入力もAndroidで利用できます。

ネットワーク

  • StreamPeer と TCP_Server を使用した低レベル TCP ネットワーキング。

  • PacketPeer と UDPServer を使用した低レベル UDP ネットワーキング。

  • HTTPClient を使用した低レベルの HTTP リクエスト。

  • HTTPRequest を使用した高レベルの HTTP 要求。

    • バンドルされた証明書を使用して、すぐに使用できるHTTPSをサポートします。

  • UDP および ENet を使う高レベルのマルチプレイヤーAPI。

    • リモートプロシージャコール (RPC) を使用した自動レプリケーション。

    • 信頼性の低い転送も、信頼性が高く順番が保証された転送もサポートします。

  • すべてのプラットフォームで利用可能なWebSocketクライアントとサーバー。

  • WebRTCクライアントとサーバー。すべてのプラットフォームで利用可能。

  • NAT の背後でサーバーをホストしているときに、ポート転送の必要を回避するための UPnP に対応。

国際化

  • 絵文字を含むUnicodeに完全対応。

  • CSV または gettext を用いてローカライズ文字列を格納します。

  • プロジェクト内のGUI要素中で自動的にローカライズされた文字列を使うか、 tr() 関数を使ってください。

  • 右から左への組版およびテキストシェーピングに対応 (Godot 4.0で予定)。

ウィンドウおよびOSの統合

  • プロジェクトによって生成されたウィンドウの移動、サイズ変更、最小化、最大化。

  • ウィンドウのタイトルおよびアイコンの変更。

  • 注意を求める (ほとんどのプラットフォームではタイトルバーが点滅します)。

  • 全画面表示モード。

    • 排他的なフルスクリーンは使用しないので、この方法では画面の解像度を変更できません。代わりに異なる解像度のビューポートを使用してください。

  • ボーダー無しウィンドウ (全画面または非全画面)。

  • ウィンドウを常に最前面に保つ機能。

  • ピクセル単位での透過ウィンドウ。

  • macOSでのグローバルメニュー統合。

  • ブロッキングまたは非ブロッキングでのコマンド実行。

  • デフォルトまたはカスタムのプロトコルハンドラ (システムに登録されている場合) を使用してのファイルパスや URLのオープン。

  • カスタムのコマンドライン引数をパース。

  • Headless/server binaries は Linux 用に、 compiling_for_osx> は macOS 用にコンパイルされたものがダウンロード可能です。--no-window command line argument により、どちらのバイナリもウィンドウ無しで使用することができます。

モバイル

  • Android および iOS でのアプリ内購入。

  • サードパーティモジュールを利用した広告に対応。

  • Androidでサブビューの埋め込みに対応。

XR (ARおよびVR) に対応

  • iOSのARKitをすぐに使える状態で対応。

  • OpenXR APIに対応。

    • Meta Quest や Valve Index のような人気のあるヘッドセットに対応。

  • OpenVR APIに対応。

GUIシステム

GodotのGUIは、Godotでゲームを作るのに使用するのと同じControlノードを使って構築されています。エディタのUIはアドオンを使って簡単に様々な方法で拡張することができます。

ノード:

  • ボタン。

  • チェックボックス、チェックボタン、ラジオボタン。

  • LineEdit (1行) とTextEdit (複数行) を使ったテキスト入力。

  • PopupMenuとOptionButtonを使ったドロップダウンメニュー。

  • スクロールバー。

  • ラベル。

  • BBCodeでフォーマットされたテキスト用の RichTextLabel。

  • ツリー (表の表現にも使えます)。

  • RGBモードとHSVモードを持つカラーピッカー。

  • コンテナ(水平、垂直、グリッド、フロー、センター、マージン、アスペクト比、ドラッグ可能なスプリッタなど)。

  • Controlは回転と拡大縮小が可能。

サイズ変更:

  • GUI要素を特定のコーナー、エッジ、または中央に配置するためのアンカー。

  • 特定のルールに従ってUI要素を自動配置するコンテナ。

  • 2d または viewport を使用して複数の解像度にスケールするストレッチモード。

  • アンカーと expand を使用して任意のアスペクト比をサポートするストレッチアスペクト。

テーマ:

  • 内蔵テーマエディタ。

    • 現在のエディタのテーマ設定に基づいて、テーマを生成します。

  • ref:class_StyleBoxFlat を使用したプロシージャルなベクターベースのテーマ設定。

    • 丸みを帯びた/面取りされたコーナー、ドロップシャドウ、ボーダ毎の幅、アンチエイリアスをサポートします。

  • ref:class_StyleBoxTexture を使用した、テクスチャベースのテーマ設定。

Godotはディストリビューションサイズが小さいため、ElectronやQtのようなフレームワークの代替としても適しています。

アニメーション

  • ダイレクトキネマティクスとインバースキネマティクス。

  • Tween ノードは、コードによる手続き型アニメーションを簡単に実行できます。

  • カスタマイズ可能な補間による、あらゆるプロパティのアニメーションに対応。

  • アニメーショントラックでのメソッド呼び出しに対応。

  • アニメーショントラックでのサウンド再生に対応。

  • アニメーションでのベジエ曲線に対応。

ファイルフォーマット

  • シーンやリソースは テキストベース またはバイナリ形式で保存可能。

    • テキストベースのフォーマットは人間が読むことができ、バージョン管理にも適しています。

    • バイナリ形式は、大きなシーンやリソースの保存・読み込みがより高速です。

  • File を使用した、テキストファイルやバイナリファイルの読み書き。

    • オプションで圧縮や暗号化が可能です。

  • JSON ファイルの読み書き。

  • ref:class_ConfigFile を使用した、INIスタイルの設定ファイルの読み書き。

    • Vector2、Vector3、Colorなどを含む、あらゆるGodotデータ型は(デ)シリアライズできます。

  • ref:class_XMLParser を使用した、XMLファイルの読み込み。

  • ゲームデータをPCKファイル (高速シークに最適化されたカスタムフォーマット)、ZIPアーカイブ、またはシングルファイル配布用の実行ファイルに直接パック可能。

  • MODやDLCに対応するため、エンジンにて読み込める 追加のPCKファイル をエクスポート可能。

その他

  • サーバーへの低レベルのアクセス 。 これにより、必要に応じてシーンツリーのオーバーヘッドを回避することができます。

  • Command line interface 自動化のためのコマンドラインインターフェイス。

    • 継続的インテグレーション(CI)のプラットフォームを利用したプロジェクトのエクスポートとデプロイ。

    • シェル補完スクリプト は、Bash、zsh、fishで利用可能。

  • エンジンのバイナリに静的リンクされた C++ モジュール に対応。

  • C++03で書かれたエンジンとエディター。

    • GCC、Clang および MSVC を使用してコンパイル可能。MinGWにも対応。

    • パッケージャーにフレンドリー。ほとんどの場合、Godotが提供するライブラリではなく、システムライブラリを使用することができます。ビルドシステムは何もダウンロードしません。ビルドは完璧な再現性があります。

    • Godot 4.0はC++17で書かれます。

  • ライセンスは、寛容なMITライセンスです。

参考

Godot proposals repository には、コミュニティから求められている今後の Godot リリースで実装される可能性のある機能が掲載されています。