CLIP STUDIO PAINT EX用プラグイン開発で、座標型のパラメータを使う際のポイントを書く。
座標型のパラメータとは
SDKのサンプルは色相・彩度・明度の整数型のパラメータを受け取っている。
同じ要領で座標型のパラメータを受け取るようにすると、ダイアログボックスには何も表示されない。代わりに画面上に赤いバツ印が表示され、これをドラッグして移動することにより2次元の座標の値を変化させられる。
使用方法
追加するには、プロパティサービスのaddItemProcの第3引数にkTriglavPlugInPropertyValueTypePointを渡す。
(*pPropertyService).addItemProc(propertyObject, kItemKey, kTriglavPlugInPropertyValueTypePoint, kTriglavPlugInPropertyValueKindDefault, kTriglavPlugInPropertyInputKindDefault, caption, 'p');
値はTriglavPlugInPoint型になる。値を読み込むにはプロパティサービス2のgetPointValueProc()を使う。
TriglavPlugInPoint po;
pFilterInfo->pPropertyService2->getPointValueProc(&po, propertyObject, itemKey);
TIPS
- プロパティサービス2を使う必要がある。
- ドキュメントにある座標型のプロパティに関する関数は、プロパティサービスではなく、プロパティサービス2を使って行うようになっている。サンプルのHSVフィルタではプロパティサービス2を使用していないので、プロパティサービス2を初期化する処理を追加する。
TriglavPlugInPropertyService2* pPropertyService2 = (*pluginServer).serviceSuite.propertyService2;
- デフォルトでは左上端にバツ印が表示されるので見逃しやすい。プロパティサービス2のsetPointDefaultValueKindProc()で最初の場所を指定できる。下のようにすると最初に中央に表示されるのでおすすめ。
(*pPropertyService2).setPointDefaultValueKindProc(propertyObject, kItemKey, kTriglavPlugInPropertyPointDefaultValueKindCanvasCenter);
- 整数型のパラメータ2個で座標を指定させるのは避けたほうがよいと思う(恐らく最大値・最小値をキャンバスサイズに応じて設定する方法がないので)