ShapeDriveの使い方

STEP
シェイプ内のプロパティをピックアップ。

まずは『プロパティ名』『パラメータ名』に好きなプロパティ名を入力。
もしくはプロパティを選んで『PickUp』ボタンをクリックで自動入力されます。

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

複数シェイプレイヤーを選択。コンポジション内全体でよい場合は『Layers』の『All』をチェックすれば、選択する必要なし。

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

一括処理されます!

STEP
もしくはパラメータを一括で変える。

『SetVal』ボタンを押せば、得た数値(あるいは手動入力した数値)へ一括変更できます。

*PickUpボタンで得られるのは基本的にただの数値ですが、パスに限ってはパス情報全てが入った『シェイプオブジェクト』を得られます。得た『[object Shape]』の文字のまま『SetVal』ボタンを押せば、パスの形の一括ペーストが可能です。

チェックボックス一覧

■w/o Num:プロパティをコピーした際に自動で増える『番号』なしで名前を得ることができます。
例えば『パス 2』をピックアップしても『パス』と入力してくれます。これとincl.をうまく組み合わせればプロパティの名前ではなく種類で一括処理が可能となります。が、例えばパスプロパティのみを処理するつもりで『パス』+incl.チェック有りで処理をすると、『長方形パス』も処理されてしまう、といったことがあります。種類で検索するときはmatchNameを推奨します。

■matchName:AEスクリプトで使われている『プロパティの種類名』を得ることができます。
名前ではなく種類で一括処理したい場合はここにチェックを入れましょう。

■incl.:文字を含むか、完全一致か。

■Depth:ここにチェックを入れると左の欄が有効になり『ピックアップしたプロパティの階層と同じ階層にあるか』という検索条件が加わります。シェイプレイヤー内にパスが階層違いで複数ある場合などに有用です。

■Layers Selected,All:処理対象を『選択レイヤー』か『コンポジション内の全てのレイヤー』かで選ぶことができます。

■key:『SetVal』で値を変えたとき、キーフレームを打つか否かを選択できます。ただし、キーフレームがすでに打たれている場合はこのチェックに関係なく打たれます。

重要

案外、処理は一括『選択』でなんとかなる。
例えば複数キーフレームを一括コピーしたい場合、事前にキーフレームやエフェクト自身をコピーしておけば、あとは一括選択したプロパティにペーストするだけです。案外、一括『選択』で色々なことができるので、試してみてください。

プロパティ名を空欄にすれば、パラメータ名で一括処理可能です。
できますが、あまり推奨しておりません。シェイプのパラメータ名は多様で、名前が一部重複しているものもあります。そのため、意図していないパラメータまで処理を行う、あるいは行おうとして入力数値の形式が合っておらずエラーとなる場合があります。

数値欄には入れられる形式が決まっています。
パラメータ欄が1つのものには1つの数値、2つのものにはコンマで区切られた2つの数値など、パラメータによって入れられる形が違います。その形式はパラメータのピックアップ結果を参考にして下さい。2つ以上の数値(配列)の場合の[]はいりません。

オリジナル処理の作り方

Noteタブの『Code』ボタンを押すと、処理コード一覧が出ます。そこに好きなコードを書けば、オリジナルの処理を作ることができます。AEスクリプトのメソッドをそのまま使っているので、色々な処理が可能です。

コピペ用例文一覧

//選択
if( i === 0 ){
    var mSelLyrs = app.project.activeItem.selectedLayers;
    for( var j= 0 ; j< mSelLyrs.length ; j++ ){
        mSelLyrs[j].selected = false;
    }
}
eachProp.selected = true;
if( i === propLength - 1 ){
    app.activeViewer.setActive();
}

//目玉オンオフ
if( check === false ){
    eachProp.enabled = false;
}else{
    eachProp.enabled = true;
}
if( i === propLength - 1 ){
    if( check === true ){ check = false; }
    else{ check = true; }
}

//削除
eachProp.remove();
if( i === propLength - 1 ){
    app.activeViewer.setActive();
}

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

扱える変数などは以下の通り。

  • eachProp:一括処理しているプロパティorパラメータ自身。
  • i:処理回数カウント。コード内に新たなfor文を作るときに i は使えません。
  • propLength:対象プロパティorパラメータの総数。
  • check:eachPropを処理しているfor文の外にあるチェック用変数。初期値はfalse。
  • exArray for文の外にある配列。

その他

  • 『//』から続くコメントをリスト上のタイトルにしてあります。タイトルを変えたい場合はここを変えてください。
  • 『//』をタイトルに使っているため、コード中にコメントは書けません。
  • 『//』タイトルとコードの行間は空けずにを書くようにしてください。
  • エフェクトorパラメータは降順で処理されていることに注意してください。

コツ

  • for文内の記述となるので、最初と最後だけに処理を加えるには以下のようにします。
  • 最初:if( i === 0 ){○○(最初だけの処理)}
  • 最後:if( i === propLength – 1 ){{○○(最後だけの処理)}
  • if( i === propLength – 1 ){app.activeViewer.setActive();}という処理を最後に加えることで、ウインドウのアクティブ状態がスクリプトからビューワーに移ります。これで、処理ボタンを押した直後に『Ctrl+Z』ができるようになり、比較が容易となります。

Noteボタンを押すとメモ用のテキスト欄が出ます。
テキストは環境設定に保存されます。使い方は自由です。今は使わない構文や試したい構文などをここにストックしましょう。

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