GH AnimSet

* anm

種類
--

GH\_AnimSetとは、anm拡張子のAviutlスクリプト群である。

■初版作成日：2011/02/09
■最終更新日：2011/02/18 （更新履歴は末尾に記載）
■作成者：金の髭

概要
--

AviUtlの拡張編集プラグインの「アニメーション効果」フィルタにアニメーションパターンを登録するanmファイルです。

* anmファイルの中身はLuaスクリプトなのでメモ帳などで開けばスクリプトの書き換えなどが可能です。
* 拡張編集とLuaについては拡張編集プラグインに同梱されているドキュメント(※Lac注:リンクから見れます)を参照して下さい。
* 末尾に示した参考サイトなどもご覧下さい。

■使用したAviUtlのバージョン
0.99i8
■使用した拡張編集プラグインのバージョン
0.87e
### 注意

* スクリプトファイルはバージョンアップによる仕様変更などにより使えなくなったり想定した動作をしなくなったりする可能性もあります。上に示したバージョンの組み合わせでしか動作確認していないのでご注意ください。
* 今後デフォルトのアニメーションパターンが増えたらお役御免になるかも。
* 作者はLuaをまともに勉強してません。サンプルや解説を見て適当にググって作ってます。基本的に初心者レベルなので処理効率とかもあまり考えてません。保証なども一切ありませんので、自己責任で使ってくださいね。テヘッ。

## 使い方

1. exedit.auf（拡張編集プラグインのフィルタファイル）を置いたフォルダに「script」というフォルダを作ります。
2. 同梱のanmファイル（\*.anm）を、scriptフォルダの中に置きます。
3. AviUtlを起動し、拡張編集上のオブジェクトに「アニメーション効果」のフィルタ効果を追加すると、左下の選択ボックスで下に示すアニメーションパターンが選択できるようになります。

※「TA」で始まるものは、テキストオブジェクトで「文字毎に個別オブジェクト」をチェックして使うことを前提としています。
* TAは多分Text Animationのことかな？さつきさんのユーザ記事にあるサンプルスクリプトで「TA個別」という表現がされていたのでそれに倣いました。

※アニメーション効果をかけるオブジェクトは標準描画ではなく「拡張描画オブジェクト」にしておく必要があります。
※テキストオブジェクトの上に「カメラ制御（拡張描画）」を追加しないと、３D的な前後関係が正しく処理されません。
※作成した螺旋や多角形全体を傾けたりしたい場合は「グループ制御」を使うとよいと思います。オブジェクト自体の回転などを使うと思ったようにいかない場合があります。（オブジェクト自体の回転をいじると、それはそれで面白い効果が出せますが。）
※必要なものを取捨選択して使ってください。特に「GH各種調整用.anm」は、細々とした単純設定用のセットなので、入れるとアニメーションのパターンが増えすぎて選ぶのが面倒になるかも。
## タイムライン上での基本的なレイヤー配置とフィルタ適用図

* カメラ制御(拡張描画)
* グループ制御
	+ 下の対象オブジェクトとグループ化しておくとよい。
	+ 全体の移動・回転などに使う。
* 対象オブジェクト
	+ 拡張描画オブジェクトにする。(※Lac注:拡張絵画はデフォルトでカメラ制御の影響を受ける)
	+ テキストの場合は必要に応じて「文字毎に個別オブジェクト」にチェックを入れる
	+ 「カメラ制御オプション」フィルタを追加する。（「カメラのほうを向く」を使いたい場合のみ。）
	+ 「アニメーション効果」フィルタを追加し、アニメーションを選択。
		- 多角形配置などは２つセットなので２つのアニメーション効果を追加する。
* デバッグ出力用テキストオブジェクト
	+ デバッグ出力を行なう場合のみ使用。

## それぞれのアニメーションについて

### ※重要

変化させたいパラメータが多いため、多角形配置と螺旋、球状配置は「\*\*\*-1(定義のみ)」と「\*\*\*-2(描画)」の２つが組み合わさって１セットになっています。まず「\*\*\*-1(定義のみ)」をかけてから「\*\*\*-2(描画)」をかけるようにして下さい。（「\*\*\*-2(描画)」だけでも使えますが、その場合「\*\*\*-1(定義のみ)」側にあるパラメータは固定値になります）

### ※ワンポイント

「多角形配置・螺旋・円軌道・球状配置で、面は必ずカメラのほうを向くようにしたい」という場合は、「向き」を「0」にしておき、オブジェクトに「カメラ制御オプション」を適用して「カメラのほうを向く」にしておきます。

### XYスケール

X方向とY方向とで異なる比率の拡大縮小をしたい場合に使います。（「拡大率＋縦横比」での操作が面倒なのでパーセントで指定できるようにしたものです）

* Xスケール
	+ X方向への拡大率をパーセントで指定します。
* Yスケール
	+ Y方向への拡大率をパーセントで指定します。

