忍者ブログ
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

概要

分割配置スクリプトです。
画面を指定の数に分割し、それに合わせたオブジェクトのリサイズ・座標移動を自動で行います。
ダウンロードはこちらから

【AviUtl】分割スクリプトを改良してみた【ゆっくり解説】を参考に作り始めました。
1~2年前の時点で最低限使える程度にはできていたものの、公開できそうなレベルに達していなかったまま放置していました。
が、【AviUtl】 罫線スクリプトに触発されてアイデアを多少パクりつつ筆を進め、なんとか公開できそうな程度になりました。
思いついた機能を全部ぶちこんでいった結果項目がやたら多くなりましたが、やっていること自体は単純です。

利用方法

aviutl.exeと同じフォルダにある「script」フォルダ(無いなら作成)の中に「@分割配置.anm」を入れてください。
aviutlを起動したら、掛けたいオブジェクトにアニメーション効果を追加し、ドロップダウンリストから「分割配置:メイン@分割配置」を選択します。
あとはトラックバーで分割数や位置を調節するだけです。

↓図形(円)にかけたもの

分割配置:メイン

横・縦分割数 (トラックバー)

分割数です。
プロジェクトの解像度(画面サイズ)を基準に、この数値分だけ分割したサイズになります。

横分割数:4、縦分割数:2


横分割数:3、縦分割数:3

分割位置 (トラックバー)

配置する位置を指定します。
左上を基準に、右下へ向かって順番に移動します。

移動時間 (トラックバー)

後述する移動の時間を指定します。
0で初期位置、100で移動先の位置になります。

位置ループ (チェックボックス)

位置が縦*横をオーバーするときに、ループさせます。
チェックが入っていないと、画面外(デフォルトでは下方向)にはみ出すことになります。

設定ダイアログ

補助・フォーカス・グループ制御以外の項目は、設定:○○の効果を追加することでも設定できます。
項目数が多いですが、メインのみである程度完結させられるようにするためです。

補助線太さ (数値)

1以上の数値を入れるとその太さの補助線を表示します。
0で非表示になります。
緑がグリッド、青の四角形が現在の位置、赤の四角形が移動先の位置です。

補助表示 (チェックボックス)

チェックを入れると、後述の設定ごとに調整のための表示を有効にします。

アス比固定が無効の場合、比率を表示します。
事前のクリッピングや領域拡張で調節する際、1に近付けることで画像のアスペクト比が元のものに近くなります。


アス比固定が有効の場合、余白を表示します。
事前のクリッピングや領域拡張で調節する際、0に近付けることで配置の際の隙間がなくなります。


切り抜きが有効の場合、基準となる位置に円と十字を重ねたものが表示されます。
↓切り抜き座標:{0,0}、切り抜き基準{0,0}のもの


増殖が有効の場合、オブジェクト毎の番号を表示します。


※補助線・補助表示は、あくまで微調整などの確認のための機能として実装しているので、以降にかけたフィルタ効果の対象になりません。

疑似フォーカス (チェックボックス)

補助線または補助表示が有効の場合、フォーカスが画面中央の円(グループ設定等のフォーカスと同じもの)になりますが、それを元の画像と同じ位置・形にします。
↓オフの場合

同じサイズの透明な画像を重ねているだけなので、以降に重いエフェクトを掛けている場合は処理負荷が増大する可能性があります。

描画 (数値)

0~3で描画方法を指定します。
処理速度や他のフィルタ効果のかかり方が変わります。
0:obj.drawpoly()で描画します。
1:拡大率を変更してサイズを調節します。
2:リサイズフィルタでサイズを調節します。
3:2と同じリサイズですが、補間なしにします。
↓それぞれに縁取りをかけたもの

処理速度は、
縮小する場合
 リサイズ<拡大率<obj.drawpoly() (右へ行くほど遅い)
拡大する場合
 拡大率<リサイズ<obj.drawpoly()
だったと思います。(間違ってたらごめんなさい)

アス比固定 (チェックボックス)

画像のアスペクト比を固定します。
引き延ばしが無くなりますが、画像のアスペクト比と描画先のアスペクト比が違う場合に余白ができます。
無効の場合は余白がなくなりますが、画像が引き延ばされます。

サイズ調整 (数値の配列)

{横サイズ,縦サイズ} の形式で画像のサイズを指定します。
2なら倍、0.5なら半分のサイズです。
負数を指定すると左・上を基準に反転した位置になります。(描画が反転されるわけではない)
↓分割数4*4、大きさ{2,1}の場合

領域調整 (数値の配列)

{横,縦,モード,固定方向} の形式で全体のサイズを調節します。

モードが1の場合、画面サイズに対しての相対値です。
指定した数値だけ正数で大きく、負数で小さくなります。
↓{-100,-100,1,0}


