2019.07.29 (最終更新日: 2019.08.01)

【After Effects】Wiggleの「octaves」と「amp_mult」

はじめに

wiggle(freq, amp, octaves=1, amp_mult=.5, t=time)の
細かいwiggleを追加するための要素、octavesamp_multが自分の中で理解できないでいたので、自分なりに調べたり推測したり検証したことをまとめてみました。誤りがあればご指摘ください。
内容についてはoctavesとamp_multについてのみになります。
正直長いので最後のまとめだけ見ればいいと思います。

Adobeのエクスプレッション言語リファレンスのWiggleの項目では、
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
例:position.wiggle(5, 20, 3, .5) を実行すると、平均サイズが 20 ピクセルのウィグルが 1 秒間に 5 つ作成されます。メインウィグルの他に、サイズが 10 ピクセルと 5 ピクセルの 2 つのレベルの詳細ウィグルが 1 秒間にそれぞれ 10 回と 20 回発生します。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
とあります。
メインウィグルがwiggle(5,20)なのは分かるのですが、「octaves」が「3」、「amp_mult」が 「0.5」だと、どうして『サイズが 10 ピクセルと 5 ピクセルの 2 つのレベルの詳細ウィグルが 1 秒間にそれぞれ 10 回と 20 回発生』となるのでしょうか。

とりあえず動かしてみる

下の動画は、球のY座標にいろいろな数値のwiggle()をあてて動きを検証したもの。
数値は中心を0にしています(t=timeは省略。各wiggleには同じSeed値をあてています)

1.赤 wiggle(0.5,100)
→1秒間に0.5回(2秒に1回)-100~+100の範囲で数値が変動します。
2.青 wiggle(3,50)
→1秒間に3回、-50~+50の範囲で数値が変動します。
3.緑 wiggle(0.5,100)+wiggle(3,50)
→赤と青の2つのwiggleの数値を合わせたものです。
4.黄 wiggle(0.5,100,3,50)
→赤 [wiggle(0.5,100)] に細かいウィグル [wiggle(3,50)]を足そうとして、よく分からないまま記述したエクスプレッション。とんでもない数値になってコンポジションに映っていません。
5.シアン、6.マゼンタ
→後述します。

octavesとamp_mult

octaveって何

元は音楽用語で「8度音程」などの意味らしいですが、それがエクスプレッションでどう働くのかはよく分かりません。
Adobeのエクスプレッション言語リファレンスでは、
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
octaves は加算するノイズのオクターブの数を表します。この値は、変動の細かさを制御します。この値に初期設定値の 1 より大きい値を設定すると高い周波数が含まれ、小さい値を設定すると変動に振幅ハーモニックが含まれます。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
…とあります。

・変動の細かさを制御する
・初期値1より大きいと高い周波数が含まれる
・振幅ハーモニック?
ということは分かりましたが、『高い周波数』というのがどういうものかよく分かりません。

ヒントになったのはこちらの物理のサイト
こちらの『音の高さ』の項目の説明で
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
1オクターブ高い音というのは周波数が2倍の音ということです。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
とあります。

この記述に倣うなら、octavesが1増えれば、追加されるウィグルの周波数(freq)は2倍と考えられそうです。
octaves=ウィグルの数と考えればいいかもしれません。
初期設定値のoctaves=1なら「メインのウィグル1つ」
octaves=3なら「メインのウィグル1つ+追加のウィグル2つ」

amp_multって何

amplification(増幅)のmulti(複数)、またはmultiplication(乗算)だと思いますが、
Adobeのエクスプレッション言語リファレンスでは、
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
amp_mult は、各オクターブの amp の倍数です。この値は、ハーモニックのドロップオフの速度を制御します。初期設定値は 0.5 です。値を 1 に近づけるとハーモニックは基本周波数として同じ振幅で追加され、値を 0 に近づけるとディテールが荒い状態で追加されます。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
…とあります。

・各オクターブのampの倍数?
ハーモニックドロップオフの速度を制御?
・初期値は0.5
・1に近いと基本周波数と同じ振幅が追加
・0に近いとディティールが荒い

「1に近いほどメインウィグルと同じ値のampのウィグルが追加、0に近いほどディティールが荒い=メインウィグルより小さい値のampのウィグルが追加。」
と考えると、amp_multは減衰率に似たようなものと捉えるといいのかもしれません(ただし1に近いほどそのまま、0に近いほど減衰する)。なので初期設定値はちょうど半分の「0.5」

Adobeのリファレンスを例にとると