## GHデバッグ用.anm

lua.txtにある、各種パラメータ（obj.oxなど）をテキストで出力するためのものです。

* 適用してもdbg1あるいはdbg2という変数を定義するだけなので何も起きませんが、下のレイヤーに出力用のテキストオブジェクトを追加し、テキスト部に
	+ <?mes(dbg1)?>
* もしくは
	+ <?mes(dbg2)?>
* と記述すると、オブジェクトの各種パラメータを見ることができます。

### ●dbg1

```
dbg1=string.format(
"obj.x = %.2f\nobj.y = %.2f\nobj.z = %.2f\nobj.ox = %.2f\nobj.oy = %.2f\nobj.oz = %.2f\nobj.rx = %.2f\nobj.ry = %.2f\nobj.rz = %.2f\nobj.zoom = %.2f\nobj.alpha = %.2f\nobj.aspect = %.2f\nobj.w= %.2f\nobj.h = %.2f",
obj.x,obj.y,obj.z,
obj.ox,obj.oy,obj.oz,
obj.rx,obj.ry,obj.rz,
obj.zoom,obj.alpha,obj.aspect,
obj.w,obj.h
)

```

### ●dbg2

```
dbg2=string.format(
"obj.screen\_w = %.2f\nobj.screen\_h = %.2f\nobj.framerate = %.2f\nobj.frame = %.2f\nobj.time = %.2f\nobj.totalframe = %.2f\nobj.totaltime = %.2f\nobj.layer = %.2f",
obj.screen\_w,obj.screen\_h,
obj.framerate,obj.frame,obj.time,
obj.totalframe,obj.totaltime,
obj.layer
)

```

## GH円軌道配置.anm

オブジェクトを円軌道に配置します。オブジェクトの「\*軸回転」で自転を制御し、「回転」で公転を制御します。

* 軸
	+ 円軌道の軸を指定します。
		- 0・・・X軸
		- 1・・・Y軸
		- 2・・・Z軸
* 向き
	+ 配置時のオブジェクトの向きを指定します。
		- 0： 面の向きを指定しません
		- 1： 面は多角形の外側を向きます
		- 2： 面は多角形の内側を向きます
* 半径
	+ 円の半径をピクセル数で指定します。
* 回転
	+ 円軌道上の回転を角度で指定します。

## GH各種調整用.anm

ox,oy,oz,rx,ry,rz,zoom,alphaを調整するために作ったものです。

* TAで始まるものはobj.indexを考慮して値をずらします。
* 他のアニメーションを適用した後でこれらを適用して調整したりすると微妙に面白いかもなーみたいな。

### 多角形配置-1(定義のみ)

* 繰り返し
	+ 多角形描画の繰り返し回数を指定します。
* 隙間
	+ 多角形描画を繰り返す際の、多角形同士の隙間の大きさをピクセル数で指定します。
* 捻り
	+ 多角形描画の繰り返しごとの回転変化量を指定します。
* 向き
	+ 多角形を構成する面の向きを指定します。
		- 0： 面の向きを指定しません
		- 1： 面は多角形の外側を向きます
		- 2： 面は多角形の内側を向きます
	+ 刻み単位がないのは配布時の仕様です。

### 多角形配置-2(描画)

* Ｎ角形
	+ 多角形の面の数を指定します。
	+ 刻み単位がないのは配布時の仕様です。
* 表示個数
	+ 多角形の面のうちいくつを表示するかを指定します。
* 半径調整
	+ 多角形の外接円の半径をピクセル数で調整します。
* 回転
	+ 多角形を回転させます。
* 縦方向に並べる
	+ チェックが入っている場合は、オブジェクトの高さを基にして縦につなげた多角形を構成します。
	+ デフォルトではチェックは入っておらず、オブジェクトの幅を基にして横につなげた多角形が構成されます。

## GH螺旋配置.anm

#### 螺旋-1(定義のみ)

* 軸
	+ 螺旋の中心軸を指定します。
		- 0： X軸
		- 1： Y軸
		- 2： Z軸
* 向き
	+ 螺旋を構成するオブジェクトの向きを指定します。
		- 0： 面の向きを指定しません
		- 1： 表面を円の外側に向ける（軸がZの場合は上側を円の外側に向ける）
		- 2： 表側を円の内側に向ける（軸がZの場合は上側を円の内側に向ける）
* 初期半径
	+ 螺旋の初期半径をピクセル数で指定します。
* 半径差分
	+ オブジェクト１つごとに半径の変化量をピクセル数で指定します。
* zoom（「設定」欄で指定）
	+ オブジェクト１つごとの拡大率の変化量をパーセントで指定します。
	+ マイナス値を指定すると徐々に小さくなります。
* alpha（「設定」欄で指定）
	+ オブジェクト１つごとの透明度の変化量をパーセントで指定します。
	+ マイナス値を指定すると徐々に透明になります。

