Posted at
Siv3DDay 2

2行で導入できるOpenSiv3D用パラメータ管理ツール

パラメータをソースコードで管理するのは大変です。

現在の OpenSiv3D(v0.3.0) にはスクリプト機能があるので状況は良くなっていますが、それでも GUI ツールほど手軽な調整はできません。

ということで OpenSiv3D 用のパラメータ管理ツールを試作しました。


パラメータ管理ツール

こちらで公開しています。

https://github.com/agehama/SivParamEditor

このツールは1つのヘッダ(ParamEditor.hpp)と OpenSiv3D プログラム(Editor.cpp)から成ります。


使用例

使用したいアプリケーションから ParamEditor.hpp をインクルードし、メインループの中で pmt::Update(); を呼びます。あとはpmt::GetColor(U"名前") のようにして色の取得を行うことができます。

#include <Siv3D.hpp>

#include "ParamEditor.hpp"

void Main()
{
while (System::Update())
{
Window::ClientRect().draw({
pmt::GetColor(U"BgTop"), pmt::GetColor(U"BgTop"),
pmt::GetColor(U"BgBottom"), pmt::GetColor(U"BgBottom")
});

pmt::Update();
}
}

このプログラムを単に実行すると、適当な色が勝手に割り当てられて描画されます。

この状態でエディターを起動すると、次のようにプログラム内で使用した色が自動的に読み込まれます。

この色の付いた部分をクリックして、色を変更すると元のアプリケーションにも反映されます。

このデータは作業ディレクトリ内の ParameterEditor/save.dat に自動的にセーブされるので、プログラムを終了しても次に起動した時に自動的に読み込まれます。


補足

調整が終わったら ParamEditor.hpp をインクルードする前に #define PMT_RELEASE_FLAG true というマクロ定義を書けばエディタとの通信が行われなくなるので、ほぼコスト0で呼び出すことができます。

まだ作り途中ですが、以下の機能追加・修正を予定しています(やる気が続く限り)。


  • Double, Int, Vec2 型への対応

  • カラーエディターの修正

  • パラメータのセット作成・切り替え機能

  • ポート番号の変更

  • 古いパラメータの削除


終わりに

冒頭の画像はこのエディターのソースコードでした(ツールを作るためのツールが欲しい)。