LoginSignup
3
6

More than 5 years have passed since last update.

CLIP STUDIOプラグインで座標型のパラメータを受け取る

Posted at

CLIP STUDIO PAINT EX用プラグイン開発で、座標型のパラメータを使う際のポイントを書く。

座標型のパラメータとは

SDKのサンプルは色相・彩度・明度の整数型のパラメータを受け取っている。
同じ要領で座標型のパラメータを受け取るようにすると、ダイアログボックスには何も表示されない。代わりに画面上に赤いバツ印が表示され、これをドラッグして移動することにより2次元の座標の値を変化させられる。
image.png

使用方法

追加するには、プロパティサービスのaddItemProcの第3引数にkTriglavPlugInPropertyValueTypePointを渡す。
例 TriglavPluginCall()内
(*pPropertyService).addItemProc(propertyObject, kItemKey, kTriglavPlugInPropertyValueTypePoint, kTriglavPlugInPropertyValueKindDefault, kTriglavPlugInPropertyInputKindDefault, caption, 'p');

値はTriglavPlugInPoint型になる。値を読み込むにはプロパティサービス2のgetPointValueProc()を使う。
例 TriglavPlugInFilterPropertyCallBack()内
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個で座標を指定させるのは避けたほうがよいと思う(恐らく最大値・最小値をキャンバスサイズに応じて設定する方法がないので)
3
6
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
3
6