PF_ParamDef — After Effects SDK Guide 22.0.0 documentation
After Effectsは、各セレクタでPF_ParamDefsの配列をエフェクトに渡し、現在の時刻におけるプラグインのパラメータを記述します。params 配列の値は、一部のセレクタでのみ有効です(これはセレクタの説明に記載されています)。
最初のパラメータであるparams[0]は、効果を適用する入力画像(PF_EffectWorld / PF_LayerDef)です。
すべてのパラメータタイプは、PF_ParamDefで表現されます。ユニオンを使用することで、PF_ParamDefの適切な部分のみを入力する必要がある(または入力する必要がある)ようにします。
Data Type | Name | Description |
---|---|---|
A_long | id | このパラメータのIDです。プラグインの将来のバージョンでパラメータを並び替えることができ、ユーザーがエフェクトを再適用する必要はありません。パラメータのIDをバージョンに関係なく保持する場合。 |
PF_ChangeFlags | change_flags | パラメータ値を変更した場合に設定します。ドラッグ(クリックではありません!)イベント時のみ有効です。 |
PF_Cmd_USER_CHANGED_PARAM またはPF_Cmd_UPDATE_PARAMS_UI 。 |
||
PF_ParamUIFlags | ui_flags | パラメータを追加する前に、パラメータのUI動作を指定します。 |
PF_PUI_DISABLED は、イベント処理中に設定することができる。 | ||
A_short | ui_width | パラメータのユーザーインターフェイスの幅(非標準パラメータのみ)。 |
A_short | ui_height | パラメータのユーザーインターフェイスの高さ(非標準のパラメータのみ)。 |
PF_ParamType | param_type | パラメータの種類。 |
A_char[32]`` | name | パラメータの名称。イベント処理中に変更可能です。 |
はい、After Effects 1.0からパラメータ名を長くする要望がありました。 | ||
たった31文字で世界を変える効果を十分に表現することは、俳句のような言語チャレンジだと考えてください。 | ||
PF_ParamFlags | flags | 追加する前にパラメータのUI動作を指定します。イベント処理中にPF_ParamFlag_COLLAPSE_TWIRLYのみを設定することができます。 |
PF_ParamDefUnion | u | 可能なすべてのParameter Typeの組合わせ。 |
param_type で指定されたタイプのみが意味のあるデータを含む。 |
これらのフラグを使用して、パラメータのユーザーインターフェイスを制御します。
UIフラグとビヘイビアフラグを混同しないようにしましょう。これらのフラグは、パラメータ定義内の異なるフィールドに存在し、誤った適用をすると予測不可能な動作を引き起こします。
これらのフラグに加えて、AEGP_GetDynamicStreamFlagsを使用することで、効果パラメータを隠したり表示したりすることができます。
Flag | Description |
---|---|
PF_PUI_TOPIC | パラメータの "topic "に対してPF_Cmd_EVENT を扱う場合は、このフラグを設定します。 |
トピック」とは、ECW(Effect Controls Window)のparam UIのうち、そのparamに対してツイリーアローをツイリーアップしても表示されている部分のことです。 | |
このフラグを設定する場合は、PF_Cmd_GLOBAL_SETUP 時にPF_OutFlag_CUSTOM_UI も設定する必要があります。 |
|
PF_PUI_CONTROL | ECPで制御領域(パラメータのスピナーを回転させると見えなくなる領域)のPF_Cmd_EVENT を扱う場合は、このフラグを設定します。 |
このフラグを設定する場合は、PF_Cmd_GLOBAL_SETUP 時にPF_OutFlag_CUSTOM_UI も設定する必要があります。 |
|
詳しくは、「エフェクトUI&イベント」をご覧ください。 | |
PF_PUI_STD_CONTROL_ONLY | このフラグを設定すると、標準コントロールのみとなります。このパラメータにデータストリームは関連付けられませんので、タイムラインパネルでキーフレームを利用することはできません。シーケンスデータ内の何かを標準コントロールで制御するために、このような操作を行うことがあります。または、arbデータ、またはカンプウィンドウのカスタムUI、または他の複数のコントロールをグループ設定することです。このフラグは一緒に使うことはできません。 |
PF_Param_CUSTOM PF_Param_NO_DATA PF_Param_LAYER PF_Param_ARBITRARY_DATA PF_Param_PATH
このフラグを設定する場合、PF_ParamFlag_SUPERVISE
も設定する必要があります(そうしないと、値の変更を知ることができず、この設定が何かに使われることはありません)。このフラグは、PF_OutFlag_CUSTOM_UIフラグが設定されている必要はない。PF_Param_ARBITRARY_DATA
の標準コントロールが必要な場合は、PF_PUI_STD_CONTROL_ONLY
を使って、対応する param
タイプを追加するだけで、PF_Cmd_USER_CHANGED_PARAM
処理時に arb データの変更が可能です。 |
| PF_PUI_NO_ECW_UI | エフェクトコントロールウィンドウにUIを表示させない場合は、このフラグを設定します。
おそらく、他の方法でパラメータの値を設定していると思われます(カンプウィンドウのカスタムUIや、PF_ParamFlag_SUPERVISE
が設定されている別のパラメータに対してPF_Cmd_USER_CHANGED_PARAM
を処理している場合など)。
AEでは、タイムライン上のキーフレームの表示には影響しません。PProでは、行全体が削除されるため、キーフレームは表示されません。 |
| PF_PUI_ECW_SEPARATOR | After Effectsでは使用されませんが、Premiere
では使用されます。エフェクトコントロールウィンドウで、このパラメータの上に太い線を表示させたい場合は、このフラグを設定します。
これは、必要に応じて(グループを追加することなく)パラメータを視覚的にグループ化できるように提供されます。このフラグは、PF_UpdateParamUI()
メソッドで実行時に変更することができます。 |
| PF_PUI_DISABLED | 通常、PF_Cmd_USER_CHANGED_PARAM
に対応して、パラメータを無効化(グレイアウト)します。 |
| PF_PUI_DONT_ERASE_TOPIC | After Effectsでパラメーターのトピックが消えない。 |
| PF_PUI_DONT_ERASE_CONTROL | After Effectsではパラメータの制御が消えない。 |
| PF_PUI_RADIO_BUTTON | After Effectsでは使用しませんが、Premiereでは使用します。パラメータをラジオボタングループとして表示する。PF_Param_POPUP
にのみ有効です。 |
| PF_PUI_INVISIBLE | Premiereで初めてサポートされ、現在はAfter Effects CS6以降でサポートされています。エフェクトコントロールとタイムラインの両方で、パラメータUIを非表示にすることができます。
Premiereのみ。PF_UpdateParamUIコールバック時に、フラグがダイナミックになり、パラメータの可視性を切り替えることができるようになりました。 |
動作フラグとUIフラグは、パラメータの異なる性質を表すものです。PF_Cmd_PARAM_SETUPでパラメータを追加する前に設定します。イベント時に設定される可能性のあるフラグを記します。
Flag | Meaning |
---|---|
PF_ParamFlag_CANNOT_TIME_VARY | パラメータは時間によって変化しないので、タイムラインパネルでキーフレーム制御は行われない。 |
PF_ParamFlag_CANNOT_INTERP | 数値は代数的に補間されない。 |
不連続(ホールド)補間はそのまま使えます。オンかオフのどちらかであるパラメータに有効です。レンダリングを高速化する。 | |
PF_ParamFlag_COLLAPSE_TWIRLY | PF_Cmd_USER_CHANGED_PARAM の時にこのフラグを設定します。 |
PF_Cmd_UPDATE_PARAMS_UI 、PF_Cmd_USER_CHANGED_PARAM メッセージの処理時に、このビットをセット&クリアできるようになり、パラメータやグループを自由に上下させることができるようにしました。 |
|
PF_ParamFlag_SUPERVISE | このパラメータのPF_Cmd_USER_CHANGED_PARAM メッセージを受信するために設定します。 |
詳しくは、「パラメータ監視」を参照してください。 | |
PF_ParamFlag_START_COLLAPSED | トピックスピナーの回転状態を制御します。 |
PF_Cmd_PARAM_SETUP 中だけでなく、パラメータ監視中にも変更可能です。 |
|
このフラグは、PF_OutFlag2_PARAM_GROUP_START_COLLAPSED が設定されていない限り、尊重されない。 |
|
PF_ParamFlag_USE_VALUE_FOR_OLD_PROJECTS | これは、後から追加されたパラメータを欠いた古いバージョンのエフェクトで保存されたプロジェクトの読み込みにのみ影響します。 |
設定すると、PF_ADD_PARAM() で設定した PF_ParamDef.value フィールドが不足するパラメータの初期化に使用されますが、dephault フィールドは、新たに効果を適用したりリセットする際のパラメータの初期値として引き続き使用されます。 |
|
これは、あるパラメータをデフォルトで1つの値に設定したいが、古いプロジェクトのレンダリング動作を維持するために別の値に設定する必要がある場合に便利です。 | |
PF_ParamFlag_LAYER_PARAM_IS_TRACKMATTE | Premiere Proのみ。レイヤーパラメータに対してのみ有効です。レイヤーパラメータが、フィルタを適用したトラックマットとして使用されていることを示す。After Effectsで無視される。 |
PF_ParamFlag_EXCLUDE_FROM_HAVE_INPUTS_CHANGED | エフェクトがPF_OutFlag2_AUTOMATIC_WIDE_TIME_INPUT を設定し、PF_AreStatesIdentical またはPF_HaveInputsChangedOverTimeSpan を呼ぶ場合のみ関連します。 |
PF_ParamFlag_SKIP_REVEAL_WHEN_UNHIDDEN | CS6 の新機能です。このパラメータが非表示になっている場合、このフラグはAfter Effectsに、どの親もツイストオープンせず、エフェクトコントロールパネルとタイムラインパネルでパラメータをスクロールして表示しないように指示します。 |
After Effectsでは、ペイントストロークを行う際に、パラメータを公開してユーザーの気を引かないようにするため、内部的にこの動作を使用しています。しかし、別のケースでは、Time Remappingをオンにすると、そのパラメータが明らかになります。 | |
そこで、自作エフェクトのパラメータを同じようにコントロールできるようにしています。 |
PF_ParamDefUnion
の中で、PF_FloatSliderDef
とPF_FixedSliderDef
は、メンバー変数PF_ValueDisplayFlags
を持ち、ユーザーのピクセル値表示の好み(情報パレットで設定)に対応できるようにします。これが設定されている場合、パラメータの値は、好みに応じて、0-1、0-255、0-32768、または0.0〜1.0として表示されます。また、最初のビット(PF_ValueDisplayFlag_PERCENT
)を設定すると、パラメータの表示値にパーセント記号を付加することができます。
このようなことは絶対にしないとは思いますが、パーセンテージで表示するパラメータを作成する場合、0~100以外の範囲を許可してユーザーを混乱させないようにしてください。お願いします。パーセンテージとは「百分の一」という意味です。