バージョン1.2変更点
より幅広い検索条件のため、パラメータを選んだときは別欄に表示されるようになりました。
あまりに縦長になったので画面を2つに分けました。タブ間の移動はフリックでできます。
処理対象レイヤーのラジオボタンを廃止。「選択していなければ全レイヤー対象」となりました。
処理スクリプト名を整理、追加しました。
ルート&パラメータはマッチネームではなく名前に変更しました(名前が変更されることがないため)。
クイックスタート
好きなプロパティを選択して『Get tInfo』ボタンを押します。
*エフェクトの場合
左上エフェクト欄では細かなパラメータは直接選択できません。が、そこをダブルクリックするとタイムラインに現れるので、それを選択するとよいです。
レイヤーを選択しなければ、自動で全レイヤーが検索対象になります。
Iタブの何もないところでフリックするとAタブへ移動します。
Aタブを直接選択でもかまいません。
一括処理されます!
詳細
Iタブ
&Copy to Clipbrd
情報を得るときに、一緒にCtrl+Cのコピーをしてくれます。したい処理がキーフレームのペーストなどであれば、のちに大いに役立ちます。
Regex for Incl
名前を『含む』検索にしたいときにチェックを入れます。
例えば「フラクタルノイズ 1」も「フラクタルノイズ 2」も対象にしたいときです。
チェックのオンオフで付与、削除が可能なので、情報を得た後でも変更できます。
チェックすれば、得た名前の『スペース or ハイフン or アンダーバー + 数字』を消して『~を含む』という正規表現を加えます。正規表現とは、文字検索に色々な条件を加える機能です。加えられる正規表現は前後に『.*』で、『.』は何らかの文字、『*』はその0回以上の繰り返しという意味です。
Root
選択したプロパティの一番上の親プロパティ。
レイヤー直下のプロパティとも言えます。
例えばシェイプパスを選択すれば『コンテンツ』、エフェクト類を選択すれば『エフェクト』といった具合です。
ここから検索すればレイヤー直下の他プロパティを検索しなくて済み、処理が速くなるので入力されたままにしておいてください。どうしても全プロパティから検索したい場合は空欄にすれば可能です。
Prop
matchName
プロパティの正式名称。
プロパティの種類名とも言えます。
これを取得することで、間違って同名の別プロパティを一緒に処理することが無くなるので、入力されたままにしておいてください。例えば、トランスフォーム/位置、シェイプグループ/位置、レイヤースタイル/境界線/位置は同名ですが別種です。
どうしても別プロパティを一括操作したい場合は空欄にすれば可能です。その場合はRootも空欄にする必要があるかもしれません。
name
プロパティの名前。
プロパティの種類だけで検索したいときは右のチェックボックスをオフにします。
例えば「フラクタルノイズであれば名前は関係なく全部消したい」といったときです。
index
プロパティの番号。
エフェクトで言えば、エフェクト欄の一番上が1となります。「X番目のエフェクトだけ消したい」といったときにチェックを入れます。
depth
プロパティが何層目にあるか?
シェイプパスなど複雑な階層にあるプロパティを処理したいとき、例えば「グループ1にあるパスは消したいけど、グループ1内にあるグループ2のパスは残したい」などのときにチェックを入れます。
Param
パラメータ名。
パラメータの情報を取得したときはここに名前が入り、Prop欄には親プロパティの情報が入ります。
パラメータもプロパティの一種です。が、いろいろな検索を可能にするために分けています。
パラメータは名前が変わりませんが親プロパティは名前変更可能なので、分けたほうが検索の幅が広がります。
Aタブ
Custom Value
値に関する処理をしたいとき、ここにオリジナルの値を入れて処理できます。
GetInfoで選択プロパティの値が自動入力されます。
キー選択をしていた場合は、一番最後のキーの値となります。
値が無いプロパティの場合はundefinedと入力されます。
自動入力値を参考に、同じ形式でオリジナル値を入力してください。パラメータ値が1つなら1つの数値、2つならコンマで区切られた2つの数値など。2つ以上の数値(配列)の場合、 [ ] は不要です。
一括処理一覧
00_Select
検索条件に合ったプロパティをすべて選択します。
01_Delete
選択し、キーボードの『del』を押したのと同じ処理をします。
選択したのがパラメータであれば全キーフレ削除、パラメータでないプロパティかつ削除可能であればプロパティ自体が削除されます。
02_Paste
選択し、キーボードの『Ctrl+V』を押したのと同じ処理をします。
&Copy to ClipBrdのチェックが入っていれば、簡単にキーフレームのペーストやプロパティの上書きペーストが可能です。
*プロパティの上書きペーストではなく、追加ペーストをしたいがうまくいかないとき
マスクやエフェクトの場合
このスクリプトを使わず、追加したいマスクやエフェクトをコピーして、ペーストしたいレイヤーを選んでペーストすればOKです。シェイププロパティのときも、直下コンテンツに追加したいのならばこの操作でOKです。
シェイププロパティの場合
通常操作の再現をすればOKです。通常操作ではまず追加したいプロパティ(パスなど)を選んでコピーし、Gpプロパティ(シェイプ 1とかグループ 1という名前のもの)を選択してペーストします。
この再現をしたいので、まずは普通にプロパティを選んでCtrl+Cでコピーします。
次に、『&Copy to Clipbrdチェックを外してから』その親プロパティ(Gpプロパティ)を選んでGetInfoします。
Gpプロパティの名前などの条件を適宜変更して、追加する箇所を指定します。
あとは02_Pasteを押すだけです!
03_Enabled
目玉マークをオンオフします。
Del Key at Indicator
インジケータ時間にキーがあれば消します。
Get MatchName Parent
スクリプトやエクスプレッション制作用の処理。
親プロパティのマッチネームを得ます。
直下プロパティの情報を得ておくことで、レイヤーのマッチネームも得ることができます。
また、シェイプのGp内のプロパティ情報を得ておくことで、Gpとプロパティの間に隠された『コンテンツ』のマッチネームも得られます。
Get MatchName
スクリプトやエクスプレッション制作用の処理。
プロパティのマッチネームを得ます。
Iタブではパラメータのマッチネームは得られないので、パラメータのマッチネームを得たいときに使います。
Set Custom Key At Index
Custom Value欄に入力した値を、好きなキー番号のキーフレームへ適用します。
キー番号はダブルクリック時に出てくる入力欄で指定します。
この処理を使うときは、情報取得時にキーフレームを選んでおけば、自動で値がCustom Valueに入力されるので便利です。
Set Custom Key or Value
Custom Value欄に入力した値を、現在のインジケータ時間に適用します。
プロパティに既存のキーがあればキーを打ち、なければ静的な値を適用します。
02_Pasteではできないオリジナルの値を設定できます。
Set Custom Key
Set Custom Key or Valueとほぼ同じですが、確実にキーを打ちます。
(NotToUse)フォルダ内
Del All Key:全てのキーを消します。01_Delete と効果は一緒です。
Del Prop:全てのプロパティを消します。01_Delete と効果は一緒です。
Find Hidden Props:取得したプロパティに隠しプロパティがあった場合、それらのレイヤーインデックス、名前、親プロパティの名前をアラートしてくれます。
Paste At InPoint:各レイヤーごとにインポイントに移動してからペーストします。
(forPropDrive)フォルダについて
この中に処理欄に記載される処理スクリプトが入っています。
ここに変更を加えることで、自由に処理を整理できます。
「この処理はいらないな」といった場合は(NotToUse)フォルダに入れば一覧に表示されなくなります。
「名前を変えたい」場合は自由に各jsxのファイル名を変えればOKです。日本語にも対応させていますが、非推奨です。
オリジナル処理の作り方
オリジナル処理をAEスクリプトで作って即時関数で囲み、『(forPropDrive)フォルダ』に入れればOKです。
使用できる変数は以下の通りです。
props:情報に基づいて取得した全プロパティの配列。
valueTxt:『Custom Value』欄に入っている文字列。
valueObj:GetInfoで得たプロパティがオブジェクトだった場合にそれを入れてあるObject。
hiddenProps:隠しプロパティ(hidden)チェックがtrueだったプロパティの配列。propsは事前にhiddenを省いてあるので、props内にhiddenPropsはない。
keyIdx:情報取得時にキー選択していたら、その最後のキー番号。
*アンドゥグループについては、app.beginUndoGroup()とapp.endUndoGroup()がPropDrive内にあるので書かなくてよい。
各メソッドはAfter Effects スクリプトリファレンス様のサイトで確認ができます。
PropertyBase object、PropertyGroup object、Property 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 を一括処理でゼロ(全表示)にする、という事前準備をすれば回避できます。
次元分割していないときのxPosition、yPosition、zPosition。
3D化していないときの方向。
(ややこしいですが、3D化していないレイヤーのposition値配列の3つ目(Z値)は隠しプロパティではありません)