リンクをクリップボードにコピー
コピー完了
数字の画像が入った10個ほどのレイヤーがコンポジションの中を飛び回っているものを作りました。それからさらに2つのレイヤーが重なったらその数字が足し合わされたレイヤーに変化するというものを作りたいのです。それで2つほど悩んでいることがあります。
1、thisLayerに一番近いレイヤーとの距離を常に参照して、距離が決めた数値を下回ったときに反応するようにしたいと考えています。あらかじめレイヤーを指定して参照するのではなく、レイヤー同士の距離によって参照するレイヤーをスムーズに切り替えたいのです。
2、レイヤーが重なった瞬間に重なった2つのレイヤーを消して(または透明にして)、新しいレイヤーを出現させ数値を引き継がせたいと考えています。レイヤーを新しく作成したり、複製がしたいです。
この2つが果たして可能なのか、またどうすればいいのか教えていただきたいです。
また、他にもっといい方法があればそれも教えてほしいです。
(AEを使って間もないので知識が足りないかもしれません、、、)
リンクをクリップボードにコピー
コピー完了
out = [100]
for (i = 1; i <= thisComp.numLayers; i++){
if (i == index) continue;
L = thisComp.layer(i);
if (! (L.active && L.hasVideo)) continue;
delta = ( thisLayer.width + L.width)/2;
if (length(position, L.position) <= 100){ // 値は相互の距離(100px以下)
out = [0];
break;
}
}
out
if (thisComp.layer("シェイプレイヤー 3").transform.opacity == 0){
100;
}else{
0;
}
リンクをクリップボードにコピー
コピー完了
out = [100]
for (i = 1; i <= thisComp.numLayers; i++){
if (i == index) continue;
L = thisComp.layer(i);
if (! (L.active && L.hasVideo)) continue;
delta = ( thisLayer.sourceRectAtTime().width + L.sourceRectAtTime().width)/2;
if (length(position, L.position) <= delta - 50){ // 値は相互の距離の微調整(基準値”0”)
out = [0];
break;
}
}
out
リンクをクリップボードにコピー
コピー完了
<訂正>
(2)にいついての回答で、長方形を親子にする方法の場合、コンポジションに新たなレイヤーが追加された為、(1)のエクスプレッションでは誤動作が起きます。
長方形レイヤーの「位置」に近づくと反応してしまう為、(1)のエクスプレッションへさらに条件を追加する必要があるので、キーフレームやレイヤーのデュレーションなどで対応して下さい。
<12:30更新>
親子レイヤーの問題は、下記コードで改善します。
out = [100]
for (i = 1; i <= thisComp.numLayers; i++){
if (i == index) continue;
L = thisComp.layer(i);
if (! (L.active && L.hasVideo)) continue;
if (L.hasParent) continue;
delta = ( thisLayer.sourceRectAtTime().width + L.sourceRectAtTime().width)/2;
if (length(position, L.position) <= delta - 50){ // 値は相互の距離の微調整(基準値”0”)
out = [0];
break;
}
}
out
リンクをクリップボードにコピー
コピー完了
レイヤーが重なった時に不透明度を0にする処理はできましたが、その後もずっと0にし続けることがどう頑張ってもできません。どうすればいいと思いますか?
リンクをクリップボードにコピー
コピー完了
レイヤーのバーの右端を左方向にドラッグして消えた時間までデュレーションを短くして下さい。
レイヤーが動いているため、見えていない状態でも他のレイヤーと接近すると誤動作で他のレイヤーが消えてしまいます。