y=f(x)の関数を指定して、移動方法を指定できます。
使い方
関数の作成
まずは、カスタムオブジェクトからMathTrackをタイムライン上に用意します。

トラックバーの軌道番号を任意の値に設定してください。すると、このようなグラフが画面に表示されます。

設定ダイアログを開くと、以下の設定項目が表示されます。

設定ダイアログのコード[y=]から関数をLua構文で指定すると、y=f(x)の関数をグラフ上に描画します。X上限、X下限、Y上限、Y下限からグラフの範囲を指定することができます。ただし、Y範囲を自動決定にチェックすると、Y上限とY下限は自動的に計算されます。
例えば、math.sin(x)と指定すると、以下のようなグラフが表示されます(X下限:0、X上限:2*math.pi)。

移動方法の指定
移動方法をMathTrackにしてください。

設定 [0]をクリックし、移動フレーム間隔をカスタムオブジェクトで指定した軌道番号にすると、グラフで指定した移動方法を行います。
この値はグローバル変数上に記録されているため、AviUtlを再起動などすると、数値はリセットされます。
再度グラフを画面上に表示し、Luaスクリプトを読み込ませると、移動方法が反映されるようになります。
グラフの保存
グラフのデータはluaファイルとして保存することができます。このデータは、MathTrack.objと同じ階層にあるMathTrackフォルダ内に、trackXX.luaとして保存されます。
カスタムオブジェクトのトラックバーR/Wを設定することで、グラフをデータに保存したり、データから読み込んだりすることができます。
データの読み書きの成否は、グラフ上に赤い文字で表示されます。なにかしらの理由で失敗したときは、「Failed」と表示されます。
・1:グラフをデータに保存
・-1:グラフをデータから読み込み

設定ダイアログ上で上書き保存にチェックしていると、既にグラフのデータが存在していても、それを上書きして保存します。

グラフのデータは以下のようなluaスクリプトとなっており、自身で新たなコードを記述することで、複雑なグラフを描画することも可能です。
1 2 3 4 5 6 7 8 | return { func="x", maxX=100, minX=0, maxY=100, minY=0, autoY=1 } |
設定項目
| 場所 | 内部変数 | 名前 | 値 | 概要 |
| トラックバー | obj.track0 | サイズ | 数値 | グラフの表示サイズを指定します。 |
| obj.track1 | – | – | ||
| obj.track2 | R/W | 数値 | 1:グラフのデータをtrackXX.luaに保存する。-1:trackXX.luaからグラフのデータを読み込む。 | |
| obj.track3 | 軌道番号 | 数値 | 移動方法を指定する際に使用するグラフの番号。 | |
| パラメータ設定 | modeOverwrite | 上書き保存 | 数値(chk) | オンにすると、既にtrackXX.luaが存在していても、上書きしてデータを保存する。 |
| fx | コード[y=] | 文字列 | グラフの関数をy=f(x)の形式でLua構文として記述します。 | |
| _maxX | X上限 | 数値 | グラフを表示する際の表示範囲を指定します。 | |
| _minX | X下限 | 数値 | ||
| _maxY | Y上限 | 数値 | ||
| _minY | Y下限 | 数値 | ||
| modeAutoYRange | Y範囲を自動決定 | 数値(chk) | オンにすると、Y上限・Y下限をグラフの数値から自動で決定します。 | |
| ShowAssistLine | 補助線 | 数値(chk) | オンにすると、グラフの点の補助線を表示します。 | |
| ShowPosition | 座標表示 | 数値(chk) | オンにすると、グラフの点の座標を表示します。 | |
| modePosition | 座標表示方法[0-2] | 数値 | 座標の表示方法を数値で指定します。 |
ダウンロード
rikky_moduleが必要です