Skip to content

凸包を背景に配置するフィルタ効果を追加するAviUtl拡張編集フィルタプラグイン.

License

Notifications You must be signed in to change notification settings

sigma-axis/aviutl_ConvexClosure_S

Repository files navigation

AviUtl 凸包拡張編集フィルタプラグイン

凸包を描画するフィルタ効果「凸包σ」を追加する拡張編集フィルタプラグインです.

凸包σのデモ

動作要件

導入方法

aviutl.exe と同階層にある plugins フォルダ内に ConvexClosure_S.eef ファイルをコピーしてください.

凸包とは

  1. 図形上の任意の2点に対して,その2点を結ぶ線分がその図形に含まれるとき,その図形は凸集合であるという.

  2. 図形に対して,その図形を含む最小の凸集合を凸包と呼ぶ.

  3. もっと一般に,「測地線」を定義できれば「凸集合」や「凸包」は定義でき,任意の集合に対して凸包は一意に存在する.

参考: https://ja.wikipedia.org/wiki/%E5%87%B8%E5%8C%85

このフィルタで計算する凸包

ピクセル画像を αしきい値 を境に「透明ピクセル」と「不透明ピクセル」に二分して,不透明ピクセルを含む凸包を計算します.計算結果は多角形になるので(必要ならその辺々を 余白 分だけ外側に移動して),元画像の背景として配置します.

計算手順

使い方

正しく導入できているとフィルタ効果に「凸包σ」が追加されています.オブジェクトの背景にそのオブジェクトの凸包を,指定した色またはパターン画像で描画します.

凸包σのGUI

各種パラメタ

  • 余白

    実際の凸包を表す多角形の辺々を,指定したピクセル数だけ外側に移動して余白を確保します.

    最小値は 0, 最大値は 500, 初期値は 0.

  • 透明度

    凸包を描画する際の透明度を % 単位で指定します.

    最小値は 0.0, 最大値は 100.0, 初期値は 0.0.

  • 内透明度

    凸包の元となった図形の透明度を % 単位で指定します.

    最小値は 0.0, 最大値は 100.0, 初期値は 0.0.

  • αしきい値

    凸包の元となる図形のピクセルを,透明/不透明に分類する基準になるα値を % 単位で指定します.

    最小値は 0.0, 最大値は 100.0, 初期値は 50.0.

  • 画像X / 画像Y

    パターン画像ファイル を設定している場合のみ有効,パターン画像ファイルの位置を調節します.

    画像ファイルの左上座標が,元のオブジェクトの左上座標と一致する配置が $(0,0)$ の基準点になります.

    最小値は -4000, 最大値は 4000, 初期値は 0.

  • アンチエイリアス

    凸包を表す多角形の辺々を描画する際に,アンチエイリアスを適用するかどうかを指定します.アンチエイリアスが OFF の場合に描画されるピクセルは,ON だった場合α値が 100% で描画されるはずだったピクセル(完全に凸包に含まれるピクセル)に限られます.

    初期値は ON.

  • 背景色の設定

    凸包の色を指定します.パターン画像ファイルが設定されている場合は無視されます.

    初期値は RGB( 0 , 0 , 0 ) (黒)です.

  • パターン画像ファイル

    凸包部分に適用するパターン画像ファイルを指定します.画像ファイルをドラッグ&ドロップでも設定できます.

    画像ファイルのパスは可能な限り相対パスで保存・管理されます.詳しくはこちら

パターン画像のファイルパスについて

パターン画像のファイルパスは可能な限りプロジェクトファイルか AviUtl.exe のあるフォルダからの相対パスとして記録管理するようにしています.

これで動画編集ファイルを整理する際プロジェクトファイルと素材ファイルを同じフォルダにまとめておけば,フォルダごと移動するだけでそのまま移動先のフォルダで編集や閲覧ができるようになります.

スクリプトなどで使う素材ファイルを AviUtl.exe のあるフォルダに置いている場合でも,AviUtl.exe をフォルダごと移動 / コピーでそのまま使うことができます.

スクリプトで指定した場合や .exo, .exa, .exc ファイルなどでも相対パスの形で指定できます.仕様は以下の通り:

  1. <exe> から始まる文字列は AviUtl.exe のあるフォルダからの相対パスとみなされます.

    例:

    • AviUtl.exe が C:\hoge\aviutl.exe に配置されていて,ファイルパスが <exe>fuga\image.png だった場合,C:\hoge\fuga\image.png のファイルをパターン画像として読み込みます.
  2. <aup> から始まる文字列はプロジェクトファイルのあるフォルダからの相対パスとみなされます.ただしプロジェクトファイルが未保存でファイル名が未指定の場合,AviUtl.exe のあるフォルダからの相対パスとして取り扱われます.

    例:

    • プロジェクトファイルが C:\foo\bar.aup に保存されていて,ファイルパスが <aup>xyz\image.png だった場合,C:\foo\xyz\image.png のファイルをパターン画像として読み込みます.

    • プロジェクトファイルが未保存の場合,AviUtl.exe が C:\hoge\aviutl.exe に配置されていて,ファイルパスが <aup>xyz\image.png だった場合,C:\hoge\xyz\image.png のファイルをパターン画像として読み込みます.

  3. その他の場合,普通にフルパス(あるいは現在実行中の AviUtl.exe の作業フォルダからの相対パス)として扱います.

TIPS

  1. オブジェクトの上下左右に「角」がある場合,余白 部分がオブジェクト境界を越えて切り取られたようになってしまうことがあります.この場合,あらかじめ 領域拡張 しておくことで自然な角になることがあります.

    角の描画と領域拡張

  2. スクリプト制御やアニメーション効果,カスタムオブジェクトなどでも利用できます.

    • 例:

      obj.effect("凸包σ","余白",10, "透明度",20, "アンチエイリアス",1, "color",0xff0000)

      余白10, 透明度20, アンチエイリアス が ON, 背景色の設定 が赤色 (#FF0000) の指定で 凸包σ を適用.

    ほとんどのパラメタ名はトラックバーのボタンにあるテキストの通りですが,一部違うものがあります.

    1. 背景色の設定"color" で指定します.

      number 型で 0xRRGGBB の形式です.

    2. パターン画像ファイル"file" で指定します.

      <aup><exe> を利用して相対パスでファイルを指定することもできます.[詳細]

改版履歴

  • v1.00 (2024-07-24)

    • 初版.

ライセンス

このプログラムの利用・改変・再頒布等に関しては MIT ライセンスに従うものとします.


The MIT License (MIT)

Copyright (C) 2024 sigma-axis

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

https://mit-license.org/

Credits

aviutl_exedit_sdk

https://github.com/ePi5131/aviutl_exedit_sdk (利用したブランチはこちらです.)


1条項BSD

Copyright (c) 2022 ePi All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. THIS SOFTWARE IS PROVIDED BY ePi “AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ePi BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

連絡・バグ報告

About

凸包を背景に配置するフィルタ効果を追加するAviUtl拡張編集フィルタプラグイン.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages