dA-tools.com

HOME > AfterFx > expression > 実例 > ブレ

[ブレ]のバリエーション

Sample:random/seedRandom/slider/switch_case/wiggle

  • キーフレームだけだと規則的になってしまう動きに変化を付けたいケースは多いと思います。いわゆる画面動、ブレ、揺らぎ、振動です。
  • 「位置」プロパティにエクスプレッションを記述しています。
  • スライダー制御を適用してブレ幅を制御できるようにしています。

 A 上下左右にランダム

amp=effect("スライダ制御").param("スライダ");
p=[1,2];
random(-p,p)*amp+position;

  • 配列pで縦横の移動比率を決定します。
  • 配列pの要素は[ x座標 , y座標 ]です。
  • この例では縦ブレ幅が横ブレの2倍になり、p=[0,2]では縦ブレだけになります。
  • 振幅をスライダーで時間変化させると下のようになります。

 B 上下は規則的、左右はランダム

  • 上下は1Fr毎に規則的、左右はランダムなブレ

amp=effect("スライダ制御").param("スライダ");
y=amp*((time*24%2)-0.5)
x=random(-1,1)*amp;
p=[x,y];
position+p;

 C 時々大きなブレ

  • ブレの中に時々大きなブレ

amp=effect("スライダ制御").param("スライダ");
p=[1,1];
nz=Math.min(random(100), 5)+Math.max(random(-100),-5);
random(-p,p)*amp+[0,nz]+position;

  • ブレ_AをベースにY軸方向に不規則に発生するノイズを加えています。
  • random( )の100と5の差が大きいほどノイズの発生率が減ります。

 D 定点間

  • 特定のポイントでブレ

p1=[1,1] , p2=[1,-1] , p3=[-1,-1] , p4=[-1,1] , p5=[0,0];
 amp=effect("スライダ制御").param("スライダ");


 ran=Math.round(random(4))
 switch (ran) {
  case 0 :shift=p1 break;
  case 1 :shift=p2 break;
  case 2 :shift=p3 break;
  case 3 :shift=p4 break;
  case 4 :shift=p5 break;
 }
 position+shift*amp

  • p1から5で左右上下とセンターのポイントを設定しています。
  • 設定したポイント以外の位置には移動しないので、ブレ_A よりは硬い感じです。

 E +ランダムスケール

  • スケール変化を加味

rand=random(-8,8);
scale+[rand,rand]

  • ブレ_Aをベースにして「スケール」に上の式を追加しています。
  • random( )の引数は任意です。

 F ウィグル

  • ウィグルを使ったブレ

wiggle ( 24,2, octaves = 1, amp_mult = .5, t = time)

  • ウィグルは引数"freq"を上げればradom( )に近いブレになりますが連続性があるのでやさしいブレが出来ます。
  • 「揺らぎ」の感じ?

 G ∞型軌跡

  • 横8の字型の軌跡上のぶれ

amp=effect("スライダ制御").param("スライダ");
ran=random();
x=Math.cos(Math.PI*2*ran);
y=Math.sin(Math.PI*2*ran*2);
position+[x,y]*amp

  • リサージュLinkIconで説明した8字型軌跡上をランダムに移動します。
  • 左右に”つまった”ばらつきなので手持ちカメラっぽい?ブレです。

 H ゆっくりブレ

  • 1f/sより遅いブレ

amp=effect("スライダ制御").param("スライダ");
hold = 3/24;
seed = Math.floor(time/hold);
A = seed*hold;
seedRandom(seed,true);
valA = random([-1,-1],[1,1]);
seedRandom(seed+1,true);
valB = random([-1,-1],[1,1]);
jolt=ease(time,A,A + hold, valA, valB)
position+jolt*amp

  • 3コマ毎にランダムを発生させてその間をeaseで補間しています。
  • seedRandom:乱数のコントロールLinkIcon の応用です