OBS-Luaを触ってみる
scrapboxの更新は久しぶり。
XIオフ会ことcoop交流会を行った際に配信まわりを色々整備したかったものの、準備時間があまりとれず実装を断念したものが多々あります。そのうちの一つがOBS-Luaを用いたスクリプトによるテキスト制御。
Lua自体はAviutlで散々触ってきたので、OBSでもLuaが使えることを知った時は「もしかして無双できる...?!」なんて考えてました。が、実際はOBS APIの理解だけで時間が吸い取られる始末。
今回はそんなOBS APIについてのメモ書きです。
OBSにはデフォルトで下記の場所にサンプルスクリプトが用意されています。
[obs-studio(obsのインストールファイル)]>[data]>[obs-plugins]>[frontend-tools]>[scripts]
私はこのサンプルスクリプトとOBS公式のAPIリファレンスを参考にOBS-Luaの理解を深めることにしました。...がやはり英語とにらめっこするのはちょっと疲れました() どうせしばらく触って無ければまた忘れてしまうので自分用のメモとしてここに置きます。
なおあくまでメモなので途中で放棄する可能性高いです。というか絶対放棄します
基本構成
code:lua
obs = obslua --最初の宣言のようなもの
--[[
自分のスクリプトはここら辺に記述する。
]]
function script_properties()
local pr = obs.obs_properties_create()
--[[
OBSのスクリプト一覧に出てくるものたち。
]]
return pr
end
function script_discription()
return "ここの文字列がスクリプトの説明として表示される。他の変数に文章を格納することも可能。HTMLが使える。\nで改行(windows環境)" end
function script_update(settings)
--[[
引数のsettingsは"そういうも"なのでこちらが特に設定する必要はない。
script_discriptionで設定した変数を反映させるためのもの。
]]
end
function script_defaults(settings)
--[[
script_propertiesに入れるデフォルト値。
]]
end
function script_properties()で使うもの
local pr= obs.obs_properties_create():変数名はprでなくても可。本質はobs.obs_properties_create()の方。
この後この変数を多用するので基本的に一番最初に入れておきます。
obs.obs_properties_add_int(A,B,C,D,E,F):プロパティ欄に整数の入力ダイアログを追加。
table:int引数
位置 内容
A 「obs.obs_properties_create()」先述の変数「pr」でも可
B function名。「"hogehoge"」のように記述。
C 表示文字列。「"hogehogeの説明"」のように記述。
D 最小値
E 最大値
F ボタンクリックで増減する量
obs.obs_properties_add_text(A,B,C,D,E)
obs.obs_properties_add_button(A,B,C,D)
obs.obs_properties_add_list(A,B,C,D,E)