dA-tools.com

HOME > AfterFx > expression > 実践 > 関数で配置

数式で配置

  • ここまでは関数を 時空間で扱ってきましたが位置空間に適用してみます。

円形に配置

  • コンポジションの中心から半径80の円上にレイヤーをインデックス番号によって配置します。
  • 平面の「位置」プロパティに以下の式を書きます。

center=[thisComp.width/2,thisComp.height/2]   //配置の中心
radius=80; //中心からの距離
interval=360/(thisComp.numLayers);   //1レイヤーあたりの角度
angle=degreesToRadians(index*interval);   //このレイヤーの角度(ラジアン)
x=radius*Math.sin(angle);
y=-radius*Math.cos(angle);
center+ [x, y]

  • 平面に「エフェクト」→「番号」を適用して「形式」→「値」に以下の式を書きます。

index

  • レイヤーを複製(Ctrl+d)するとこの様に配置されます。

clock.gif

方形に配置

  • 平面の「位置」プロパティに以下の式を書きます。

arry=[5,4]; //配列[横、縦]
ind=index-1; //レイヤーindexを係数に使います
px=ind%arry[0]+1;
py=Math.floor(ind/arry[0])+1;
x=thisComp.width/(arry[0]+1)*px;
y=thisComp.height/(arry[1]+1)*py;
[x,y]

※番号は上の例と同じです。

レイヤーを複製(Ctrl+d)するとこの様に配置されます。

黄金比で配置 1

  • 最も調和的で美しい比率といわれるGolden ratio(1+Math.sqrt(5))/2)でレイヤーを配置してみます。
  • ここでは黄金比の近似値1:1.618を角度に使い、レイヤー・インデックスとtimeを係数としています。
  • 変数numは中心からの離率です。

num=index+2
angle=num*Math.PI*time/20*1.618;
x=num*Math.cos(angle);
y=num*Math.sin(angle);
[x,y]

  • 上の式をレイヤーの[位置]に記述して複製(x150)します。

黄金比で配置 2

  • [time]をangleではなく離率numに乗算すると下のような配置で動きます。

num=(index+19)*time;
angle=num*Math.PI*1.618;
x=num*Math.cos(angle);
y=num*Math.sin(angle);
[x,y]

  • この例では3つのグループ(RGB)で色を変えてあります。