VSTe VSTGUI inline UI Editor 基本的な使用方法

提供:yonewiki
2023年5月30日 (火) 16:21時点におけるYo-net (トーク | 投稿記録)による版 (→‎inline UI Editorのパラメータ)

VSTeプログラミング初歩に戻る。

プラグイン開発 概要

 VSTGUI inline UI Editorの項目一覧にVSTGUI inline UI Editorの全貌をまとめましたので、これについてひとつづづ確認してみようとする記事です。


アニメーションノブ AnimationKnob について

 VSTGUI inline UI EditorでKnobを作るときに、Animation Knob、OnOffButton、Kick Buttonという方式を使う場合、同一pngファイル内にアニメーションするように画像を並べて読み込ませるような連続フレーム画像が必要になります。Animation Knobでもノブ以外にスライダーやUVメータのようなデザインを割り当てることで、動作を表現できます。ノブとは回転させるようなつまみの操作部分です。OnOffButtonは、0と1を切り替えるような2値で、0のときの図柄と1のときの図柄を連続フレームのように同じ画像内で並べるような形で表現します。Kick Buttonは、押した瞬間。つまりクリックした瞬間だけ1になって一瞬図柄が変わるようなパターンです。連続フレームとは例えば、以下のような画像です。


https://www.g200kg.com/en/webknobman/gallery.php?m=p&p=2006

アニメーションノブ *.pngの例


 一から作るとなるとかなりのデザインセンスが問われるところですが、数千にもおよぶフリーのノブが提供されているWebSiteがあります。


■KnobAnimation g200kg ギャラリー


 です。しかも独自に開発されたJKnnobMAN 1.3というツールを使うと少しカスタマイズまでできてしまう形式で提供されています。JKnnobMAN 1.3はWebアプリとしても提供されていて、Web版はWebKnobMANという名前です。


 にアクセスすることで、使えます。でも最初は、Mac OR Winのアプリケーション版で使い方をマスターしてから、使うとよいでしょう。ギャラリーから納得のいくノブをみつけたらクリックすると3つのアクションが選べます。


  • *.knobファイルとしてダウンロード
  • 簡単png形式変換
  • WebKnobMANで開く


 の3つです。真ん中を選んで、遷移する画面で画像の大きさと回転のステップ数(Rendering Frame)を数値で指定して Export Exec(エクスポートを実行)ボタンを押すと*.pngとして出力されたものがダウンロードできます。


 JKnobMANでさらなるカスタマイズを覚えるには、一番目の*.knobファイルをダウンロードして、ツールで読み込んでいろいろ操作してみるのが楽しいです。このツールのチカラも借りながら、自分で唯一のKnobファイルを作るのも楽しいです。Knobマニアは3Dモデリングツールでノブをデザインしてみたりしてリアルなものを作ったりもします。ギャラリーにはそういった過程を経たすごいものもあります。


 上達してきたらWeb版を使ってみるのもよいでしょう。


 自分はこのギャラリーから一つを選らんで使い続けてみることにします。まず、選んだこのノブは64[px]x64[px]の32個分です。縦は64[px]*32で2048[px]です。では選んだ画像を以下に一覧してみましょう。


https://www.g200kg.com/en/webknobman/gallery.php?m=p&p=1558

VU 1 ani.apng
143[px]×64[px]


https://www.g200kg.com/en/webknobman/gallery.php?m=p&p=2006

Knob Blue ani.apng
64[px]x64[px]


https://www.g200kg.com/en/webknobman/gallery.php?m=p&p=1596

Blue arrow slider 03 ani.apng
64[px]x64[px]


Blue Button 0.png
Blue Button 1.png
64[px]x64[px]

 

inline UI Editorのパラメータ

AnimationKnobのパラメータ

  • inverse-bitmap
フレーム連結ビットマップの反転(下側に配置したものが0、上側が1になる。)


  • height-of-one-image
1フレームあたりの高さピクセル数


  • sub-pixmaps
フレーム連結ビットマップにおけるフレーム数(ビットマップ全体の高さ÷1フレームの高さ)基本的には自動で計算されます。指定する必要があるときに設定します。


  • angle-start
ノブの角度値の開始位置(半時計周りが正方向)。通常は135(90+45)[°]が開始位置になる。


  • angle-range
ノブの角度値の終了位置(開始位置基準で時計周りが正方向)。通常は270(90*3)[°]が開始位置になる。


  • value-inset
調査中


  • zoom-factor
マウスでドラッグしたときの移動量によるパラメータの増減値の大きさ。指定した値が大きいほど微動で小さいほど粗動になる。

 

Controlタグを使うViewsの共通のパラメータ

  • control-tag
Tagsパラメータで登録している値から選択して制御対象を決める部分。Tagsはメニュー[Edit]-[Sync Parameter Tags]でプログラム中でパラメータとして登録している値と同期をとることができる。


Tags値はプログラムでは以下の部分と同期している。

tresult PLUGIN_API (任意のクラス名)::initialize(FUnknown* context)
{

	tresult result = EditController::initialize(context);

	if (result == kResultTrue)
	{

		RangeParameter* param1 = new RangeParameter(STR16("変数名"), 列挙番号, STR16(""), 0.0, 1.0, 0.8);
		parameters.addParameter(param1);

    }
}


 上記により、変数名と列挙番号の対になる値を取得する。列挙番号はパラメータ毎に唯一となるユニークな整数が付与すること。


  • default-value
規定値を設定する。以下に示す。min-valueとmax-valueの中の値を設定する。


  • min-value
最小値を設定する。規定値は0


  • max-value
最大値を設定する。規定値は1


  • wheel-inc-value
UI上でマウスホイールを動かした時の増減値。小さいほど微動、大きいほど粗動

 

全てのViewsの共通のパラメータ

  • origin
UIを配置するx座標,y座標の値。


  • size
UIの大きさを表すx座標量,y座標量。


  • opacity
下地と重ね合わせる場合の不透明度。


  • [ ]transparent 規定値 Off


  • [ ]mouse-enable 規定値 on


  • [ ]wants-focus 規定値 Off


  • bitmap
各UIの主要な外観となる画像をBitmapsで定義したものから選択。Animation系ViewとOnOffButtonとKickButtonは垂直フレーム連結画像を指定。


  • disabled-bitmap


  • auto-size([ ]left/[ ]top/[ ]bottom/[ ]right)


  • tooltip


  • custom-view-name


  • sub-controller


  • uidesc-label

 


VSTeプログラミング初歩に戻る。