PropDriveの使い方

クイックスタート

STEP
プロパティをピックアップ。

まずは好きなプロパティを選択し、『GetInfo』ボタンでそのプロパティの各種情報をピックアップ。

*エフェクトの場合、AEのエフェクト欄のパラメータは直接選択できませんが、そこをダブルクリックするとタイムラインに現れるので、それを選択するとよいです。

STEP
好きなレイヤーを選択。

Apply欄のAllLayersを選んでいれば、レイヤーを選択する必要はありません。コンポジション内全体から該当するレイヤーのプロパティを検索します。
SelectedLayersを選べば、処理するレイヤーを選択レイヤーのみにできます。好きなレイヤーを選択しましょう。

STEP
リストから処理を選んでダブルクリック。

一括処理されます!

詳細

■&Copy:チェックが入っていれば、GetInfoで情報を得るとき、一緒にCtrl+Cのコピーをしてくれます。したい処理がキーフレームのペーストであれば、のちに大いに役立ちます。

■regex for Incl: チェックが入っていれば name欄で取得される名前の後ろの『スペースorハイフンorアンダーバー+数字』を取り除き、『~を含む』という正規表現(文字検索に色々な条件を加えられる機能)を加えてくれます。
チェックのオンオフで付与、削除が可能なので「やっぱり名前を含むもの全体に処理したいな」と思ったならばオンにすればよいだけです。

*加えられる正規表現は前後に『.*』です。『.』は何らかの文字、『*』はその0回以上の繰り返しを表します。

■取得情報欄
root Prop:選択したプロパティの一番上にあるプロパティです。レイヤー直下のプロパティとも言えます。
例えばシェイプパスを選択すれば『コンテンツ』、エフェクト類を選択すれば『エフェクト』といった具合です。ただし、取得されるのは日本語名ではなく、AEスクリプトで分類されている正式名称(matchName)です。
これを取得することで、レイヤー直下の他プロパティを検索しなくて済み、処理が速くなるので入力されたままにしておいてください。
どうしても全プロパティから検索したい場合に限り、空欄にすれば可能です。

matchName: 選択したプロパティの、AEスクリプトで分類されている正式名称です。『プロパティの種類名』を得ることができます。上記のroot Prop欄はレイヤー直下プロパティのもの、 この欄は選択したプロパティ自身のものであり、どちらもmatchNameですが別ものです。
これを取得することで、同名の別プロパティ(トランスフォーム/位置とシェイプグループ/位置とレイヤースタイル/境界線/位置など)を間違って一緒に処理してしまうことが無くなるので、入力されたままにしておいてください。
どうしても別種のプロパティを一括操作したい場合に限り、 空欄にすれば可能です。その場合はroot Propも空欄にする必要があるやもしれません。

name:名前です。処理対象がプロパティの種類で検索できるとき(例えば「フラクタルノイズはもう名前も関係なく全部消したい」といった場合)は、右のチェックボックスをオフにしてください。

propertyIndex : プロパティの番号です。エフェクトで言えば、エフェクト欄の一番上が1となります。「何番目のエフェクトだけ消したい」といった場合にチェックを入れてください。

propertyDepth: プロパティが何層目にあるか?です。シェイプパスなど、複雑な階層にあるプロパティの場合に「グループ1にあるパスは消したいけど、グループ1内にあるグループ2のパスは残したい」などの場合にチェックを入れてください。

Custom Value:Apply欄の下にある欄です。値に関する処理をしたい場合、ここにオリジナルの値を入れて処理できるのですが、値の形を把握するためにもGetInfoで選択プロパティの値が自動入力されます。値が無いプロパティの場合はundefinedと入力されます。
*パラメータが1つのものには1つの数値、2つのものにはコンマで区切られた2つの数値など、パラメータによって入れられる形が違います。その形式はピックアップ結果を参考にして下さい。2つ以上の数値(配列)の場合、[]は不要です。

■一括処理一覧
Del Key at Indicator:インジケータの時間にキーがあれば消します。

Eye OnOff:目玉マークをオンオフします。

Select & Delete:選択し、キーボードの『del』を押したのと同じ処理をします。選択したのがパラメータであれば全キーフレ削除、パラメータでないプロパティであり削除可能であればプロパティ自体が削除されます。

