Lua言語:Expressionの記述式【DaVinci Resovle Fusion】
こんにちはフォグです。
今回はDaVinci ResolveのFusion Templateやマクロに必要な
Expression指定したときに記述できる計算式の書式
つまりLua言語
の簡単なリファレンスを備忘録として公開します。
自作マクロを作る人には絶対に役立つ内容になると思います😎
今後もマクロを作成する上で覚えた内容追加していきます。また情報量に応じて金額も上げていく予定です。
扱える値
整数:小数点を持たない値のことです。1,10,30,-30などといった値です。
実数:小数点以下の値を持つ値のことです。1.1 , -20.21 ,などといった値です。
文字列:"ABC","aee"といった値のことです。"\n"は改行文字を表します。
ブーリアン値:真偽(true/false)の2値を持つ値のことです。
他にもありますが、とりあえず上記だけ覚えてください
演算
足し算、引き算、掛け算、割り算は下記のように記述します。
1+2 ==> 3
3-2 ==> 1
2*3 ==> 6
1.1/2 ==> 0.55
計算の優先順
掛け算・割り算が、足し算・引き算より先に計算されます。
例えば
2-3*2
は、3*2が先に計算され結果は-4となります。
カッコを付けると、カッコ内を先に計算します。
(2-3)*2
カッコ内を先に計算され-2となります。
%は割り算したときの余りを求める演算子。^はべき乗計算になります。
3%2 ==> 1
2^4 ==> 16
文字列操作
文字の値や文字型変数に対する文字操作
文字列の長さ
string.len("abcedefg") ==> 7
("abcdefg"):len() ==> 7
文字変数の文字の長さを得る場合は、
変数名:len() で抽出できます。
文字列の一部を抽出
string.sub("abcdefg", 2 ,4)
("abcdefg"):sub(2,4)
"abcdefg"の2文字目から4文字目を返します。結果として"bcd"が返されます。
文字列の検索
string.find("abcdefg","fg") ==> 6
見つかった位置を取得できます。見つからない場合はnilが返されます。
文字列の大文字、小文字化
string.upper("abcdefg") ==> ABCDEFG
string.lower("ABCDEFG") ==> abcdefg
数値などをフォーマットして文字列にする
string.format("%d %.2f",1,2) ==> "1 2.00"
条件文
iifで条件文を1行で記載できます。ifではなくiifですのでご注意を。
iif(a==1,100,200)
上記はaの値が1だったら100を返し、そうでは無かったら200を返します。
比較演算子は下記があります。
a == b 等しい
a > b 大なり
a < b 小なり
a >= b 大なりイコール
a <= b 小なりイコール
a ~= b 等しくない
andやorで複数条件も記述できます。
iif(a==2 or a==4, 100, 200)
aが2もしくは4のときは100、それ以外は200を返します。
コメント記述方法
-- コメント
--[[
複数行コメント
]]
数学関数
小数点以下切り捨て
floor(x)
小数点以下切り上げ
ceil(x)
三角関数
sin(x)/cos(x)/tan(x)/asin(x)/acos(a)/atan(x)/atan2(y,x)
平方根
sqrt(x)
べき乗
pow(a,b)
a^bの計算。pow(2,4)=>16
πの値
pi
絶対値
abs(x)
角度変換(ラジアン角度からの変換)
pi(x)
割り算余り算出
fmod(a,b)
a/bで整数で割り切れたときの余り。fmod(10,3)=>1.0
最小最大値取得
min(a,b,c,d…)
max(a,b,c,d…)
複数行スクリプトの1行化
ここから先は
¥ 100
最後まで読んでいただきありがとうございました。サポートで頂いたお金は活動資金として活用させていただきますね。