Godotのプロジェクト設定ファイルを理解する

Gobot

Godotプロジェクト設定ファイル(project.godot)の完全理解

Godot Engineにおいて、`project.godot` ファイルはプロジェクトの心臓部とも言える存在です。このファイルは、プロジェクト全体の動作、外観、そしてGodotエディタ自体の挙動を制御するあらゆる設定情報を格納しています。プロジェクトを作成または開いた際に、Godotエディタはこのファイルを読み込み、それに従ってプロジェクトを初期化します。したがって、このファイルの構造と各設定項目の意味を深く理解することは、効率的で堅牢なゲーム開発を行う上で不可欠です。

`project.godot` ファイルは、INIファイルに似た形式で記述されており、セクション(`[SectionName]`)とキーバリューペア(`key = value`)で構成されています。このシンプルな構造ゆえに、人間が読みやすく、またプログラムからも容易に解析・操作することが可能です。

`project.godot` ファイルの構成要素

`project.godot` ファイルは、大きく分けて以下のセクションで構成されます。

[general] セクション

このセクションは、プロジェクトの基本的な情報とグローバルな設定を定義します。

  • config/name: プロジェクトの名前を設定します。これはGodotエディタのウィンドウタイトルなどに表示されます。
  • config/icon: プロジェクトのアイコンを指定します。エクスプローラーやタスクバーに表示されるアイコンファイル(.png形式が推奨)へのパスを設定します。
  • config/version: プロジェクトのバージョン情報を設定します。
  • config/description: プロジェクトの説明文を設定します。
  • config/display/width: ゲームウィンドウのデフォルトの幅を設定します。
  • config/display/height: ゲームウィンドウのデフォルトの高さを設定します。
  • config/display/fullscreen: ゲームをフルスクリーンモードで起動するかどうかをブール値(true/false)で設定します。
  • config/display/borderless: フルスクリーン時にウィンドウの境界線を表示しないかどうかを設定します。
  • config/display/window_resizable: ウィンドウのサイズ変更を可能にするかどうかを設定します。
  • config/display/stretch_mode: 画面のストレッチモードを設定します。(例: canvas_items, viewport, disabled)
  • config/display/stretch_aspect: ストレッチモードにおけるアスペクト比の挙動を設定します。
  • config/filesystem/reload_remotes: リモートリソースをリロードするかどうかを設定します。
  • config/audio/mix_rate: オーディオのミキシングレートを設定します。
  • config/audio/channels: オーディオチャンネル数を設定します。
  • config/debug/print_error_stack: エラー発生時にスタックトレースを出力するかどうかを設定します。
  • config/debug/gdscript_warn_on_script_deprecation: GDScriptのスクリプト非推奨警告を表示するかどうかを設定します。
  • config/debug/gdscript_warn_on_redundant_compiler_output: GDScriptの冗長なコンパイラ出力警告を表示するかどうかを設定します。
  • config/debug/gdscript_warn_on_function_not_found: GDScriptの関数未発見警告を表示するかどうかを設定します。

[input] セクション

このセクションでは、プロジェクトで使用される入力アクション(キーボード、マウス、ゲームパッドなどの入力イベント)を定義します。

  • input_actions: ここに、定義したい入力アクションの名前を列挙します。各アクションは、個別のセクションとして定義されます。例えば、”move_left” というアクションを定義する場合、以下のような記述になります。

[input]
action_map=”move_left, jump, attack”

[rendering] セクション

このセクションは、レンダリングに関する設定を制御します。

  • renderer/rendering_method: 使用するレンダリングメソッドを指定します。(例: forward_mobile, forward_gles3, depth_prepass)
  • renderer/quality/depth_prepass_tolerance: デプスプリパスの許容誤差を設定します。
  • renderer/quality/disable_2d_pixel_snap: 2D描画でのピクセルスナップを無効にするかどうかを設定します。

[shader_cache] セクション

シェーダーキャッシュに関する設定を行います。

  • cache_path: シェーダーキャッシュを保存するディレクトリへのパスを指定します。

[debugger] セクション

デバッガーに関する設定を定義します。

  • wait_for_connection: デバッグ時に接続を待機するかどうかを設定します。
  • port: デバッガーが使用するポート番号を指定します。

[filesystem] セクション

ファイルシステムに関する設定を行います。

  • path/: 特定のディレクトリをプロジェクトのファイルシステムパスに追加する場合に使用します。

カスタム設定の追加

`project.godot` ファイルは、Godotが定義しているセクション以外にも、カスタムセクションを追加して独自の情報を格納することができます。これは、プロジェクト固有の設定値や、外部ツールとの連携に必要な情報を保存するのに便利です。

例えば、ゲームの難易度設定や、特定のAPIキーなどを保存するために、以下のようなカスタムセクションを作成できます。

[game_settings]
difficulty = “normal”
api_key = “your_super_secret_key”

これらのカスタム設定は、GDScriptなどのスクリプトから `ProjectSettings` クラスを使用してアクセスできます。

var difficulty = ProjectSettings.get_setting(“game_settings/difficulty”)

GDScriptからの `project.godot` へのアクセス

Godotのスクリプト(GDScriptなど)からは、`ProjectSettings` クラスを通じて `project.godot` ファイルにアクセスし、設定値の取得や変更が可能です。

  • get_setting(name: String, default: Variant = null): 指定された設定値を取得します。第一引数に設定名(例: “config/name”)を、第二引数にデフォルト値を指定します。
  • set_setting(name: String, value: Variant): 指定された設定値を変更します。
  • save(): 変更した設定を `project.godot` ファイルに保存します。

この機能を利用することで、ゲーム実行中に設定を変更し、それを永続化するといった動的な設定管理が可能になります。

`project.godot` ファイルの編集方法

`project.godot` ファイルは、テキストエディタで直接編集することができます。Godotエディタの「プロジェクト」メニューから「プロジェクト設定を開く」を選択すると、GUIで設定を編集できますが、これは内部的に `project.godot` ファイルを操作しています。より詳細な制御や、スクリプトからの自動変更を行いたい場合は、直接ファイルを編集することが推奨されます。

ただし、ファイル形式を誤って変更したり、不正な値を設定したりすると、プロジェクトが正しく読み込まれなくなる可能性があります。編集する際は、細心の注意を払い、バックアップを取ることをお勧めします。

まとめ

`project.godot` ファイルは、Godotプロジェクトの根幹をなす設定ファイルであり、その構造と内容を理解することは、プロジェクトのカスタマイズ性、管理性、そして開発効率を大幅に向上させます。グローバル設定、入力アクション、レンダリングオプション、そしてカスタム設定まで、この一つのファイルがプロジェクトのあらゆる側面を制御しています。GUIでの設定編集だけでなく、直接ファイルを編集することで、Godotの持つ高度なカスタマイズ性を最大限に引き出すことができます。