Godot (ゲームエンジン)
![]() | |
![]() Godot 3.4のエディタ | |
開発元 | コミュニティ |
---|---|
初版 | 2014年1月14日[1] |
最新版 | 4.3 - 2024年8月15日[2] [±] |
最新評価版 | 4.4.1 RC 1 - 2025年3月14日[3] [±] |
リポジトリ | |
プログラミング 言語 |
[4](エンジン内部) (スクリプト) |
対応OS | |
対応言語 | 16言語 |
サポート状況 | 開発中 |
種別 | ゲームエンジン |
ライセンス | MIT License |
公式サイト |
godotengine |
Godot(ゴドー)は、クロスプラットフォームかつオープンソース(MITライセンス)の2D/3Dゲームエンジンである。アルゼンチンのソフトウェア開発者であるJuan LinietskyとAriel Manzurが、ラテンアメリカの複数の企業向けにブエノスアイレスで開発し、2014年に一般公開された。開発環境(エディタ)はWindows、macOS、Linuxで動作し、開発対象となるプラットフォームはPC、スマートフォン、Webブラウザ (WebGL) と、多様なプラットフォーム上で動作するように設計されている。
概要
Godotは統合ゲーム開発環境として開発されているため、 CGアセットや音楽といった素材を除いてゲームをスクラッチで制作することを可能にしている。「シーン」による入れ子構造によって構成される独特のゲームデザインアーキテクチャを用いている。スクリプトからグラフィック素材に至るまで、ゲームの構成部品すべてが独立したファイルシステム(またはデータベース)に統合される。この管理システムはバージョン管理システムと併用することも可能である[5]。
Godotは複数のプラットフォームへの出力をサポートしており、開発者はスマートフォン、Web、PC、ゲーム機など多くのプラットフォームに対応できる。テクスチャ圧縮や解像度をプラットフォーム毎に設定することも可能である。
現在サポートされているプラットフォームはWindows、macOS、Linux、iOS、Android、Webブラウザの他、W4 GamesがNintendo Switch、PlayStation 5、Xbox Series X/Sへのエクスポートライセンスを販売している[6]。
スクリプティング
ゲームの作成はPythonに近い独自のスクリプト言語であるGDScriptによって成される(C#を利用可能な版もある。またC/C++コードを呼び出すことも可能)。GDScriptはその基となったPythonよりも変数の厳格な記法が可能で、「シーン」を礎となすGodotのアーキテクチャに最適化されたものになっている。エンジン開発者は当初外部のプログラミング言語を検討していたが、結局高度な最適化とエディタへの統合が成されたカスタム言語を採用することになったと述べている[7]。
Godotにはオートインデントやシンタックスハイライト、コード自動補完などの機能を有するスクリプトエディタが統合されている。またブレークポイントおよび プログラムステッピングを設定できるデバッガも有している。
一方で、GodotはVisual Studio Code[8]などの外部エディタや統合開発環境と連携して開発を行うことも出来る。
また、バージョン3からはビジュアルスクリプトが利用可能になり、Unreal Engineのブループリント[9]やBlender Game Engineのロジックエディター[10]のような視覚的なプログラミングが可能である。しかし、次期メジャーアップデートであるGodot 4.0ではビジュアルスクリプトの廃止がなされることがアナウンスされた[11]。
描画機能
Godot 4.xはVulkanを介した描画機能を提供する。さらにDirect 3D 12(Windows版Godot 4.3以降とXBox),Metal(Apple silicon版Mac版Godot 4.4以降,Intel Mac版Godotは今後もMetalへの対応予定はなくMoltenVK経由での動作である)が実験的にサポートされたもののGodot開発陣は今後もVulkanとOpenGLをデフォルトのレンダラーとする方針を示しておりDirect 3DやMetalの本格的なサポートには消極的である。またCompatibility(互換性)モードの形でOpenGL ES 3.0をサポートする[12]。
エンジンは透明度、法線マッピング、スペキュラ、シャドウマップを用いた動的な影や、FXAA、ブルーム効果、被写界深度、HDR、ガンマ補正やフォグ等のフルスクリーンポストプロセッシング効果を実装している。シェーダーはマテリアルやポストプロセッシングはもちろん、2DCGレンダリングに対しても用いることができる。
Godotは独立した2Dグラフィックスエンジンを備えており、3Dのそれとは別に動かすことができる。2Dエンジンの機能の一例としてライティングやシェーディング、タイルセット、多重スクロール、2Dポリゴン、アニメーション、パーティクルに加えて物理演算エンジンを備えている。これら2Dと3D二つのグラフィックスエンジンを「ビューポートノード」を用いて併用・統合させて用いることが可能であり、エンジンの大きな特徴となっている。
レンダリングメソッドは Forward+ (Clustered lighting) をPC向けに採用しており、このため depth pre-pass を持つ[13][14]。これにより光源数の制約が緩くかつピクセルシェーダーの負荷も小さく抑えられている。また ver 4.3 の段階では deferred rendering を実装していない。
シェーダー
GodotはGLSLに似た独自シェーディング言語 Godot shading language(拡張子: .gdshader
)およびビジュアルエディタを提供しており[15][16][17]、これらを用いてシェーダーを制御できる。シェーダーはプログラム可能なステージにあたる processor functions を持ち、ここに各ステージの処理を記述する[18]。Godot 4.2 ではvertex()
/ fragment()
/ light()
および start()
/ process()
/ sky()
/ fog()
の7種類の processor functions が定義されている。またシェーダーはレンダリングの種類に応じたタイプ設定(shader_type)を持つ。タイプに応じてレンダリング方式・ビルトイン値・対応 processor functions が変更される[19]。Godot 4.2 では spatial
/ canvas_item
/ particles
/ sky
/ fog
の5種類のタイプが定義されている[20]。更にGodotが内部でおこなうシェーダー処理の振る舞いを変更するレンダーモード設定(render_mode)をもつ[21]。
頂点シェーダー
頂点シェーダーの制御は vertex()
processing function 内に記述される[22]。Godot はデフォルトで暗示的なモデル・ビュー・投影変換をおこなっており[23]、これはレンダーモードでオフ・変更できる(マニュアル実装できる)[24]。
その他の特徴
Godotはアニメーション作成用のGUIを備えており、スケルタルアニメーション、ブレンディング、アニメーションツリー、モーフィング、リアルタイムカットシーンを編集できる。これによって定義した任意のアニメーションで、ゲームエンティティを動かせる。3D物理エンジンにはJolt Physicsを実験的に採用している。Godotの標準機能としてのTerrain(3D)は今後も搭載しない方針がGodot開発陣から示されている。「Terrain(3D)はプラグインで」というGodot開発陣の方針である。
他にも以下のような機能を備えている:
- オクルージョンカリング
- Level of detail
- パフォーマンス統計のグラフ化
- ライティング
- マルチスレッド処理
- プラグインシステム
- レンダリングターゲット
- 動画再生機能(Theora)
- 音声再生機能(Ogg Vorbis,MP3,WAV)
- パーティクルシステム
- テクスチャ入力/出力/圧縮パイプライン
- Navmeshのサポート
- GUI
- キーボード、マウス、ゲームパッドとタッチ操作のサポート
- OpenXRプラグインを使用したVRのサポート
歴史
Godotの開発がJuan 'reduz' LinietskyとAriel 'punto' Manzurによって開始されたのは2007年のことである[25][26]。Linietskyはプレゼンテーションにおいて、"Godot"の名は「エンジンに新しい機能を追加し、完璧なものへと近づけたい」という永遠の叶わぬ願いをサミュエル・ベケットの劇「ゴドーを待ちながら」になぞらえて取られたということを述べている[27]。2014年2月、GodotのソースコードがMITライセンスでGitHubに公開される[28]。
2014年12月15日、Godotはライトマッピングやナビメッシュによる経路探索のサポートを追加し、シェーダー機能を強化したバージョン1.0をリリースし、これが初の安定版となった[29]。次いで2015年5月21日にリリースされたバージョン1.1はコードエディター上でのオートコンプリートの改善、ビジュアルシェーダーエディター、OSのウィンドウ管理のためのAPI、ダークテーマを追加し、Blender用Colladaエクスポーターの改善がなされた。また、2Dエンジンの書き直しとそれに伴い2Dナビゲーションポリゴンのサポートが追加される[30]。新しい2Dエンジンはシェーダーやマテリアル、独立したノード毎のZオーダー、光源やポリゴンを用いたシャドウ、法線マッピングの他、Distance-fieldフォントのサポートが改善された。
2015年11月4日、GodotはSoftware Freedom Conservancyのメンバー・プロジェクトとなる[31]。
2016年2月23日、Godotは安定版としてバージョン2.0をリリースした。シーンのインスタンス化と継承、複数シーンの編集機能やデバッガー等が改善され、新しいファイルブラウザが追加された[32]。更に2016年8月リリースのバージョン2.1では、アセットデータベースやプロファイル、プラグインAPIの追加がなされた[33]。
2016年6月22日、 GodotはMozilla Open Source Support (MOSS) の“Mission Partners”アワードからWebSocket、 WebAssemblyとWebGL 2.0のサポートへの支援として20,000ドルの支援を受けた[34]。
2018年1月29日、 Godotはバージョン3.0をリリースした。3DレンダリングとVRの互換性が向上し、C#(Mono)がサポートされた。ゲームの開発言語をC#のみに一本化したUnityと異なりGodotではGDScriptが引き続きゲームの開発に使用可能である。エクスポートについてWebGL 2.0がサポートされた。WebエクスポートについてWebGL 1.0をサポートするGodotはGodot 3.1以降のGodot 3.xが最後である。WebエクスポートについてGodot 4.0以降ではWebGL 1.0はサポートされずWebGL 2.0のみがサポートされる。glTF 2.0のインポートがサポートされた。Linux版Godotエディタで日本語入力が可能になった。また組み込み3D物理エンジンはBullet物理エンジンがデフォルトとなったが従来のGodot Physicsも選択可能である。デフォルトのBullet物理エンジンの衝突判定が渋い場合は従来のGodot Physicsを選択する。MP3の特許切れを受けGodot 3.3以降でMP3形式音声ファイル(.mp3)の再生がサポートされた。
2023年3月1日、Godotはバージョン4.0をリリースした[35]。新しいVulkanレンダラーの追加、.NETのオープンソース化を受け、C#(Mono)が廃止されC#(.NET)へ一本化される。この一本化はC#についてMonoから(オープンソース化された).NETへ一本化されるという意味でありGDScriptは引き続き使用可能である。前述のように.NETがオープンソース化されたためC#(.NET)はLinux版Godot 4.xやMac版Godot 4.xでも使用可能である。WebエクスポートについてWebGL 1.0のサポートが廃止されWebGL 2.0のみのサポートとなる。SDFベースのグローバルイルミネーションの追加、物理エンジンの刷新(2.x時代・3.x時代のものとは異なる新しいバージョンのGodot Physics)GDScriptランタイムの性能向上、WebXRへの対応、Blenderのネイティブファイル形式である.blend形式ファイルのインポートのサポートなどが行われた。Linux版Godot 4.3以降でWaylandがサポートされた。
採用ゲーム一覧
OKAMスタジオのゲームの多くがGodotを用いて作られている。コミュニティ製のオープンソースのゲームに用いられることもある[36]。
- El Asombroso Show Zamba
- Dog Mendonça & Pizza Boy
- Anthill
- Running Nose
- Project Carnival
- DynaDungeons
- Minilens
- Tanks of Freedom
- ソニック カラーズ アルティメット
- Road to Vostok
脚注
- ^ Linietsky, Juan (2014年1月14日). “First public release!”. godotengine.org. 2020年9月21日閲覧。
- ^ “Godot 4.3, a shared effort”. godotengine.org. 2024年8月15日閲覧。
- ^ “Release candidate: Godot 4.4.1 RC 1”. godotengine.org. 2025年3月15日閲覧。
- ^ “Godot Game Engine”. Open Hub. 2020年7月30日閲覧。
- ^ “File Systems”. Godot documentation. Godot. 2016年2月6日時点のオリジナルよりアーカイブ。2016年1月29日閲覧。
- ^ “Compiling for Universal Windows Apps”. W4 Games. 2023年12月11日閲覧。
- ^ “GDScript History”. Godot documentation. Godot. 2016年2月6日時点のオリジナルよりアーカイブ。2016年1月29日閲覧。
- ^ Visual Studio CodeなどのメジャーなエディタではGodot向けの拡張機能が用意されている。
- ^ “Unreal Engine ブループリント”. 2021年11月13日閲覧。
- ^ “Blender Game Engine ロジックエディター”. 2021年11月13日閲覧。
- ^ “Godot 4.0 will discontinue VisualScript”. godotengine.org. 2022年9月2日閲覧。
- ^ "Rendering 3 rendering methods ... are available: ... Forward+, running over Vulkan 1.0 ... Forward Mobile, running over Vulkan 1.0 ... Compatibility, running over OpenGL 3.3 / OpenGL ES 3.0 / WebGL 2.0" Godot. List of features. Godot Engine 4.1 documentation. 2023-09-16閲覧.
- ^ "Rendering methods Forward+ This is a forward renderer that uses a clustered approach to lighting." Godot. Internal rendering architecture. Godot Engine 4.3 documentation. 2024-08-18閲覧.
- ^ "Godot has a more or less uniform cost per pixel thanks to the depth pre-pass." 以下より引用。Godot. 3D - Standard Material 3D and ORM Material 3D. Godot Engine 4.3 documentation. 2024-08-18閲覧.
- ^ "Godot provides a shading language based on the popular OpenGL Shading Language (GLSL) but simplified." 以下より引用。Godot. Shaders - Introduction to shaders. Godot Docs. 2024-08-11閲覧.
- ^ "A custom shader program implemented in the Godot shading language, saved with the
.gdshader
extension." 以下より引用。Godot. All classes - Shader. Godot Docs. 2024-08-11閲覧. - ^ "VisualShaders are the visual alternative for creating shaders." 以下より引用。Godot. Shaders - Using VisualShaders. Godot Docs. 2024-08-11閲覧.
- ^ "shaders are made up of main functions called 'processor functions'. Processor functions are the entry point for your shader into the program." 以下より引用。Godot. Shaders - Introduction to shaders. Godot Docs. 2024-08-11閲覧.
- ^ "Shader types Instead of supplying a general-purpose configuration for all uses ... , you must specify the type of shader you're writing. Different types support different render modes, built-in variables, and processing functions." 以下より引用。Godot. Shaders - Introduction to shaders. Godot Docs. 2024-08-11閲覧.
- ^ "Here are the available types: ... spatial ... canvas_item ... particles ... sky ... fog" 以下より引用。Godot. Shaders - Introduction to shaders. Godot Docs. 2024-08-11閲覧.
- ^ "Render modes Shaders have optional render modes ... Render modes alter the way Godot applies the shader." 以下より引用。Godot. Shaders - Introduction to shaders. Godot Docs. 2024-08-11閲覧.
- ^ "Vertex processor The
vertex()
processing function is called once for every vertex" 以下より引用。Godot. Shaders - Introduction to shaders. Godot Docs. 2024-08-11閲覧. - ^ "By default, Godot transforms your vertex information for you, which is necessary to project geometry onto the screen." 以下より引用。Godot. Shaders - Introduction to shaders. Godot Docs. 2024-08-11閲覧.
- ^ "Users can disable the built-in modelview transform (projection will still happen later) and do it manually ... Users can override the modelview and projection transforms using the
POSITION
built-in." 以下より引用。Godot. Shaders - Shading reference - Spatial shaders. Godot Docs. 2024-08-11閲覧. - ^ StraToN. “SteamLUG Cast”. 2016年6月18日閲覧。
- ^ reduz. “Godot history in images!”. 2016年6月18日閲覧。
- ^ “Juan Linietsky presentation of Godot at RMLL 2015 in Beauvais, France” (2015年7月7日). 2017年10月2日閲覧。
- ^ liamdawe (2014年2月14日). “Godot Game Engine Is Now Open Source”. 2017年10月2日閲覧。
- ^ “Godot Engine Reaches 1.0, Releases First Stable” (2014年12月15日). 2014年12月16日時点のオリジナルよりアーカイブ。2014年12月16日閲覧。
- ^ “Godot 1.1 Out!!”. 2015年5月24日時点のオリジナルよりアーカイブ。2015年5月22日閲覧。
- ^ “Godot Game Engine is Conservancy's Newest Member Project”. 2015年11月13日閲覧。
- ^ “Godot Engine Reaches 2.0 Stable” (2016年2月23日). 2017年6月1日閲覧。
- ^ “Godot Reaches 2.1 Stable” (2016年8月9日). 2017年6月1日閲覧。
- ^ “Mozilla Awards $385,000 to Open Source Projects as part of MOSS "Mission Partners" Program”. The Mozilla Blog. 2016年10月17日閲覧。
- ^ "1 March 2023 ... Welcome to the start of Godot 4" Godot. (2023). Godot 4.0 sets sail: All aboard for new horizons.
- ^ “Awesome Godot - a curated list of free/libre games, plugins, add-ons and scripts for Godot.”. GitHub. 2015年7月25日閲覧。
外部リンク
Godot
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/08 22:55 UTC 版)
「3DCGソフトウェア」の記事における「Godot」の解説
※この「Godot」の解説は、「3DCGソフトウェア」の解説の一部です。
「Godot」を含む「3DCGソフトウェア」の記事については、「3DCGソフトウェア」の概要を参照ください。
- GoDotのページへのリンク