先程引用したAdobeのリファレンスのwiggleの式を例にとると、

wiggle(5, 20, 3, .5)

octaves=3、amp_mult=0.5。
octaves=3なら、2つのウィグルが追加されます
しかも追加されるごとに freqは2倍、ampは0.5倍になります。

wiggle(5, 20, 3, 0.5)なら
メインウィグルの freqは5、ampは20。
追加されるウィグル①のfreqは10(5の2倍)、ampは10(20の0.5倍)
追加されるウィグル②のfreqは20(10の2倍)、ampは5(10の0.5倍)
となり、
wiggle(5,20)+wiggle(10,10)+wiggle(20,5) と考えられるようになるので、

Adobeのエクスプレッション言語リファレンス
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
例:position.wiggle(5, 20, 3, .5) を実行すると、平均サイズが 20 ピクセルのウィグルが 1 秒間に 5 つ作成されます。メインウィグルの他に、サイズが 10 ピクセルと 5 ピクセルの 2 つのレベルの詳細ウィグルが 1 秒間にそれぞれ 10 回と 20 回発生します。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
と一致します。

さっきの検証動画を例にとると


4. 黄 wiggle(0.5, 100, 3, 50)
 amp=100、amp_mult=50なので、
 追加されるウィグル①のampは、メインウィグルのamp × amp_mult(100 × 50)、
 追加されるウィグル②のampは、追加ウィグル①のamp × amp_mult(5000 × 50)となり、
 wiggle(0.5,100)+wiggle(1,5000)+wiggle(2,250000) となります。  
 
5.シアン wiggle(0.5,100,3,0.5)
 amp=100、amp_mult=0.5なので、
 wiggle(0.5,100)+wiggle(1,50)+wiggle(2,25) となります。
 
6.マゼンタ wiggle(0.5,100)+wiggle(1,50)+wiggle(2,25)
 バラバラのwiggleの値を3つ合わせています。
 
シアンとマゼンタはどちらもwiggle(0.5,100)+wiggle(1,50)+wiggle(2,25) となる(と思う)ようにエクスプレッションを書いています。それぞれのウィグルのSeed値も一緒にしていますが、一本の式のwiggleとバラバラの式のwiggleを合わせたものでは、同じ挙動にはならないようです。

octavesの値を変えるとどうなるか


ついでにoctavesの値別の挙動も検証してみました(白はオマケです)。
・赤、青(octavesが0、またはマイナス値)
 →振幅自体しない
・緑(octavesが0以上1以下)
 →octaves=1(黄)と同じ挙動
・シアン(octavesが1以上2以下の小数値)
 →octaves=2(マゼンタ)と同じ挙動

  • octavesは整数値として計算される(octaves=1.1でもoctaves=2として計算される)
  • octavesが0以下の場合、振幅しなくなる

amp_multの数値を変えるとどうなるか


amp_multの値別の挙動も検証してみました(白はオマケです)。
・赤、青(amp_multがマイナス値)
 →数値が小さいほど追加されるウィグルのampが大きくなる
・緑(amp_multが0)
 →細かいウィグルがない
・黄、シアン、マゼンタ(amp_multがプラス値)
 →数値が大きいほど追加されるウィグルのampが大きくなる
 
ちなみにamp_multの値がプラスかマイナスかで結果が違っていますが、
赤 [wiggle(1,100,3,-2)] と マゼンタ [wiggle(1,100,3,2)] を比較すると、
wiggle(1,100)+wiggle(2,-200)+wiggle(4,400)、
wiggle(1,100)+wiggle(2,200)+wiggle(4,400) となるので、
amp_multが「+」の時と「-」の時では結果は一致しないようです。

  • amp_multは数値(絶対値)が大きいほど、追加されるウィグルのampも大きくなる
  • ただし、amp_multの値がプラスの場合とマイナスの場合で、結果は変わる。
  • amp_mult=0の場合、追加されるウィグルのampは0倍された値になるので、実質細かいウィグルは追加されない

まとめ

  • octavesの値が1増えるごとにウィグルが1つ追加される。しかも追加されるウィグルごとに周波数(freq)は2倍になる。octaves=3ならメインウィグル1つ、追加されるウィグルは2つ。
  • octavesは整数値のみ。0以下の値では振幅しない。
  • amp_multは追加されるウィグルのampに影響する。
    元のウィグルのamp × amp_mult=追加されるウィグルのamp
2クリップする
クリップしておくと
あとからいつでも
見返したりできます。

コメント

  • まだコメントはありません