93のブロマガ

AviUtl の 個別オブジェクトとエフェクトについて

2015/01/08 05:43 投稿

  • タグ:
  • AviUtl
個別オブジェクトとエフェクト

AviUtlの拡張編集の機能に[個別オブジェクト]という
1レイヤーで複数の別のパラメータを持った画像を多数表示する、
と言う便利なオブジェクトがあります。
さつきさんのTAシリーズなどでよくお世話になりますね。

AviUtlの個別オブジェクトには自分の知る限りでは

1.テキストオブジェクト (文字毎に個別オブジェクト)
2.フィルター効果の「オブジェクト分割 」
3.フィルター効果の「画像ループ(個別)」

の三種がありますが、
3つ目の「画像ループ(個別)」だけ
他とは違う困った?動作をする仕様となっているようで
直接フィルタエフェクトを掛ける場合に注意が必要です。



何が起きるのです?

画像ループ(個別)でループさせた後にエフェクトを掛けるとどうやら

1ループ目のオブジェクトにエフェクトが掛かる
2ループ目は1ループ目のオブジェクトに更にエフェクトが掛かる
3ループ目は2ループ目のオブジェクトに更にエフェクトか掛かる…

と言うように画像を加工するエフェクトは
効果もループして掛かってしまうようです。

判り易いものだとクリッピングで、画像ループ後半に行くにつれて
どんどんとクリッピングに倍率が掛かった様に動作してしまいます。

また、ぼかしなどのオブジェクトのサイズが変化するようなエフェクトを掛けても
ループ分のサイズは固定されたまま、と言う動作をするようで
ぼかして広がった分は表示されずに左下へ追いやられてしまうようです。

対策
あまり機会がないかと思いますが。
同じ画像や図形をループさせて且つ個別オブジェクトにしたい場合は
画像ループ(個別オブジェクトにチェックしない)でループさせた後、
オブジェクト分割でループした分だけ分割
と言うのがよさそうです。
少し手間ですがこれなら正しく動作します。

※座標の移動、回転、拡大率、透明度など画像加工するエフェクトではない場合は
画像ループ(個別)で問題ありません

おわり。




-----------------------------------------

個別オブジェクトを使って遊べるオーディオエフェクトです。
適当な図形を出したらフィルター効果の追加からスクリプト制御を追加し、
functionから始まる謎呪文をコピペするとSoundと言う関数が発動します。
(何処かで一度実行すればプロジェクトを閉じるまでは何処でも使えます。)
が、これ自体が直接何かする訳ではありません。



function Sound(div,freq,max,mode)

local Div = div or obj.num --分割数
local Freq = freq or obj.index+1 --分割位置指定
local Max = max or 5000
local mode = mode or 1
if mode==1 then Mode="spectrum"
elseif mode==2 then Mode="pcm"
Max=Max*8
elseif mode==3 then Mode="fourier"
end
local f,f,t = obj.getaudio(nil,"audiobuffer",Mode,Div)
local V=t[Freq]/Max
if Mode~="pcm" then V=math.min(V,1) end
return V
end



使い方はスクリプト制御に
obj.alpha = Sound()
のようにしたり、
obj.zoom = Sound()
のようにしたり。
obj.oy = -Sound()*100 + obj.oy
のように書いて使います。引数は全省略可能です。

音量に合わせて0~1の範囲で動く数値を出しますので個別テキストなどにどうぞ。
エフェクトやアニメーション効果ダイアログにも使ってもいいでしょう。

obj.effect("単色化", "強さ",100*Sound(), "color",0xf56c77)
--音に合わせて色が付く例。

obj.effect("ぼかし", "範囲",10*Sound())
--音に合わせてぼかす例 (画像ループ(個別)で使うのはNG)




コメント

コメントはまだありません
コメントを書き込むにはログインしてください。

いまブロマガで人気の記事