無料・軽快な 2D / 3D 用のゲームエンジン Godot Engine 4 で、ConfigFile クラスを用いて、Config ファイルを作成して任意の設定値を保存する実装例を紹介します。
Dictionary 型のデータの要素に対応したキーと値の組み合わせの設定値を、指定されたファイルのセクションに保存します。

※ GodotEngine 4.3 を使用しています。.NET 版ではありません。
※スクリプトは自己責任でご利用ください。
スクリプト例
以下は、テスト用のシーンのルートノードに割り当てるスクリプトです。
Config ファイルへの保存は、ConfigFile クラスの set_value, save 関数を使用しています。
extends Node
## ConfigFile のセクションの読み書きを Dictionary 型を用いて行う関数とそのテストです。
## F6 キーでこのスクリプトを割り当てたシーンを実行すると起動直後にテストが実行されます。
# Called when the node enters the scene tree for the first time.
func _ready():
test_save_config_file_section_from_dictionary()
return
## save_config_file_section_from_dictionary のテスト関数です。
## CONFIG_FILE_PATH で指定したファイルパスにコンフィグファイルを保存します。
func test_save_config_file_section_from_dictionary():
## 以下のパスに .cfg ファイルが作成されます。
const CONFIG_FILE_PATH = "res://study/config_file/sample.cfg"
const CONFIG_FILE_SECTION = "scale_correction_value"
## セクション内に保存されるデータです。
var dic_answer = {}
dic_answer["Label"] = 0.9
dic_answer["Button"] = 1.0
# 辞書のデータ群を、指定した Config ファイルのセクションに保存します。
# ファイルが存在しない場合は作成し、存在する場合は辞書の要素ごとに上書きします。
print("save_config_file_section_from_dictionary call")
save_config_file_section_from_dictionary(
CONFIG_FILE_PATH, CONFIG_FILE_SECTION, dic_answer)
return
## 指定した .cfg ファイルのセクションに、辞書型のデータを保存します。
## 辞書の要素のキーは、ConfigFile.set_value の key 引数、値は value 引数に対応します。
func save_config_file_section_from_dictionary(
path: String, section: String, dic: Dictionary) -> void:
# セーブする dic の要素を1つずつ config_file に設定します。
var config_file := ConfigFile.new()
for key in dic.keys():
config_file.set_value(section, key, dic[key])
# Config ファイルに保存します。
var err = config_file.save(path)
if err != OK:
push_error("study_config_file_to_dictionary.gd:" +
"save_config_file_section_from_dictionary:" +
"config_file.save(path) != OK, path = ", path)
return
処理の流れ
そのシーンを実行すると、起動直後に _ready イベント関数で、以下の辞書変数の内容を指定したファイル、セクションに保存するテスト関数を呼び出します。
※「dic_answer[“キー”] = 値」の形式です。
dic_answer["Label"] = 0.9
dic_answer["Button"] = 1.0テスト関数で作成した dic_answer 辞書変数の要素群を、save_config_file_section_from_dictionary 関数で Config ファイル(例:res://study/config_file/sample.cfg)の指定したセクション(例:scale_correction_value)に保存します。
Config ファイルがない場合は新規作成します。ある場合は、キー単位で値を上書きします。
テスト
新規作成したシーンのルートノードに、前述のスクリプトを割り当て、 F6 キーなどでシーンを実行します。
実行すると、指定したパス(例:res://study/config_file/sample.cfg)に Config ファイルが作成されます。

Config ファイルの内容を見ると、さきほど辞書変数に設定したキーと値に対応した項目が、指定されたセクションに保存されています。
[scale_correction_value]
Label=0.9
Button=1.0
まとめ
- ConfigFile の set_value, save 関数で、指定した Config ファイルのセクションに設定値(キーと値の組み合わせ)を保存しました。
- 設定値は、Dictionary 型の変数に設定した要素に対応した、キーと値の組み合わせを保存しました。
参照サイト Thank You!
- Godot Engine – Free and open source 2D and 3D game engine
- Dictionary — Godot Engine (4.3) documentation in English
- ConfigFile — Godot Engine (4.3) documentation in English
記事一覧 → Compota-Soft-Press
コメント