最終更新:ID:q3nDD1gRAQ 2021年08月13日(金) 04:44:51履歴
関数 | obj.effect([name,param1,value1,param2,value2,...]) | |
---|---|---|
解説 | 指定のフィルタ効果を実行します。メディアオブジェクトのみ使用出来ます。 引数なしで呼ぶとスクリプト以降のフィルタ効果を実行します。 | |
引数 | name | エフェクトの名前を指定します。 |
param1 | エフェクトのパラメータの名前を指定します。 | |
value1 | エフェクトのパラメータの値を指定します。 | |
zoom | 拡大率(1.0=等倍) | |
alpha | 不透明度(0.0=透明/1.0=不透明) | |
param?,value?の組み合わせは必要な分だけ指定できます。 | ||
※トラックバー、チェックボックス以外の設定のparam,valueは オブジェクトファイルのエクスポート等で出力された時の名前や値になります。 ※名称が変わるトラックバーはエクスポート等の出力での名前を参照して下さい。 ※ディスプレイスメントマップの形状指定で"type"を0,"name"を"*tempbuffer"に 指定するとtempbufferを形状として読み込みます。 | ||
例 | obj.effect("色調補正","明るさ",150,"色相",180) |
obj.effect関数は、現在objテーブルに読み込まれているオブジェクトに、フィルタ効果(エフェクト)を掛けます。
フィルタ効果は、例えば「ぼかし」や「色調補正」などが例に挙げられます。
この「objテーブルに読み込まれているオブジェクト」は、obj.load?関数で変更することが出来ます。
フィルタ効果は、例えば「ぼかし」や「色調補正」などが例に挙げられます。
この「objテーブルに読み込まれているオブジェクト」は、obj.load?関数で変更することが出来ます。
obj.effect関数の引数は以下のように指定します。
例えば、色調補正を使ってコントラストを変更する場合は、以下のように指定します。
このパラメータ名とは、フィルタ効果を実際に追加したときに表示される「トラックバーの名前」のことです。
パラメータ名は正確に入力しなければなりませんので、「"コントラスト"」ではなく「"コントラスト"」と入力する必要があります。
なお、設定するパラメータは幾つでも大丈夫です。
obj.effect(フィルタ効果名, パラメータ名, 値)
例えば、色調補正を使ってコントラストを変更する場合は、以下のように指定します。
obj.effect("色調補正", "コントラスト", 150)
このパラメータ名とは、フィルタ効果を実際に追加したときに表示される「トラックバーの名前」のことです。
パラメータ名は正確に入力しなければなりませんので、「"コントラスト"」ではなく「"コントラスト"」と入力する必要があります。
なお、設定するパラメータは幾つでも大丈夫です。
--3個のパラメータを指定する例 obj.effect("色調補正", "コントラスト", 150, "明るさ", 50, "彩度", 80)
例えば、「ノイズ」を表示してみるとこのような感じになっています。
この左下にある「合成モード」や「ノイズの種類」は、トラックバーではないパラメータとなります。
またトラックバーの中にも、設定によって名前が変化するものもあります(ディスプレイスメントマップの変形X、変形Yなど)。
これらのパラメータ名は、内部では表示名とは異なった名前が指定されています。
obj.effect関数で使用する場合は、このパラメータの正確な名前を調べる必要があります。
その方法の1つとして、「エイリアスを作成」するという方法があります。
タイムライン上で右クリックをシて、「エイリアスを作成」をクリックするとエイリアスが作成できます。
生成されたEXAファイルをテキストエディタで開くと、このような値になっています。
この「_name」がフィルタ効果の名前です。
下の方にある「type」や「mode」のような値は、それぞれ「ノイズの種類」や「合成モード」となっています。
ですので、これらを変更する場合は、以下のように入力します。
この左下にある「合成モード」や「ノイズの種類」は、トラックバーではないパラメータとなります。
またトラックバーの中にも、設定によって名前が変化するものもあります(ディスプレイスメントマップの変形X、変形Yなど)。
これらのパラメータ名は、内部では表示名とは異なった名前が指定されています。
obj.effect関数で使用する場合は、このパラメータの正確な名前を調べる必要があります。
その方法の1つとして、「エイリアスを作成」するという方法があります。
タイムライン上で右クリックをシて、「エイリアスを作成」をクリックするとエイリアスが作成できます。
生成されたEXAファイルをテキストエディタで開くと、このような値になっています。
[vo] length=51 [vo.0] _name=ノイズ 強さ=100.0 速度X=0.0 速度Y=0.0 変化速度=0.0 周期X=1.00 周期Y=1.00 しきい値=0.0 type=0 mode=0 seed=0
この「_name」がフィルタ効果の名前です。
下の方にある「type」や「mode」のような値は、それぞれ「ノイズの種類」や「合成モード」となっています。
ですので、これらを変更する場合は、以下のように入力します。
--合成モード:輝度と乗算、ノイズの種類:Type3 に指定する場合 obj.effect("ノイズ", "type", 2, "mode", 1)
obj.effect関数でディスプレイスメントマップを使用する際に、「マップの種類」に仮想バッファを使用することが出来ます。
パラメータ「name」に「*tempbuffer」、「type」に「0」を指定すると、仮想バッファが図形としてマッピングに使用されます。
以下が、この方法を用いたサンプルです。
パラメータ「name」に「*tempbuffer」、「type」に「0」を指定すると、仮想バッファが図形としてマッピングに使用されます。
--シーンを使用したときとは挙動が異なるので注意 obj.effect("ディスプレイスメントマップ", "name", "*tempbuffer", "type", 0)
以下が、この方法を用いたサンプルです。
obj.load("framebuffer") obj.setoption("drawtarget","tempbuffer", obj.screen_w, obj.screen_h) --描画先を仮想バッファに設定 obj.draw() --仮想バッファに、ぼかした円を描画 obj.load("framebuffer") --フレームバッファを読み込む obj.effect("ディスプレイスメントマップ", "type", 0, "name", "*tempbuffer", "サイズ", obj.screen_w, "param0", 500, --変形X "param1", 500 --変形Y ) obj.setoption("drawtarget","framebuffer") --描画先をフレームバッファに設定 obj.draw() --描画
コメントをかく