省型旧形国電の残影を求めて

戦前型旧形国電および鉄道と変褪色フィルム写真を中心とした写真補正編集の話題を扱います。他のサイトでは得られない、筆者独自開発の写真補正ツールや補正技法についても情報提供しています。写真補正技法への質問はコメント欄へどうぞ

CTL プログラミング Tips: モジュールに配置する UI 要素の順番指定

f:id:yasuo_ssi:20210904211415j:plain

 ART の CTL プログラミングでは UI 要素として、 // @ART-param: [... コントロール文で、モジュールのコントロール要素を配置することができます。このコントロール要素を配置する順番ですが、プログラム上の // @ART-param: [... コントロール文 の順番では決まりません。

 どこで決まるかというと、// @ART-param: [... コントロール文 で取得する変数の ART_main 関数で引数として引用する順番で決まります。

 例えば、以下の UI ですが...

CTL で指定した UI 要素

 以下のコードで順番が決まります。

CTL のコード

 上の引数で、varying float r, varying float g, varying float b はイメージから入力される変数ですので、UI 要素と関係ありません。その次に

              int param_choice
              bool bl_AreaPrView,
              float Pivot, float Skew, 
              float R, float G, float B, float L, 
              float Gamma, float Strength,

              output varying float rout,
              output varying float gout,
              output varying float bout,

              bool bl_AplUniValue

の順番で引数が参照されますが、そのうち、output で始まる変数は、出力変数なのでやはり UI と関係ありません。

 そして、 int param_choice  が UI の Taeget Color を指定する変数、bool bl_AreaPrView が、ターゲットエリアのプレビューを指定する変数、 float Pivot は、Pivot of color threshold で指定した値を受ける変数、float Skew が、Skew of target color で指定した値を受ける変数、 float R, float G, float B, float L は、Red, Green, Blue, Lightness の補正値を受ける変数... という順番になっています。

 ちょっとわかりにくいので、ご注意ください。

------------

[追記]

 Ver. 1.21.1 で仕様変更がありました。// @ART-param: [... コントロール文の順番通りに UI 上に要素が並ぶように変更されました。ただし、旧バージョンとの互換性を考えると極力、このコントロール文の順番と引数を並べる順番を一致させておいた方が無難です。ご注意ください。