#### 螺旋-2(描画)

* 個数
	+ オブジェクトをいくつ描画するかを指定します。
* 回転差分
	+ オブジェクト１つごとの回転の変化量を指定します。
* 座標差分
	+ オブジェクト１つごとの「軸向きの座標値の変化量」をピクセル数で指定します。
* 回転
	+ 螺旋を回転させます。
* 回転に同期して軸方向に移動
	+ チェックを入れると、回転を変化させるだけで、それにあわせて軸方向に自動的に移動します。
	+ ドリル的な動きという感じ。

### ●TA個別螺旋

テキストオブジェクトの各文字を螺旋状に配置します。テキストオブジェクトで「文字毎に個別オブジェクト」にチェックを入れて使うことを前提としています。

## GH球状配置2.anm

オブジェクトを球状に配置します。

* 従来の「GH球状配置」では、オブジェクトを球面法線方向に向けることができませんでしたが、AviUtl作者のKENくん氏が、AviUtl愛好会コミュ掲示板の>>241に、「球面の法線に向けて並べるスクリプト」を投稿して下さったので、それを取り入れて機能拡張しました。
	+ 投稿ありがとうございます。
* 従来の「GH球状配置」とは違い、左に90度回転させた状態で球を形作ります。
	+ 直立させたい場合はグループ制御のZ回転を使って下さい。
* また、「GH球状配置」の時にくらべ、配置座標やリサイズ、両極の扱いなどを少し変更しています。

### GH球状配置2-1(定義のみ)

* 極スケール
	+ 赤道上のオブジェクトのサイズを100%と考えた場合の両極のオブジェクトのスケールをパーセントで表す。
	+ 極と赤道の間のオブジェクトは、「極スケールの値～100%」の間で段階的にリサイズされる。
	+ オブジェクトを同じ大きさで並べると極に近いほどオブジェクトが密集するので、それなら極に近いほどリサイズで小さくして密度を緩和してみるか～というのが目的。
* Xスケール・Yスケール・Zスケール
	+ 配置座標値のスケーリングを行ないます。オブジェクトのサイズや角度には影響しません。
* 両極のオブジェクトも描く
	+ 両極（北極と南極）のオブジェクトも描画するようにします。
	+ GH球状配置2では、両極のオブジェクトも「向き」や「自転」の影響を受けるようになりました。
	+ 両極は描かないほうが自然な場合も多いので、デフォルトではOFFにしています。

### GH球状配置2-2(描画)

* 経線頂点
	+ 経線上のオブジェクトの数。（両極のオブジェクトは含めません。）
* 緯線頂点
	+ 緯線上のオブジェクトの数。
* 半径
	+ 球の半径。
* 自転
	+ 両極を結ぶ軸での回転です。
	+ GH球状配置2では、両極のオブジェクトも自転の影響を受けるようになりました。
* dir（オブジェクトの向き）
	+ 配置するオブジェクトの向きを指定します。
	+ GH球状配置2では、両極のオブジェクトも向きの影響を受けるようになりました。
		- -1：指定無し（カメラ制御の「カメラのほうを向く」を使う場合はこれを指定して下さい）
		- 0：正面を向く
		- 1：軸の外側を向く
		- 2：軸の内側を向く
		- 3：球の外側を向く
		- 4：球の内側を向く

## 「古いもの」フォルダについて

以前のリリースに含めていた「@GH球状配置.anm」を同梱してあります。これを使って作ったプロジェクトも開けるようにするための措置です。必要な方だけ入れるようにしてください。

* 基本的には新しい「GH球状配置2」のほうを使って下さい。

### GH球状配置.anm

* 「GH球状配置-1(定義のみ)」
* 「GH球状配置-2(描画)」

* オブジェクトを球状に配置します。
	+ GH球状配置2とは違い、直立した形で球を形作りますが、オブジェクトを球面の法線に向けることはできません。
	+ 使い方は、GH球状配置2とほぼ同じです。

## 同梱のaupファイルについて

AviUtlのサンプルプロジェクトですが、他の方の環境で開けるのかはよくわかりません。(というより、ここまで古いと開けないでしょうね-Lac談)

## 参考サイト

* AviUtlのお部屋（AviUtl、拡張編集プラグイン）
	+ http://spring-fragrance.mints.ne.jp/aviutl/

* ニコニコ動画「AviUtl愛好会」コミュニティ
	+ http://com.nicovideo.jp/community/co556462

* ニコニコ動画のさつきさんのユーザ記事
	+ http://dic.nicovideo.jp/u/2787743

* 2chYoutube板　AviUtl拡張編集Pluginスレッド Part3
	+ http://hibari.2ch.net/test/read.cgi/streaming/1292504116/l50

## 実演集

ニコニコ動画で「GH\_AnimSet」でタグ検索すれば見つかるやも。ただし必ず最新版の解説動画があるかどうかはわかりません。