0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AfterEffects シェイプレイヤーのコンテンツ内プロパティのインデックスを活用する。

0
Last updated at Posted at 2018-04-20

やりたかった事

1つのシェイプレイヤーで作成した複数のオブジェクト(長方形)をインデックスを参照させて、ポジションにエクスプレッションで整列出来るようにする。

最終的な完成品は下記の画像
キャプチャ.JPG

具体的に

複数のオブジェクトを整列させる為には、シェイプレイヤー内の一つ上の長方形オブジェクトのサイズをエクスプレッションで受け取って、ポジションを自動で配置させる。
リピーターも使わず、レイヤーインデックスでも無い方法で考えてみた。

さっそく作業

まず、プロパティにはグループのインデックスしか無いみたいです。(自分で調べた限りでは)
つまり
長方形パス1のインデックスは存在していて、その中のプロパティには存在してないようです。
長方形パス2はインデックス2
長方形パス3はインデックス3
と存在しています。
下記画像

000.jpg

レイヤーインデックス(thisLayer,+1)の様に簡単に出来たらいいですけどね・・・

そこでグループのインデックスを活用すればいい事に気が付いた。

インデックスの参照はこれ

thisProperty.propertyGroup(1).propertyIndex

これを長方形のポジションに活用していく。

最終的なエクスプレッションはこれです。

Num=thisProperty.propertyGroup(1).propertyIndex-1;
x=content("長方形パス "+Num).size[0]*Num+(effect("margin")("スライダー")*Num);
y=value[1];
[x,y]

003.JPG

解説

長方形パス1はベースとなる為ポジションはvalueのまま
長方形パス2のポジションにエクスプレッションを追加する。
まず

Num=thisProperty.propertyGroup(1).propertyIndex-1;

この文で、長方形パス2のインデックスを取得し、マイナス1をする。
この状態でNumは1を持っている状態です。
この文で一つ上のインデックスを拾ってくれる状態です。

あとは計算して複製すれば自動になるように下記のコードを記述(オブジェクト間のマージン用にエクスプレッション制御のスライダーが追加してあります。)

x=content("長方形パス "+Num).size[0]*Num+(effect("margin")("スライダー")*Num);

これで完成です!
長方形パスを複製すればどんどん綺麗に横に並んで行ってくれます。

004.JPG

あとがき

何気に何度もトライしていたんですが、ようやく閃きました。
半年ぐらいは悩んでたかも。。。
パッとすぐ思いつけるぐらいなれたらなぁ~。

2018/06/14追記

プロパティのインデックスについてもう少しわかりやすく

//myNum = thisProperty.propertyIndex;
result = 2
//myNum = thisProperty.propertyGroup(1).propertyIndex; 
result = 3
//myNum = thisProperty.propertyGroup(1).propertyGroup(1).propertyIndex;
result = 1
[myNum ,myNum ]

bandicam-2018-06-14-13-17-16-437_02.jpg

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?