無料動画編集ソフト「AviUtl」のWiki

lua.txtの内容

関数obj.draw([ox,oy,oz,zoom,alpha,rx,ry,rz])
解説現在のオブジェクトを描画します。メディアオブジェクトのみ使用出来ます。
通常何もしなくても最後に描画されますがobj.draw()を使うことにより
オブジェクトを複数回描画することが出来ます。
※obj.draw()を使用した場合スクリプト以降のフィルタ効果は実行されません。
※obj.effect()を引数なしで呼ぶことで事前にスクリプト以降のフィルタ効果を実行出来ます。
引数ox相対座標X
oy相対座標Y
oz相対座標Z
zoom拡大率(1.0=等倍)
alpha不透明度(0.0=透明/1.0=不透明)
rxX軸回転角度(360.0で一回転)
ryY軸回転角度(360.0で一回転)
rzZ軸回転角度(360.0で一回転)
obj.draw(2,10,0)

解説

obj.draw関数は、現在objテーブルに読み込まれているオブジェクトを画面に描画します。
この「objテーブルに読み込まれているオブジェクト」は、obj.load?関数で変更することが出来ます。

描画

obj.draw関数の引数はすべて省略可能です。
座標などの値を変更しない場合は、以下のように()にはなにも記述しません。
obj.load("figure", "円") --円をobjに読み込む
obj.draw() --画面に描画する


複数回描画する場合は、obj.draw関数を複数回実行します。
obj.load("figure", "円", 0xffffff, 200) --円をobjに読み込む

--2つの円を描画する
obj.draw(-200, 0)
obj.draw(200, 0)


for文などを利用すると、指定した回数だけ繰り返すことができます。
obj.load("figure", "円", 0xffffff, 50) --円をobjに読み込む

--円を50回描画する
for i=-50,50 do
   obj.draw(i*5, i*5) --斜めに円が連続して、直線が描ける
end

drawtarget

obj.setoption?関数を利用すると、drawtarget(obj.draw関数で描画する対象)を変更することが出来ます。
基本はframebuffer(フレームバッファ=画面)になっています。
※詳細は、obj.setoption?関数のページを参照
仮想バッファ
仮想バッファを利用すると、全体を1つのオブジェクトとして扱うことができるようになります。
イメージとしては、別のシーンにオブジェクトを配置して、それをRootで読み込むような形です。

obj.setoption("drawtarget","framebuffer") で、obj.draw関数が描画する先を仮想バッファにします。
obj.setoption("drawtarget","tempbuffer", obj.screen_w, obj.screen_h) -- 描画先を仮想バッファに変更

obj.load("figure","円",0xffffff,50)
for i=-50, 50 do
	obj.draw(i*10, 0) --仮想バッファに円を描画
end

obj.load("tempbuffer") --仮想バッファをobjに読み込み
obj.effect("ぼかし", "範囲", "30") --仮想バッファ全体にエフェクトを掛ける

obj.setoption("drawtarget","framebuffer") -- 描画先をフレームバッファに変更
obj.draw() --objに読み込まれた仮想バッファを描画

obj.effect関数について

obj.effect関数は、objテーブルに対してエフェクトを掛けます。
そのため一度obj.draw関数を実行してしまうと、その後からエフェクトを掛けることは出来ません。
obj.load("figure", "円")
obj.draw()

obj.effect("モザイク", "サイズ", 18) --このエフェクトは適用されない

コメントをかく


利用規約をご確認のうえご記入下さい

紹介掲示板

フリーエリア

ここに管理者がHTMLやJavascriptを記述することができます。
ここに貼るアイテムを思い付いた人は管理者までご連絡ください。

どなたでも編集できます