📃

DaVinci Resolveのsettingファイルの再編集(ページ設定編)

に公開

マクロのページ設定もカスタマイズできる

マクロのページ設定について興味深い投稿を見つけました。
通常はマクロを書き出すとインスペクタ上のページはマクロでページ設定をしていない限りコントロールページ(Controls)と設定(Common)ページのみになります。
Fusionページで見た時のアイコンはこんな感じです。

そこへ各ノードに追加したコントロールなどに新しくページ設定するとインスペクタ上に新しいページが出現します。

ControlID = {
    INPID_InputControl = "コントロールの種類",
    LINKS_Name = "コントロールの表示名",
    ICS_ControlPage = "所属するページ"  -- 既存のページでない物を記述すると新たにページができる
},

ページ名はユーザーが任意の名前を付ける事が可能ですが、アイコンは魔法の杖のようなアイコンに限定されます。
そして、Controlsページに所属するコントロールが無くてもControlsページはなくなりませんし、Commonページを表示したくなくても表示されています。

その投稿内容を見るとControlsページとCommonページを非表示にする方法とアイコンのカスタマイズやツールチップ(ページにマウスオーバーした時に出る注釈)の記載方法などが書かれていました。
その投稿はこちらです。

リンク先の投稿を見てもらえば分かると思いますが、マクロを構成するノードが記載されているTools = ordered() {...}ブロックの後にUserControls = ordered() {...}のブロックがあります。
これはマクロを構成する各ノードのUserControls = ordered() {...}とは別物でそれらよりもネストレベルが浅い事に注意が必要です。
つまり、マクロ全体を一つのノードとして捉えた時のUserControls = ordered() {...}ブロックだと考えると良いと思います。

マクロ全体の構造

マクロの構造をざっくりと表すと以下のようになります。

{
    Tools = ordered() {
        マクロの名前 = MacroOperator {
            -- ここにはカスタムデータなどが記載される
            Inputs = ordered() {
                -- ここにはマクロの入力と
                -- InstanceInputが並ぶ
            },
            Outputs = {
                -- ここにはマクロの出力が記載される
            },
            -- ViewInfoはノードエディタ上の位置
            ViewInfo = GroupInfo { Pos = { X座標, Y座標 } },
            Tools = ordered() {
                -- ここにはマクロを構成するノードとその詳細情報が記載される
            },
            -- マクロを構成する各ノードのUserControlsではない事に注意 ↓
            UserControls = ordered() {
                -- マクロのページ設定のカスタマイズはここで行う
            }
        }
    },
    ActiveTool = "マクロのノードとしての名前"
}

通常のマクロ書き出しでは存在しないUserControls = ordered() {...}ブロックなのでテキストエディタで追加してやる必要があります。
そしてその中にページ設定の記述をする事になります。記述内容は以下のようになります。

ページ設定の記述内容

Page1 = ControlPage {  -- ページ名。任意の名前を付けることができる
    CT_Priority = 4,  -- 表示の優先度。数値が大きい順に左から表示される
    CTS_FullName = "Tooltip for Page1",  -- ツールチップに表示される内容
    CTID_DIB_ID = "Icons.Tools.Tabs.Custom",  -- ここでアイコン画像を指定する
    CT_Visible = true,  -- ページの表示非表示の設定
}

これにより既存のページもCT_Visibleの値をfalseにする事によって非表示にする事が出来ます。

リンク先の例に習って試してみるとFusionページでのインスペクタのページは以下のようになりました。

指定できるアイコン

CTID_DIB_IDの値によって表示するアイコン画像が変わります。

