dA-tools.com

HOME > AfterFx > expression > 実践 > サイン波

サイン波 sin wave

sin.gif
三角関数でおなじみのグラフです。
   ※図はAEの画面ですから下がY軸の正方向です。

y = a * sin ( time * k )

  • aは振幅 kは周期
  • このグラフで1秒をちょうど1サイクル(2パイ)にするには

time * Math.PI * 2

  • 周期を変えずに左右にずらす(位相を変える)には

sin( x + c )

  • 角度はラジアンを使うので注意が必要です。
  • 円周率パイはJavaScriptのMath.PIを使います。
  • cos(コサイン)のグラフはsinのグラフの位相を90°ずらしたものと同じです。

例:Sin & Cos

  • 「初歩」のところで紹介した動きです。

  • レイヤーの「位置」に次の式を記述しています。

x=Math.cos(time*Math.PI/2)*100;
y=Math.cos(time*Math.PI)*100;
[ position[0]+x , position[1]+y ]

  • レイヤーの「スケール」に次の式

x=Math.sin(time*Math.PI/2)*100;
y=Math.sin(time*Math.PI/2)*100;
[ scale[0]+x , scale[1]+y ]

  • グラフはこうなります。

sin_cosGraph.jpg

バリエーション A

abs_sin.gif

  • sin( )は0を中心に上下に振幅する波です。それの絶対値を取るとこのようなグラフになります。

a=100 ;
y=a*Math.sin(time*Math.PI*2) ;
x=320/4*time;
y= Math.abs(y) ;
[x, y]

バリエーション B

SinMax.jpg

  • sin( )波と特定値の最大値を取るとこのようなグラフになります。
  • max(val1 , val2)は2つの値の大きい方を返します。

a=100;
x=320/4*time;
y=a*Math.sin(time*Math.PI*2);
y=Math.max(y, 0);
[x, y]