いつもの使い方
シェイプレイヤーを作成して、親となるレイヤー(ヌル)を作成して親とのリンクでヌルに設定してあげてました。
ただヌルの位置やスケール回転に関してはリンクされているのですが、透明度に関してはリンクされてないので
いつもはシェイプレイヤーの不透明度にエクスプレッションをこのように記述していました。
thisComp.layer("ヌル 1").transform.opacity
もちろんこれで間違ってはいません。が!!!
もっとスマートに
親へのリンクにエクスプレッション言語に「parent」という物があります。
parent.transform.opacity
結果は同じですが、ちょっとスマートになりましたね。
親を変更した時または親を解除した場合は?
親の変更に関してはそのまま親のリンクの値になりますが
親リンクを解除したらエラーになります。
もちろん親を参照していない結果ですね。
このエラーを回避する為にif文を使ってレイヤーに親がある場合と無い場合の指示をしてあげます。
if (hasParent == true){
parent.transform.opacity
}
else{
value
}
もしレイヤーに親がある場合は親の不透明度
そうでなければ、シェイプレイヤーのバリューを使う感じです。
親がある場合の結果は
しっかりヌル(親)の不透明度50%の値を取ってくれています。
そして親が無い場合の結果は
シェイプレイヤーのバリューの値100%を取ってくれています。
これでスマートになりましたね!
たまに使いそうなのでメモとして残しておきます。