はじめに
OBS向けに自動更新機能付きスクショツールを公開します。
このスクリプトを入れて、ホットキーその他を設定すると、キャプチャーボードや特定のウィンドウのスクリーンショットを撮ったあと、 それを指定した画像ソースに自動的に表示させる事ができます。 例えば、これとフィルターの「クロップ/パッド」を組み合わせると、対戦相手の情報をボタン一押しで配信画面に保持させることができます。
ダウンロードリンク
Windows10でしか動作を確認してないけど、それ以外やMac、Linuxでも動く、はず。
導入と設定
- ダウンロードしたファイルを、どこか適当なところへ移す。
- ドキュメントに「OBS Script」みたいなフォルダを作ってそこに入れるといいかも
- パスに日本語が入るとうまく行かないので、ユーザー名が日本語な人とかはCドライブ直下になんかしら作って入れるとなんとかなる
- 上のバーの「ツール」から「スクリプト」を開いて、「+」マークを押す。
- 出てきた画面からSnapParty.luaを選択する。
- 以下の設定を埋める
- Capture Sourceにキャプチャーボードやゲームウィンドウなど、スクショしたいやつを設定する。
- Image Sourceに撮ったスクショを表示させたい画像ソースを設定する
- Folder Pathにスクリーンショットが保存される場所を指定する。「設定」→「出力」→「録画」→「録画ファイルのパス」と同じ。
- Record File Formatは特にいじらなくていいと思う。詳細は後述。
- ホットキーを設定する。設定→ホットキーからSnap Partyという項目にホットキーを設定する。適用を押し忘れないように。
これでできると思います。
Record File Formatについて
後日執筆予定。OBSの設定を大していじってないならこっちもいじらんといて。
Q&A
- 設定したら落ちる!
- 設定が間違ってると思います。特にフォーマットのところが怪しいです。
- 時々うまく更新されない!
- 実装の都合上1000回に1回くらい失敗します。その時はもう一回押せば行けるはず。
- 更新が遅い!ホットキーを押したあと数秒間固まる!
- ちょっと遅いのはOBSの仕様です。多分HDDなのが悪いと思います。
おわりに
愚痴。Lua、標準でできることがCみたいなところあって、ライブラリとかない状態だと例えば「特定のディレクトリの最新ファイルを探す」みたいな単純に思えることがものっそい面倒だったりする。 普通はluafilesystemを入れて解決するみたいだけど、OBS-studioには同梱されてない。 なので、このツールでは仕方なくスクリーンショットを撮った直後の日時がスクリーンショットの命名に用いられた日時と同じであろうという、ガバガバな前提な下に実装されている。 lfs.dllを作り上げて入れるという方法もあるのだが、obsに同梱されているlua.dllが爆誕した環境と同じ環境を揃えてあげなければいけないという、まあくっそめんどいしこれでいいかなぁ。 きれいな解決法があったら解決するかもしれん。以上早口。
OBSをLuaでどうこうすることについて解説の需要とか、OBSの設定とか、ほしいプラグインとか面白そうなやつはこのブログでやっていきたい。
ポケモン実況者たちみんな大好き。もっと流行ってくれ。