モードが2の場合、画面サイズそのものの値を指定します。
負数は絶対値が適用されます。(描画が反転されるわけではない)
↓{300,300,1,0}


モードが3の場合、画像サイズでの値を指定します。
画面サイズは指定した値*分割数になります。
負数は絶対値が適用されます。(描画が反転されるわけではない)
↓{100,100,2,0}


固定方向は、どこを基準に領域サイズを変更するかを指定します。(「固定する方向」の方がわかりやすいかも?)
0か5の場合、中央が基準になります。
1は左上に固定、2は上、3は右上
4は左……といった感じです。
画面端にスナップしたいときに利用できます。

ずらし (数値の配列)

{横,縦}の形式で描画する位置を指定します。
1を入れると1だけ横・縦にずらします。
これを利用すれば、位置ループが有効の場合でも画面外に配置することが可能です。

切り抜き座標 (数値の配列)

画像をリサイズせずに、描画するサイズで切り抜きます。
{x,y}の形式で切り抜きの基準となる位置を指定します。
空だと無効になりますが、何らかの値が入っていると配列でなくとも{0,0}として強制的に切り抜きが有効になります。
有効な場合、アス比固定の有無と描画設定は無視されます。

切り抜き基準 (数値の配列)

{x,y}の形式で切り抜き座標の基準になる位置を指定します。
-1が左/上側、1が右/下側になります。
{0,0}で中央になります。
単に位置を変えるだけではなく、サイズを移動させる場合の固定方向にも違いがあります。

移動 (チェックボックス)

チェックを入れると下記の移動を有効にします。

移動先 (配列)

{横分割数,縦分割数,分割位置,{大きさx,大きさy}}の形式で移動先を指定します。
例として、トラックバーの「移動」を0から100へ直線移動させると、その間に元の位置から移動先の位置へ移動します。

グループ制御 (数値の配列)

配列を入力すると有効になります。
グループ制御オブジェクトに分割配置:メインを掛け、この項目を有効にすると、そのグループ制御の対象になっているオブジェクトに一括で分割配置の位置をずらすことができます。(個別オブジェクトのようなもの?)
配列内には、上から順番に元の位置からの相対位置を指定します。
配列のサイズが対象の個数より小さい場合、超過したものはその続きから順番に指定されます。
例えば、配列が{}の場合、すべてが最初のオブジェクトから順番に配置されます。

小技として、グループ制御は最後に掛けられるので
グループ制御─分割配置:メイン
├オブジェクト─設定:○○

└オブジェクト
のようにオブジェクトに設定のみを配置すると、個別で項目の調節も可能です。

※補助線/補助表示は、一番上のものだけが表示されます。
※グループの対象かどうかではなく、この項目に入力されている値が同一かどうかでグループ制御の範囲内にあるかどうかを判別しているので、同じフレーム内にある別のグループ制御でそれぞれの配列が全く同じだと意図しない動作をする可能性があります。
 その場合、配列の要素を余分に設定する等で配列を違うものにすれば別のグループと判断されます。

始点 (1~4の数値)

分割位置の基準となる位置を指定します。 1で左上、2で右上、3で左下、4で右下です。
右や下が基準になる場合、順番も反転されます。

進行方向 (1 or 2)

2を入れると分割位置の進行方向が縦になります。
チェックボックスの数が足りなかった

その他の効果(設定)

いろんな値をトラックバーで制御することができます。
基本的に、設定ダイアログ内の同じ効果の設定を上書き/無視します。
すべて分割配置:メインの上に掛けてください。

設定:移動

移動をトラックバーで制御します。
メイン単体と違い、中間点を利用して複数移動させられますが、扱い方が少し特殊です。

分割数を変更させない場合は、設定:ずらしをトラックバー操作させることでも代用できます。
そちらは値がそのまま適用されるのでより直感的に操作できます。

横/縦分割数・分割位置 (トラックバー)

それぞれ移動先の値を指定します。
値が0以外だと、メインに設定された対応する値はすべて無視されます。
逆に値が0なら、元の値が対象になります。
また、これらの項目は移動方法を無視し、中間点毎の始点/終点の位置の値だけを取得します。
移動方法を制御したい場合は移動時間で指定してください。

移動時間 (トラックバー)

基本的に、メインにおける移動時間と同じです。
ただし中間点を利用した連続移動の対応として、値が減る場合は移動を反転させます。
つまり、0→100と100→0の移動は同じになります。

設定:サイズ調整

サイズをトラックバーで制御します。

X/Y (トラックバー)

横/縦のサイズを指定します。

_X/_Y (トラックバー)

上記のものと同様です。
違いは小数点やトラックバーの移動距離だけです。
また、チェックボックスによって2つの値が加算か乗算かを指定できます。

設定:領域調整

領域をトラックバーで制御します。

領域X/Y (トラックバー)

横/縦方向の値を指定します。

