AviUtl2スクリプト開発所感
曲げKR などいくつかのスクリプトをAviUtl2用に移植してみての所感 このご時世UTF-8で書けるのはとても嬉しい
トラックバーやチェックボックスの数に上限が無くなっているようでとてもよい
ドロップダウンがrikky_moduleなしで作れてよい
aup2には選択肢の値ではなく選択肢名のほうで保存されている
aup2に保存されていた選択肢名がスクリプトから消えるとデフォルト値になるようなので、スクリプト更新時に選択肢名を変更するのは要注意
Lua Language Server用の定義ファイルを使いまわせるかは未確認 --track@変数名:項目名,... で出来る変数への対応はどうする?
@スクリプト名 でエラーが出る件は一旦分割状態で書いてからPythonで結合するようにしてみた (build.py)
シェーダー系とか追加された関数がありますね
.luaは普通に require() できた
--informationでスクリプトの情報を設定できるので、公開・頒布する場合は積極的に利用するといいかも
--labelで分類を指定できるのは便利
標準でコンソールがあるのも助かる
長い行とかは折り返してくれないので見切れてしまう
横スクロールもコピーもできない
シェーダー系
ピクセルの操作がDLLなしでも出来るようになったのは強い
スクリプトから値を渡すときはメモリレイアウトに注意
obj.pixelshader()は非同期でやっているみたい (確認してないが多分 obj.computeshader()も)
なので以下のようなことをすると、obj.pixelshader()が完了する前に elapsed_time の計算を行ってしまう
code:lua
local start_time = os.clock()
obj.pixelshader()
local elapsed_time = os.clock() - start_time
対策としては以下の様にGPU処理を待つ必要がある処理をはさむとよさそう
code:lua
local start_time = os.clock()
obj.pixelshader()
obj.getpixel(0, 0, "col")
local elapsed_time = os.clock() - start_time
obj.effect()でスクリプト (anm2) も使えた
個別の話
曲げKR
最初の設定 (--trackとか) を手直しした以外はそのままで動いた
obj.drawpoly() を多用しているので、obj.drawpoly({table}[,alpha])を使うように修正すればパフォーマンス向上が見込めるかも?
色覚シミュレーションKR
パフォーマンスの為にDLLを使っていたのを、ピクセルシェーダー (HLSL) を使ってスクリプトファイル1個で完結できたのはよい