Select & Paste:選択し、キーボードの『Ctrl+V』を押したのと同じ処理をします。&Copyのチェックが入っていれば、簡単にキーフレームのペーストが可能です。
*「プロパティ自体をペーストしたいがうまくいかない」場合は以下の点にご注意ください。
プロパティをコピペしたい場合、通常操作では『そのプロパティの親プロパティ』を選んで Ctrl+V を押します。その再現をしたいので、まずは普通にプロパティを選んでCtrl+Cでコピー、その親プロパティを選び、&Copyチェックを外してGetInfo。これでGetInfoで得た親プロパティに対して一括処理されるようになります。あとは Select & Paste を押すだけです。
あと、エフェクトの場合は普通にレイヤーを選んでコピペすればよいだけです。

Select: 選択します。

Set Custom Key:現在のインジケータ時間に『Custom Value』欄に入力した値でキーを打ちます。 Select & Paste ではできないオリジナルの値を設定できます。

Set Custom Value or Key: 現在のインジケータ時間に『Custom Value』欄に入力した値を適用します。プロパティに既存のキーがあればキーを打ち、なければ静的な値を適用します。Select & Paste ではできないオリジナルの値を設定できます。

(NotToUse)フォルダ内
Del All Key:全てのキーを消します。Select & Delete と効果は一緒です。
Del Prop:全てのプロパティを消します。Select & Delete と効果は一緒です。
Find Hidden Props:取得したプロパティに隠しプロパティがあった場合、それらのレイヤーインデックス、名前、親プロパティの名前をアラートしてくれます。

forPropDriveフォルダについて

この中には処理欄に記載される処理スクリプトが入っています。
ここに変更を加えることで、自由に処理を整理できます。
「この処理はいらないな」といった場合は(NotToUse)フォルダに入れば一覧に表示されなくなります。
「名前を変えたい」場合は自由に各jsxのファイル名を変えればOKです。日本語にも対応させていますが、非推奨です。

オリジナル処理の作り方

ShapeDrive、EffectsDriveでは処理をテキスト内で書く仕様でしたが、なかなか大変なのでjsx読み込み方式にしました。
オリジナル処理を作って即時関数で囲み、『forPropDriveフォルダ』に入れれば完了です。

使用できる変数は以下の通りです。
props:情報に基づいて取得した全プロパティの配列。
valueTxt:『Custom Value』欄に入っている文字列。
valueObj:GetInfoで得たプロパティがオブジェクトだった場合にそれを入れてあるObject。
hiddenProps:隠しプロパティ(hidden)チェックがtrueだったプロパティの配列。propsは事前にhiddenを省いてあるので、props内にhiddenPropsはない。

*アンドゥグループについては、app.beginUndoGroup()とapp.endUndoGroup()がPropDrive内にあるので書かなくてよい。
*型推定やfor文などをPropDrive側でやってしまうとオリジナル処理でできることも制限されるので、それらは処理スクリプトで行う仕様に変更しました。

各メソッドはAfter Effects スクリプトリファレンス様のサイトで確認ができます。
PropertyBase objectPropertyGroup objectProperty objectのサブページ『Attributes』『Methods』、またLayer Property matchNamesが参考になります。

hiddenに関するアラートが出た場合

情報を元に得たプロパティ群の中に、『AEのUIに表示されていないが存在はしている』隠しプロパティがあった場合、以下のアラートを出すようにしています。

Some of the properties are hidden.
The script can’t handle the hidden properties.

Continue?

隠しプロパティはスクリプトで処理できないので「隠しプロパティについては何もせずに処理を続ける」ならばYesを押してください。処理しない場合はNoを押してください。実際にAE内の何かを変える処理前ですので、Noを押しても「処理が半端なところで終わる」というわけではありません。

■隠しプロパティの例
カメラ、ライトのスケール他。
レイヤースタイルを1つも適用していない状態での各種レイヤースタイル。
プラグインparticular(ver4)の『ShowSystems』をゼロ以外にしたときの、番号に該当しないSystemのプロパティ。これについては ShowSystems を一括処理でゼロ(全表示)にする、という事前準備をすれば回避できます。

よかったらシェアしてね!
  • URLをコピーしました!