モード (トラックバー)

領域サイズの変更方法を指定します。
モードが0の場合、画面サイズに対しての相対値です。
指定した数値だけ正数で大きく、負数で小さくなります。

モードが1の場合、画面サイズそのものの値を指定します。
負数は絶対値が適用されます。(描画が反転されるわけではない)

モードが2の場合、画像サイズでの値を指定します。
画面サイズは指定した値*分割数になります。

方向 (トラックバー)

どこを基準に領域サイズを変更するかを指定します。(「固定する方向」の方がわかりやすいかも?)
0か5の場合、中央が基準になります。
1は左上に固定、2は上、3は右上
4は左……といった感じです。

値0でデフォルト(チェックボックス)

領域X/Yを0にしたときの挙動を指定します。
モードが1か2の場合に見た目に大きな違いができます。
チェックが入っている場合、メインで指定された値が適用されます。(X、Yの片方のみを変更することができる)
チェックが入っていない場合は、そのまま0の値が適用されます。

設定:切り抜き

切り抜きをトラックバーで制御します。
メインのものと同じ効果です。

座標X/Y (トラックバー)

切り抜きの基準となる座標を指定します。

基準位置X/Y (トラックバー)

切り抜き座標の基準になる位置を指定します。
-1が左/上側、1が右/下側になります。
0で中央になります。
単に位置を変えるだけではなく、サイズを移動させる場合の描画に違いがあります。

座標反転 (チェックボックス)

チェックを入れると、座標X/Yの値を反転させます。
トラックバーで調整する際の見た目上のオブジェクト移動が正方向になるので、調整する際により直感的になると思います。

設定:ずらし

ずらし位置をトラックバーで制御します。

X/Y (トラックバー)

ずらす値を分割サイズ単位で指定します。

_X/_Y (トラックバー)

X/Yと同様で、違いは小数点やトラックバーの移動距離だけです。
実際に適用される値はX/Yと_X/_Yを加算したものになります。

設定:上部/下部点ずらし

四角形の四隅に対応する描画点をずらすことができます。
簡単に言うと、グリッドに合わせた簡易変形のようなものです。
この設定はメインにはありません。
また、この設定が有効だと、描画方法が強制的にobj.drawpoly()になります。

各X/Y (トラックバー)

各点毎のずらす数を指定します。
右・下方向が正ですが、「拡大方向を正にする」にチェックが入っていると、大きくなる方向が正になります。

描画分割数 (ダイアログ)

アニメーション効果「簡易変形」における分割数(本スクリプトの分割数ではない)と同じ(のはず)です。
分割数を上げると変形の精度が上がりますが、バグとして穴が空いたり分割ごとの継ぎ目が少し飛び出たりします。
どう直せばいいのかいまいちわかんない

設定:増殖

オブジェクトを複数描画することができます。
この設定はメインにはありません。

個数 (トラックバー)

追加で描画する個数を指定できます。

位置 (ダイアログ)

描画する位置を配列で指定します。

相対位置 (ダイアログ、チェックボックス)

上記の位置の指定方法を変更します。
チェックが入っていると元のオブジェクトの位置から相対的な指定に、
入っていないと1から数えた絶対的な位置になります。

未定義は最後から (ダイアログ、チェックボックス)

トラックバーで指定した個数よりも位置で指定した配列の個数が少ない場合の挙動を指定します。
チェックが入っていると配列で指定した最後の位置からの順番になります。
チェックが入っていないと1から数えた位置から順番に配置されます。

個別にフィルタ効果 (ダイアログ、チェックボックス)

全てに個別にフィルタ効果を掛けるかどうかを指定します。
すべてにそれぞれ1回ずつ掛かる(個別オブジェクトみたいな感じ)ので、重い処理を掛ける場合に負荷が倍増する危険性があります。

設定:並び/描画設定

メインで設定できる残りの項目をトラックバーで制御するようにしただけです。
それぞれ最小値(0か-1)の場合にはメインでの値を適用します。(項目ごとに個別で設定できる)

始点

分割位置の基準となる位置を指定します。 1で左上、2で右上、3で左下、4で右下です。
右や下が基準になる場合、順番も反転されます。

進行方向

2を入れると分割位置の進行方向が縦になります。

描画モード

0~3で描画方法を指定します。
処理速度や他のフィルタ効果のかかり方が変わります。
0:obj.drawpoly()で描画します。
1:拡大率を変更してサイズを調節します。
2:リサイズフィルタでサイズを調節します。
3:2と同じリサイズですが、補間なしにします。

アス比固定

1にすると画像のアスペクト比を固定します。
引き延ばしが無くなりますが、画像のアスペクト比と描画先のアスペクト比が違う場合に余白ができます。
0の場合は余白がなくなりますが、画像が引き延ばされます。


PR
  top  
忍者ブログ [PR]