【Aviutl】ごちゃまぜドロップスの自作Luaスクリプト(デバッグプリント)

Aviutl

こんばんわ魔界塔士です

皆さんはAviutl使ってますか?私はバリバリ使ってます

(使いこなせているかは分からないですけどね)

ところでAviutlの一番の弱点って何だと思いますか?私は音楽トラックにスクリプト的な処理が出来ない所だと思ってます。WAVファイルを決まったルールで処理したいのですよ。私は

という事でプラグインを探して見ると、ごちゃまぜドロップスと言うプラグインで自作Luaスクリプトが使えるそうなので勉強してみました。

しかし、付属の説明書を読んでもイマイチ良く分らない。私はトライ&エラーの実践派なので興味のある方は一緒に実践してみましょう。

スクリプトのひながた

基本的なスクリプトの構成です

ごちゃまぜドロップをインストールしているとして話を進めますが

その場合、プラグイン関連のフォルダにgeneric.luaと言うファイルが有ると思いますので、それを開いてみてください。開くと下の感じです。

ついでに、 generic.lua を一つコピーして test.luaとでもしておいてください。

local P = {}

P.name = "標準ハンドラー"

-- 特別な処理を行うスクリプトが見つからなければ
-- 最終的にこのスクリプトがそのままファイルをドロップする
P.priority = -100000

function P.ondragenter(files, state)
  -- TODO: exedit.ini の設定内容を考慮して動くようにする?
  return true
end

function P.ondragover(files, state)
  return true
end

function P.ondragleave()
end

function P.ondrop(files, state)
  return files, state
end

return P

P.nameはスクリプトの名前ですね。テストハンドラーとか好きにします。P.priorityは1でも2でもとりあえずは適当で良いでしょう。

とりあえず理解しておけば良いのは、P.ondragenterとP.ondropの処理です

前者は、拡張編集欄に、アイテムをドラッグした時に1回実行される処理です

後者は、最終的に拡張編集欄へアイテムを追加する際の処理です

デバッグしてみる

とにかく細かい事はさておきやってみることが重要だと私は思います

まずはデバッグで文字列を出してみたいと思います

取説に書いてあるようにデバッグにはマイクロソフトのDebugViewと言うのを使うそうです。ダウンロードしておきましょう。実行すると下の様なソフトが立ち上がってきます。

DebugView for Windows

そしてtest.luaを以下のように作成します

local P = {}

P.name = "テストハンドラー"

P.priority = 2

function P.ondragenter(files, state)
  debug_print("ここを通過したよ")
  return true
end

function P.ondragover(files, state)
  return true
end

function P.ondragleave()
end

function P.ondrop(files, state)
  return files, state
end

return P

P.ondragenter内に、debug_print(“ここを通過したよ”)と言う処理を追加しました。

debug_print が文字を出力する命令です。これで拡張編集欄にドラッグしてみると、”ここを通過したよ”と出力されるはずです。

と言うか画像の様に出力されます。(もし反応が無いようであればAviutlを再起動してみてください)

ここまで出来れば勘の良い方ならどんどんスクリプトを作っていけると思います。

私は感が悪いのでこれだけでもたどり着くのに1日くらい掛かりましたけどね。

今回はここまでとして、次はP.ondropを詳しく見ていきたいと思います。

では

コメント

タイトルとURLをコピーしました