見出し画像

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行化


ここから先は

1,019字 / 2画像

¥ 100

最後まで読んでいただきありがとうございました。サポートで頂いたお金は活動資金として活用させていただきますね。