機能一覧

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

注釈

This page lists features supported by the current stable version of Godot (3.4). More features are available in the latest development version (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は可能な限りプラットフォームに依存しないことを目指しており、比較的簡単に新しいプラットフォームに移植することができます。

エディタ

機能:

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

  • Built-in script editor.

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

  • GDScriptデバッガ

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

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

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

  • 実行時シーン編集。

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

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

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

  • 実行時カメラ複製。

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

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

プラグイン:

2Dグラフィックス

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

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

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

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

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

機能:

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

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

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

  • 視差レイヤー。

    • Pseudo-3D support including preview in the editor.

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

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

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

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

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

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

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

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

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

2Dツール

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

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

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

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

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

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

2D物理演算

物理ボディ:

  • 静的ボディ。

  • リジッドボディ。

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

  • ジョイント。

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

衝突検出:

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

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

3Dグラフィックス

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

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

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

    • Optional HDR rendering with sRGB (enabled by default).

    • Uses an optional depth prepass (enabled by default) to reduce the cost of overdraw, which speeds up complex scene rendering.

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

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

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

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

カメラ:

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

Physically-based rendering (built-in material features):

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

  • Supports Lambert, Lambert Wrap (half-Lambert), Oren-Nayar and Toon diffuse shading modes.

  • Supports Schlick-GGX, Blinn, Phong, Toon and Disabled specular shading modes.

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

  • Uses horizon specular occlusion (Filament model) to improve material appearance

  • 法線マップ。

  • Detail mapping for the albedo and normal maps.

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

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

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

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

  • GLES3: Refraction with support for material roughness (resulting in blurry refraction). On GLES2, refraction is still functional but lacks support for material roughness.

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

リアルタイム照明:

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

  • 全方位ライト。

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

  • Specular energy can be adjusted on a per-light basis.

  • GLES3: Lighting is done with a single-pass forward approach. By default, up to 32 omni light and 32 spot lights can be displayed per mesh resource. If needed, this limit can be increased at the cost of increased shader compilation times and lower performance. GLES2 uses a multi-pass forward approach to lighting, which doesn't have a limit on the number of lights but is slower with many lights.

シャドウマッピング:

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

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

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

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

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

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

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

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

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

反射:

  • Fast baked reflections or slow real-time reflections using ReflectionProbe. Parallax box correction can optionally be enabled.

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

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

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

空:

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

  • プロシージャルな空。

霧:

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

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

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

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

パーティクル:

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

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

ポストプロセッシング:

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

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

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

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

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

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

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

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

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

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

テクスチャ圧縮:

  • Lossless or lossy WebP (does not save VRAM; only reduces storage size).

  • S3TC (only supported on desktop platforms).

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

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

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

アンチエイリアシング:

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

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

Performance:

  • Occlusion culling with rooms and portals. Supports gameplay notifications with primary and secondary visibility to disable AI/physics processing for nodes that don't need it.

  • Real-time occluder spheres. Not as effective as rooms and portals (and doesn't support gameplay notifications), but easier to set up.

注釈

Most of the effects listed above can be adjusted for better performance or to further improve quality. This can be helpful when using Godot for offline rendering.

3Dツール

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

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

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

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

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

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

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

  • Support for exporting the current scene as a glTF 2.0 file from the editor.

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 のバインディングが提供されています。

オーディオ

機能:

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

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

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

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

  • Listener2D and Listener3D nodes to listen from a position different than the camera.

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

  • MIDI 入力。

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

** 使用API :**

  • Windows: WASAPI。

  • macOS: CoreAudio。

  • Linux: PulseAudio、または ALSA。

インポート

フォーマット:

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

  • オーディオ:

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

    • Ogg Vorbis。

    • MP3.

  • 3Dシーン:

    • glTF 2.0 (推奨)

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

    • FBX (experimental, static meshes only).

    • Collada(.dae)。

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

  • 3D meshes use Mikktspace to generate tangents on import, which ensures consistency with other 3D applications such as Blender.

入力

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

    • 軸の値は、設定可能なデッドゾーンを使用して 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 can be downloaded for Linux and compiled for macOS. Any binary can be used without a window using the --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。

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

  • Color picker with RGB and HSV modes.

  • Containers (horizontal, vertical, grid, flow, center, margin, aspect ratio, draggable splitter, ...).

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

サイズ変更:

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

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

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

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

テーマ:

  • 内蔵テーマエディタ。

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

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

    • Supports rounded/beveled corners, drop shadows, per-border widths and antialiasing.

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

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

アニメーション

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

  • Tween node to easily perform procedural animations by code.

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

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

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

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

ファイルフォーマット

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

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

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

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

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

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

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

    • Can (de)serialize any Godot datatype, including Vector2/3, Color, ...

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

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

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

その他

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

  • Command line interface for automation.

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

    • Shell completion scripts are available for Bash, zsh and fish.

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

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

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

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

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

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

参考

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