CTID_DIB_IDに指定できる値
Icons.Tools.Tabs.Controls
Icons.Tools.Tabs.Custom
Icons.Tools.Tabs.Text
Icons.Tools.Tabs.Layout
Icons.Tools.Tabs.Transform
Icons.Tools.Tabs.Style
Icons.Tools.Tabs.Image
Icons.Tools.Tabs.Common
Icons.Tools.Tabs.Color
Icons.Tools.Tabs.Blur
Icons.Tools.Tabs.Merge
Icons.Tools.Tabs.Channels
Icons.Tools.Tabs.Noise
Icons.Tools.Tabs.Tracker
Icons.Tools.Tabs.Circles
Icons.Tools.Tabs.Operation
Icons.Tools.Tabs.Display
Icons.Tools.Tabs.XYZ
Icons.Tools.Tabs.Material
Icons.Tools.Tabs.Shader
Icons.Tools.Tabs.Background
Icons.Tools.Tabs.Projection
Icons.Tools.Tabs.Render
Icons.Tools.Tabs.CameraTracker
Icons.Tools.Tabs.PlanarTracker
Icons.Tools.Tabs.Region
Icons.Tools.Tabs.Calculation
Icons.Tools.Tabs.Gradient
Icons.Tools.Tabs.MIDI
Icons.Tools.Tabs.MIDIChannel
Icons.Tools.Tabs.Offset
Icons.Tools.Tabs.PolyLine
Icons.Tools.Tabs.NumberProbe
Icons.Tools.Tabs.Shake
Icons.Tools.Tabs.Time
Icons.Tools.Tabs.XYPath
Icons.Tools.Tabs.pRegion
Icons.Tools.Tabs.pSets
Icons.Tools.Tabs.ColorChannels
Icons.Tools.Tabs.AuxChannels
Icons.Tools.Tabs.Crop
Icons.Tools.Tabs.AutoCrop
Icons.Tools.Tabs.ColorGain
Icons.Tools.Tabs.Saturation
Icons.Tools.Tabs.HotSpot
Icons.Tools.Tabs.ColorScale
Icons.Tools.Tabs.Grain
Icons.Tools.Tabs.HueCurves
Icons.Tools.Tabs.ChromaKeyer
Icons.Tools.Tabs.CleanPlate
Icons.Tools.Tabs.Spill
Icons.Tools.Tabs.Ranges
Icons.Tools.Tabs.Mask
Icons.Tools.Tabs.Key
Icons.Tools.Tabs.Matte
Icons.Tools.Tabs.Primatte
Icons.Tools.Tabs.Replace
Icons.Tools.Tabs.Degrain
Icons.Tools.Tabs.Numbers
Icons.Tools.Tabs.Points
Icons.Tools.Tabs.LUTs
Icons.Tools.Tabs.Vertex
Icons.Tools.Tabs.Red
Icons.Tools.Tabs.Green
Icons.Tools.Tabs.Blue
Icons.Tools.Tabs.Alpha
Icons.Tools.Tabs.Solve
Icons.Tools.Tabs.Camera
Icons.Tools.Tabs.WhiteBalance

それぞれの値がどんなアイコンになるかはDaVinci Resolveのプログラムの中にアイコン画像が格納されているフォルダがあるので、そちらで確認する事が出来ます。
Windowsのファイルパスで記載します。他のOSの方は適宜ご自身のOSのパスに置き換えて下さい。

C:\Program Files\Blackmagic Design\DaVinci Resolve\Skins

の中にFusion.fuskinというファイルがあります。こちらはzip圧縮ファイルなので直接中身を閲覧できるアプリで開くか一時的に拡張子をzipに変換する事によって中身を閲覧できます。

圧縮ファイルの中には更にいくつかのフォルダが存在するのでその中のTools\Tabsフォルダにページ用アイコン画像が格納されています。
画像の名前と照らし合わせる事でどの値とどの画像が紐づいているかが確認できると思います。
因みにフォルダを開いた様子はこちら(全部は表示しきれないので一部です)

まとめ

ページアイコンが表示されるのはFusionページで開いた時のみなので、そもそもエディットページではマクロはページ設定はあるもののアイコンは表示されません。
ですが、表示したくないページを非表示にできると言うのはエディットページでも通用するので使い道はありそうですね。
マクロの機能には直接関係しませんが、ちょっとしたカスタマイズの方法でした。

Discussion