9
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Siv3DAdvent Calendar 2018

Day 2

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

Posted at

param_.png

パラメータをソースコードで管理するのは大変です。
現在の 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();
	}
}

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

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

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

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

#補足

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

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

  • Double, Int, Vec2 型への対応
  • カラーエディターの修正
  • パラメータのセット作成・切り替え機能
  • ポート番号の変更
  • 古いパラメータの削除

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

9
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?