功能列表
本頁列出了目前 Godot 所支援的所有功能。
備註
本頁列出 Godot 當前穩定版本所支援的功能。其中部分功能 無法在 3.x 版本系列 中使用。
支援平台
也參考
請參閱 系統需求 來了解硬體與軟體版本的需求。
在編輯器與匯出的專案中均可執行:
Windows (x86 和 ARM, 64 位元與 32 位元)。
macOS ( x86 和 AR,僅支援 64位元)。
Linux (x86 和 ARM, 64 位元與 32 位元)。
二進位檔使用靜態連結,並且若在一定舊的基礎發行版上編譯,則可在任意發行版上執行。
官方二進制檔使用`Godot Engine buildroot <https://github.com/godotengine/buildroot>`_ 進行編譯,使其能夠相容於多數常見的 Linux 發行版。
Android(編輯器支援是實驗性的)。
Web 瀏覽器 。在 4.0 的實驗中,當您的目標是 HTML5 時建議使用 Godot 3.x。
執行匯出的專案:
iOS.
主控台 。
Godot 的目標是盡可能地獨立於平臺,並且可以相對輕鬆地 移植到新平臺 。
備註
使用Godot 4以C#編寫的專案目前無法匯出至Web平台。若要在該平台上使用C#,請考慮使用Godot 3。從Godot 4.2開始,提供Android與iOS平台的支援,但其仍處於實驗階段,且 存在一些限制。
編輯器
功能:
場景樹編輯器。
內建腳本編輯器。
支援如 Visual Studio Code 或 Vim 的 外部腳本編輯器 。
GDScript 除錯工具 。
從 4.2 版本開始,已支援線程中的除錯功能。
視覺化(性能)分析器能指出在算繪管線中 CPU 與 GPU 在每個步驟花費的時間。
性能監視工具,包括 自訂效能監視器 。
即時腳本重載。
即時場景編輯。
更改將反應到編輯器上,並會在正在執行的專案關閉後保留。
遠端檢視器。
更改將不會反應到編輯器上,且關閉正在執行的專案後將不會保留。
即時相機複製。
移動編輯器中的相機,並在執行中專案內檢視結果。
內寘離線類參攷檔案。
在編輯器中使用數十種由社群支援的語言。
外掛程式:
算繪
Godot 4 包含三種算繪器:
Forward+ 。最先進的算繪器,僅適用於桌上型平台。在桌上型平台預設使用此算繪器。此算繪器使用 Vulkan 、 Direct3D 12 或 Metal 作為算繪驅動程式,並使用 RenderingDevice 後端。
行動裝置 。功能較少,但能更快地算繪簡單場景。適用於行動裝置和桌面平台。在行動裝置平台上預設使用。此算繪器使用 Vulkan 、 Direct3D 12 或 Metal 作為繪圖驅動程式,並使用 RenderingDevice 後端。
相容性 ,有時也稱為 GL 相容性 。這是最基礎的算繪器,適用於低階桌上型和行動平台。在網頁平台預設使用此算繪器。此算繪器使用 OpenGL 作為其繪圖驅動程式。
詳見 算繪器 以獲得算繪方法的詳細比較。
2D 圖形
Sprite、多邊形與線條算繪引擎。
AnimatedSprite2D 輔助製作動畫精靈。
視差圖層。
偽3D支援,可在編輯器中進行預覽。
帶有法線貼圖和鏡面反射貼圖的 2D 光照 。
2D 點光源(全向燈/聚光燈)和平行光源。
晃動可依像素級別或物件級別來判斷。
自訂著色器可以存取一個基於 LightOccluder2D 節點的,由即時 帶符號距離場 表示的二維場景,它可以用於改進二維照明效果,包括二維全域光源。
字形算繪 使用點陣圖,光柵化使用 FreeType 或多通道有符號距離場(MSDF)。
點陣字型可以使用 BMFont 等工具匯出,也可以從圖像匯入(僅適用於等寬字形)。
動態字形支援單色字形以及彩色字形(例如用於表情符號)。支援的格式有 TTF、OTF、WOFF1 和 WOFF2。
動態字形支援具有可調整寬度和顏色的可選字形輪廓。
動態字形支援可變字形和 OpenType 功能,包括連字(ligatures)。
當字形檔缺少粗體和斜體樣式時,動態字形支援類比這些樣式。
動態字形支援超取樣, 以在更高的解析度下保持字形的清晰度.
動態字形支援亞像素定位(subpixel positioning),使字形在小尺寸下更清晰。
動態字形支援 LCD 亞像素優化,使字形在小尺寸下更加清晰。
帶符號距離場字形可以在任何解析度下進行縮放,而無需重新光柵化。與單色帶符號距離場字形相比,利用多通道可使帶符號距離場字形更好地縮放至更小尺寸。
基於 CPU 的粒子。
可選: 2D HDR 算繪 以獲得更佳的發光效果。
2D 工具
2D 物理
物理形體:
靜態形體。
動畫體(用於僅通過腳本或動畫移動的物體,如門和平臺)。
剛體。
靜態形體。
關節。
用於偵測形體進入或離開的區域。
碰撞偵測:
內建形狀:線、框、圈、橢圓。
碰撞幾何 (可手動繪製或從編輯器中自 Sprite 產生)。
3D 圖形
使用 sRGB 進行 HDR 算繪。
透視法、正視投影與錐臺偏移相機。
當使用 Forward+ 算繪器時,會採用深度預處理 (depth prepass) 來提升複雜場景的效能,藉此降低過度繪製 (overdraw) 的成本。
在 Forward+ 和行動算繪器中,於支援的 GPU 上使用 可變速率著色 功能。
基於物理的算繪(內建材質功能):
依照 Disney PBR 模型。
支援 Burley、Lambert、Lambert Wrap(半 Lambert)、Toon 漫反射著色模式。
支援 Schlick-GGX、Toon 和 Disabled 鏡面反射著色模式。
使用粗糙度金屬度工作流,支援 ORM 紋理。
使用地平綫镜面反射遮蔽(Filament 模型)提升材质外觀。
法線貼圖。
具有基於距離的自動細節級別的視差/浮雕貼圖。
反照率和法線貼圖的詳細貼圖。
次表面散射和透射率。
支援材質粗糙度的螢幕空間折射(達到模糊折射的效果)。
鄰近淡出(軟粒子)和距離淡出。
遠離時淡出可以使用透明度混合(alpha blending)或顏色抖動(dithering)避免穿過透明管線。
晃動可依像素級別或物件級別來判斷。
即時光照:
有向光照 (太陽/月亮)。每個場景最多可有 4 個。
全向光照。
有可調整圓錐角與衰減的聚光。
可以在每個光源的基礎上調整鏡面反射、間接光和體積霧的能量。
可調節的燈光 "大小" 來説明虛擬區域打光(也會使陰影更模糊)。
可以選擇距離漸變系統(distance fade system )來漸變遠處的燈光及其陰影,提高性能。
當使用 Forward+backend (桌面上的預設設定)時,燈光將使用集群前向優化進行算繪,以降低其單獨成本。集群算繪還取消了對網格上可以使用的燈光數量的任何限制。
當使用行動裝置算繪器時,每個網格資源最多可顯示 8 個泛光源和 8 個聚光燈。如有需要,可使用烘焙照明來克服此限制。
陰影對應:
DirectionalLight: 正交 (最快), PSSM 2-Split 與 4-Split。支援在 Split (切割) 間混合。
OmniLight: Dual Paraboloid (較快) 或 Cubemap (較慢但較精確)。支援 Panoramas 格式的色彩透射紋理 (Colored Projector Texture)。
SpotLight: 單一紋理。
陰影通常情況下會偏置補償和陰影平移,以減少可見的陰影失真和陰影懸浮的數量。
類似 PCSS 的陰影模糊效果,根據光源大小以及陰影投射到表面的距離進行計算。
晃動可依像素級別或物件級別來判斷。
以間接光照進行全域照明:
烘焙光照貼圖 (快速,但無法在執行時更新)。
僅支援烘焙間接光源或同時烘焙直接光源和間接光源。 烘焙模式可以在每種光線的基礎上進行調整,以允許混合光線烘焙設定。
支援使用基於八叉樹的自動系統照明動態對象。 不需要手動放置探頭。
可選支援基於球諧函式的平行光和粗糙反射。
光照貼圖在 GPU 上使用計算著色器烘焙(與 CPU 計算光照貼圖相比速度更快)。烘焙只能在編輯器中進行,不能在匯出的專案中進行。
支持使用 JNLM 進行基於 GPU 的 去噪,或使用 OIDN 進行基於 CPU/GPU 的去噪。
基於體素的 GI 探針。支援動態光源 以及 動態遮擋物,同時也支援反射。需要快速烘焙步驟,可以在編輯器中或在運行時執行(包含從匯出的專案)。
符號距離場景全域照明 (SDFGI) 專為大型開放世界設計。支援動態光源,但不支援動態遮擋物。支援反射。無需烘焙。
螢幕空間間接光照(SSIL),可以選擇半解析度或全解析度。它完全即時並支援任何類型的發光光源(包括裝飾)。
VoxelGI 和 SDFGI 使用延遲算繪通道,可以在半解析度下算繪全域光照,以提高性能(同時還支援 MSAA 抗鋸齒)。
反射:
基於體素的反射(使用 GI 探針時)和基於 SDF 的反射(使用有符號距離場 GI 時)。基於體素的反射在透明表面上可見,而粗糙的基於 SDF 的反射在透明表面上也可見。
使用 ReflectionProbe 來快速烘焙反射或較慢的即時反射。可選擇性開啟平行矯正。
支援材料粗糙度的螢幕空間反射。
可混合使用多個反射技術以取得更高的精確度。
當使用 Forward+ 算繪器(桌面平台的預設選項)時,反射探針會以叢集式前向優化方式算繪,以降低它們各自的成本。叢集式算繪也解除了網格上可使用的反射探針數量限制。
當使用行動算繪器時,每個網格資源最多可顯示 8 個反射探針。當使用相容性算繪器時,每個網格資源最多可顯示 2 個反射探針。
功能:
支援反照率, 發光、ORM, 和法線貼圖。
紋理通道可以平滑地疊加在底層材料之上,並支援普通/純 ORM 裝飾。
支援根據入射角度來淡出裝飾的法線淡出效果。
不依賴即時網格生成。這表示即使貼花每幀移動,也能在複雜的骨骼蒙皮網格上使用,且不會有效能損失。
最近、雙線性、三線性或各向異性篩選。
可選的距離衰減系統,用於淡化遠處的貼花,以提升效能。
當使用 Forward+ 彩現器(桌機預設)時,貼花會以叢集式前向最佳化方式彩現,以降低個別的效能成本。叢集式彩現也解除了單一網格上可使用貼花的數量限制。
當使用行動彩現器時,每個網格資源最多可顯示 8 個貼花。
天空:
全景天空 (使用 HDRI)。
程式天空和基於物理的天空,用於回應場景中的方向光。
支援 自訂天空著色器 可以進行動畫處理。
取決於所選的品質設定,用於環境光和鏡面反射光的輻射圖可以即時更新。
霧:
指數深度霧。
指數高度霧。
支援依照相機角度自動調整深度霧色彩 (以配合陽光的色彩)。
支援視覺著色器外掛。
支持控制霧氣算繪對天空的影響程度,並為傳統霧氣和體積霧氣提供獨立的控制選項。
支持使特定材質忽略霧氣效果。
體積霧:
對光影做出反應的全域 體積霧。
在使用VoxelGI或SDFGI時體積霧可以受間接光影響。
可以放置以向特定區域新增霧(或從特定區域去除霧)的霧體積節點。可以支援的形狀包括方框、橢圓、圓錐、圓柱和基於3D紋理的密度圖。
每個霧體積都可以有自己的自訂著色器。
可與傳統霧一起使用。
粒子:
基於 GPU 的粒子,支援子發射器( 2D+3D )、尾跡( 2D+3D )、吸引器( 僅限 3D )和碰撞( 2D+3D )。
支援 3D 粒子吸引器形狀:長方體、球體和 3D 向量場。
支援 3D 粒子碰撞形狀:長方體、球體、烘焙帶符號距離場和即時高度圖(適用於開放世界天氣效果)。
2D 粒子碰撞是使用基於場景中的 LightOccluder2D 節點即時生成的帶符號距離場來處理的。
尾跡可以使用內建的帶狀尾跡和管狀尾跡網格,也可以使用帶有骨架的自訂網格。
支援手動發射的自訂粒子著色器。
基於 CPU 的粒子。
後處理:
色調對應 (線性, Reinhard, Filmic, ACES)。
GLES3: 基於檢視區亮度自動調整曝光。
可以通過景深的遠近調節對焦外散斑的模擬(方框、六邊形、圓形)。
GLES3: 螢幕空間週遭遮擋。
以可選的雙立方放大發光,並有多種可用的混合模式:螢幕、軟廣、新增、取代。
輝光可以使用彩色污漬貼圖紋理,實作鏡頭髒汙效果。
發光效果可以 作為屏幕空間模糊效果使用。
使用單維漸變進行色彩校正。
可減少鏡面反射鋸齒的影響的粗糙度限幅器。
亮度、對比度與飽和度調整。
紋理篩選:
最近、雙線性、三線性或各向異性篩選。
晃動可依像素級別或物件級別來判斷。
紋理壓縮:
Basis Universal(速度較慢,但檔較小)。
GLES3: BPTC 以獲得高品質壓縮 (在 macOS 上不支援)。
GLES3: ETC2 (在 macOS 上不支援)。
GLES3: S3TC (在行動裝置與網頁平台上不支援)。
抗鋸齒:
時間 抗鋸齒 (TAA)。
AMD FidelityFX Super Resolution 2.2:參見 抗鋸齒 (FSR2),此技術可以原生解析度作為一種高品質的時間性抗鋸齒形式使用。
多取樣抗鋸齒 (MSAA)。
使用雙線性三維縮放和高於 1.0 的三維解析度比例進行超取樣抗鋸齒 (SSAA)。
在每種材質基礎上的 Alpha 抗鋸齒、基於多重取樣(MSAA)的 Alpha 覆蓋(Alpha-To-Coverage)和 Alpha 雜湊。
反射:
支援 以較低解析度算繪 3D ,同時保持原始比例的 2D 算繪。 這可用於提高低端系統的性能或改善高端系統的視覺效果。
解析度縮放可以選擇雙線性過濾或 AMD FidelityFX Super Resolution 1.0 (FSR1) 或 AMD FidelityFX Super Resolution 2.2 (FSR2)。
多級漸遠紋理 LOD 偏置會自動調整,以提高較低解析度比例下的品質。也可以通過手動偏移進行修改。
這些效果中大多數都可以調整為更佳效能或進一步提升品質。這些調整有助於在 using Godot for offline rendering。
3D 工具
3D 物理
物理形體:
靜態形體。
動畫體(用於僅通過腳本或動畫移動的物體,如門和平臺)。
剛體。
靜態形體。
Vehicle 形體 (用於處理 Arcade 物理而非模擬)。
關節。
軟體。
Ragdoll。
用於偵測形體進入或離開的區域。
碰撞偵測:
內建形狀:長方體、球體、膠囊體、圓柱體 (僅適用於 Bullet 物理)。
在編輯器內為任意網格產生三角碰撞區域。
在編輯器內為任意網格產生一個或多個凸碰撞區域。
著色器
2D: 自定頂點、Fragment 與光照著色器。
3D: 自定頂點、Fragment、光照與天空著色器。
使用 受 GLSL 啟發的著色器語言 編寫純文字著色器。
視覺著色器編輯器。
支援視覺著色器外掛。
撰寫腳本
一般:
可通過腳本來擴充節點的物件導向設計模式。
可通過訊號與群組來在腳本間進行通訊。
支援 跨語言腳本編寫 。
多種 2D 與 3D 線性代數資料型別,如向量與變換(transforms)。
High-level interpreted language with optional static typing.
語法的靈感來自 Python。然而 GDScript 不是 基於 Python。
在 GitHub 上有語法醒目提示。
可 使用執行緒 來進行異步操作,或使用多處理器核心。
打包為獨立二進位檔案,以減少檔案大小與相依性。
支援 .NET 8 或更高的版本。
完整支援 C# 12.0 語法與功能。
支援 Windows、Linux 和 macOS。自 Godot 4.2 起,也提供 Android 和 iOS 的實驗性支援。
在 iOS 平台上只支援某些架構:
arm64。瀏覽器平臺暫不支援。要在該平臺上使用 C # 請改用 Godot 3。
建議使用外部編輯器以獲得更多 IDE 功能。
GDNative (C, C++, Rust, D, ...):
音訊
功能:
單聲道、立體聲、5.1 與 7.1 輸出。
在 2D 與 3D 空間中的非位置性與位置性播放。
在 2D 與 3D 中提供可選的都卜勒效應。
支援可重新導向的 音訊匯流排 與特效,並包含數十種特效。
支援複調(使用單個 AudioStreamPlayer 節點播放多個聲音)。
支援視覺著色器外掛。
支援視覺著色器外掛。
支援順序 / 隨機取樣,包括在隨機取樣時防止重複。
Listener3D 節點可用於在 3D 空間中以與相機的位置進行監聽。
支援 程式化音訊產生。
錄製麥克風的音訊輸入。
MIDI 輸入。
尚未支援 MIDI 輸出。
所用 API:
Windows: WASAPI。
macOS: CoreAudio。
Linux: PulseAudio 或 ALSA。
匯入
支援 自定匯入外掛 。
格式:
圖片: 請參閱 匯入圖像。
音訊:
WAV,可選擇是否使用 IMA-ADPCM 壓縮。
Ogg Vorbis。
MP3。
圖片: 請參閱 匯入 3D 場景 。
glTF 2.0 (推薦) 。
.blend(隱式呼叫 Blender 的 glTF 匯出功能)。FBX (通過明確的呼叫 FBX2glTF )。
Collada (.dae)。
Wavefront OBJ (僅可使用靜態場景,可直接載入為網格)。
支援在執行期間載入 glTF 2.0 場景,包含從匯出的專案載入。
在匯入時使用 Mikktspace 為 3D 網格生成切線,保證與 Blender 等其他 3D 應用的一致性。
輸入
輸入對應系統,支援硬編碼輸入事件或可重新對應的輸入操作。
座標軸數值可對應至兩個不同的操作,並配有可設定的反應區域。
使用同一個程式碼來同時支援鍵盤與遊戲控制器。
鍵盤輸入。
可將按鍵以「物理模式」進行對應,以避免因鍵盤配置不同而影響對應。
滑鼠輸入。
可將滑鼠遊標設為可見、隱藏、捕捉、或限制於視窗內。
捕捉滑鼠輸入時,在 Windows 與 Linux 上會使用原始輸入,以繞過作業系統的滑鼠加速設定。
遊戲控制器輸入 (同時支援最多 8 組控制器)。
具有感壓支援的繪圖筆/繪圖板輸入。
網路
使用 StreamPeer 與 TCPServer 進行低階 TCP 網路通訊。
使用 PacketPeer 與 UDPServer 進行低階 UDP 網路通訊。
使用 HTTPClient 進行低階 HTTP 請求。
使用 HTTPRequest 進行高階 HTTP 請求。
支援 HTTPS,使用內建附帶的憑證。
使用 UDP 與 ENet 的 高階多人連線 API。
通過遠端程式呼叫 (RPC) 來自動複製。
支援不可靠、可靠、與有序的傳輸模式。
支援所有平台上的 WebSocket 客戶端與伺服器。
支援所有平台上的 WebRTC 客戶端與伺服器。
支援 UPnP,可在 NAT 環境下架設伺服器時免除連接埠轉發需求。
國際化
視窗環境與作業系統整合
在單個程序中生成多個獨立視窗。
移動、縮放、最小化與最大化由專案產生的視窗。
更改視窗標題與圖示。
喚起注意 (在大多數平台上,會使標題列閃爍)。
全螢幕模式。
在 Windows 上,預設情況下使用無邊框全屏進行快速切換,但也可以選擇使用獨佔全屏來減少輸入滯後。
無邊框視窗 (可用於全螢幕或非全螢幕)。
可將視窗設為總是在最頂端。
在 macOS 中可整合全域選單。
阻斷式或非阻斷式地執行指令。
使用預設或 (系統中有註冊時) 自定的通訊協定處理常式來開啟檔案路徑或網址。
解析自定命令列參數。
任何 Godot 二進位檔案(編輯器或匯出的專案)都可以 用作無頭伺服器 ,方法是用
--headless命令列參數啟動它。這允許在沒有GPU或顯示伺服器的情況下運作引擎。
行動裝置
支援 XR (AR 與 VR)
開箱即用的 OpenXR 支援 。
包含對 Meta Quest、Valve Index 等流行頭戴式裝置的支援。
透過外掛程式支援使用 OpenXR 的 Android 平台頭戴式裝置。
包含對 Meta Quest 1/2/3 Pro、Magic Leap 2 、Lynx R1等流行頭戴式裝置的支援。
其他設備通過XR外掛結構支持。
各種先進的工具包可用於實現XR應用程序所需的常見功能。
GUI 圖形界面系統
Godot 的 GUI 時使用在 Godot 中製作遊戲相同的 Control 節點製成的。編輯器的 UI 可通過擴充套件來輕鬆擴充。
節點:
按鈕。
勾選框、勾選按鈕、單選按鈕。
使用 LineEdit (單行)和 TextEdit (多行)進行文字輸入。TextEdit 還支援程式碼編輯功能,例如顯示行號和語法高亮。
使用 PopupMenu 與 OptionButton 製作下拉選單。
滾動條。
標籤。
使用 RichTextLabel 來顯示 使用 BBCode 格式化的文字 。
樹狀圖 (也可以用於顯示表格)。
支援 RGB 及 HSV 模式的取色器。
Control 節點可旋轉與縮放。
調整大小:
通過錨點 (Anchor) 來將 GUI 元素置於特定的角落、邊緣或置中。
通過容器 (Container) 來依照特定規則自動擺放 GUI 元素。
利用
canvas_items或viewport伸縮模式,支援 多種解析度。通過錨定與
Expand伸縮模式來支援任何長寬比。
佈景主題:
內建主題編輯器。
通過目前的編輯器佈景主題設定來產生佈景主題。
使用 StyleBoxFlat 來製作基於向量的佈景主題。
支援圓角與斜角、陰影,與每個邊都可調整的寬度。
通過 StyleBoxTexture 來以紋理製作佈景。
Godot 的小型發行版大小適合用於作為 Electron 或 Qt 的替代方案。
動畫
正向運動學與反向運動學。
支援以可客製化的插值算法來動畫化任何屬性。
支援在動畫軌中呼叫方法。
支援在動畫軌中播放聲音。
支援在動畫中使用貝茲曲線。
視訊格式
場景與資源可保存為 文字檔 或二進位格式。
文字檔為人類可讀取的格式,並較適合用於版本控制系統。
二進位檔案在保存與讀取大型場景或資源時較快。
使用 FileAccess 讀寫文字或二進位檔案。
可使用可選的壓縮或加密。
可讀寫 JSON 檔案。
可通過 ConfigFile 來讀寫 INI 格式的組態設定檔。
可序列化或復原序列化任何 Godot 資料型別,包含 Vector, Color…等。
可通過 XMLParser 來讀取 XML 檔案。
在匯出的專案中載入和儲存圖片、音訊/視訊、字型和 ZIP 壓縮檔,無需透過 Godot 的匯入系統。
可將遊戲資料打包進 PCK 檔案 (可更快讀取的客製化格式),或是打包進 ZIP 壓縮檔,亦或是直接打包進執行檔內來發行單一檔案。
匯出額外的 PCK 檔案 ,可讓引擎讀取,並用於支援 Mod 或 DLC。
雜項
Video playback 提供對Ogg格式的支援。
電影製作模式 可從正在運作的專案中錄製影片,並具有同步音訊和完美的影格同步。
低階伺服器存取 可在需要時繞過場景樹的一些瓶頸。
更多有關命令列參數的資訊,請參考 命令列教學 。
通過持續整合 (CI, Continuous Integration) 平台來匯出與部署專案。
可用於 Bash, ZSH 與 Fish 的 自動補全腳本 。
使用 print_rich 將彩色文字列印至所有平臺的標準輸出。
支援將 C++ 模組 靜態連結至引擎執行檔中。
引擎與編輯器以 C++03 撰寫。
可通過 GCC, Clang 與 MSVC 進行 編譯 。亦支援 MinGW。
對打包者友好。在大多數情況下,都可使用系統函式庫來代替 Godot 中提供的函式庫。建置系統不需要額外下載任何東西。建置過程完全可重現。
以鬆散的 MIT 授權條款授權。
開放的開發過程,且 歡迎參與貢獻 。
也參考
Roadmap Repository 中的文件說明了經討論同意且可能在未來版本中實作的功能。