機能一覧

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

注釈

このページでは、現在の安定版である Godot (3.3) でサポートされている機能の一覧を示します。最新の開発バージョン (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デバッガ

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

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

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

  • 実行時シーン編集。

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

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

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

  • 実行時カメラ複製。

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

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

プラグイン:

  • アセット ライブラリからエディタプラグインをダウンロードして、エディタの機能を拡張することができます。

  • 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 です。

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

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

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

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

2Dツール

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

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

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

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

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

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

2D物理演算

物理ボディ:

  • 静的ボディ。

  • リジッドボディ。

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

  • ジョイント。

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

衝突検出:

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

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

3Dグラフィックス

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

  • OpenGL ES 3.0レンダラー (デスクトップ プラットフォームではOpenGL 3.3を使用)。
    • ハイエンドビジュアル。デスクトッププラットフォームに推奨。

    • sRGBでHDRレンダリング。

  • OpenGL ES 2.0 レンダラー(デスクトッププラットフォームではOpenGL 2.1を使用)。
    • モバイルとウェブのプラットフォームで推奨。

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

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

カメラ:

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

物理ベースレンダリング:

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

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

  • 法線マップ。

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

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

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

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

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

リアルタイム照明:

  • ディレクショナルライト (太陽 / 月)。1 シーンにつき 4 個まで。

  • 全方位ライト。

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

シャドウマッピング:

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

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

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

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

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

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

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

反射:

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

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

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

  • 反射用技術は、より高い精度を得るために混用できます。

空:

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

  • プロシージャルな空。

霧:

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

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

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

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

パーティクル:

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

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

ポストプロセッシング:

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

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

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

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

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

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

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

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

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

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

テクスチャ圧縮:

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

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

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

  • GLES3: S3TC (モバイル / Webプラットフォームでは未対応)。

アンチエイリアシング:

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

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

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

3Dツール

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

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

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

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

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

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

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

3D物理

物理ボディ:

  • 静的ボディ。

  • リジッドボディ。

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

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

  • ジョイント。

  • ソフトボディ。

  • ラグドール。

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

衝突検出:

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

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

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

シェーダー

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

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

  • Text-based shaders using a shader language inspired by GLSL.

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

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

スクリプト

全般:

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

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

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

  • ベクトルやトランスフォームといった、多くの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 のバインディングが提供されています。

オーディオ

機能:

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

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

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

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

  • 3Dでカメラとは異なる位置からリッスンする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(静的シーンのみ、メッシュとして直接ロード可能)。

入力

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

    • 軸の値は、設定可能なデッドゾーンを使用して 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のオープン。

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

モバイル

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

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

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

XR (ARおよびVR) に対応

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

  • OpenXRおよびOpenVR APIに対応。

  • Oculus QuestやHTC Viveのような人気のVRヘッドセットに、プラグインにて対応。

GUIシステム

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

ノード:

  • ボタン。

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

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

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

  • スクロールバー。

  • ラベル。

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

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

  • コンテナ (水平、垂直、グリッド、中央、マージン、ドラッグ可能なスプリッタ、...)。

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

サイズ変更:

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

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

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

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

テーマ:

  • 内蔵テーマエディタ。

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

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

    • 角丸・面取り、ドロップシャドウ、ボーダーごとの幅に対応。

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

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

アニメーション

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

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

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

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

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

フォーマット

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

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

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

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

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

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

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

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

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

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

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

その他

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

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

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

    • Bash、zsh、fish 用の自動補完スクリプトあり。

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

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

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

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

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

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

参考

The Godot proposals repository lists features that have been requested by the community and may be implemented in future Godot releases.