目的
AviUtlのアニメーション効果で、ダイアログから自由に関数をstring型で記入し、その関数とトラックバーの変数を用いてオブジェクトの座標を制御する。
方法
loadstring
関数を使用します(リファレンス)。
例えば、
function = loadstring("a = 1 + 1")
function()
debug_print(tostring(a))
と記述すると、func()
が呼ばれたときにa = 1 + 1
が実行され、
2
と表示されます。
サンプル
トラックバーの値を変化させると、ダイアログに記載した関数をもとに座標が変化します。
@自作関数.anm
@自作関数
--track0:X,-1000,1000,0,0.01
--dialog:f(X),fx="x";
x = obj.track0
func = loadstring("y = "..fx)
func()
-- オブジェクトの座標を設定
obj.ox = obj.ox + x
obj.oy = obj.oy + y