Visual StudioによるOBSのプラグイン開発手順

はじめに

Visual StuioでOBSのプラグインを開発する準備について説明します。 詳細な手順がネットで見つからなかったので、独自に手順を検討しました。 デバッガで効率的にプラグインデバッグできるようにします。

手順

OBS Studioをビルドする。(以下、ビルドディレクトリは C:\projects\obs-build として説明)

OBS Studioのビルド手順の詳細についてはこちらを参照。

fixme.hatenadiary.org

プラグインのテンプレートをローカルにcloneする。

github.com

注:詳細はまだ研究できていないが、github上で動くCIがこのテンプレートで実装されており、マルチプラットフォーム開発に便利なテンプレートになっている。

プラグインディレクトリでCMakeを実行する。

$ cd [PLUGIN DIR]
$ cmake -S . -B build -Dlibobs_DIR="/c/projects/obs-build/libobs" -Dw32-pthreads_DIR="/c/projects/obs-build/deps/w32-pthreads"

生成された [PLUGIN DIR]/build/obs-plugintemplate.sln をVisual Stuioで開く。

obs-plugintemplate プロジェクト > Properties > Configuration Properties > Debugging にて

  • Commandに C:\projects\obs-build\rundir\Debug\bin\64bit\obs64.exe
  • Working DirectoryにC:\projects\obs-build\rundir\Debug\bin\64bit

を設定する。

また obs-plugintemplate プロジェクト > Properties > Configuration Properties > Build Events > Post-Build Event にて

  • Command Lineに copy C:\projects\<PLUGIN DIR>\build\rundir\Debug\obs-plugins\64bit\* C:\projects\obs-build\rundir\Debug\obs-plugins\64bit

を既存のコマンドの最後に追記し、OBS本体にデプロイされるようにする。

注: ここまで説明したように、手動でプロジェクトに設定変更を加える方法では、CMakeでプロジェクトを生成し直す度に再設定が必要になる。 CMakeのスクリプトに以下のような修正を加えておくことで、手動での設定が不要になる。

github.com

注:別の方法として、プロセスにアタッチする方法もあるが、この方法の欠点は bool obs_module_load(void) の実行段階のデバッグができないこと。OBSにアタッチするタイミングではすでにプラグインのロードが完了してしまっているため。

プロジェクトの設定

obs-plugintemplate プロジェクトをビルドする。

Visual Studioにてソースコードにブレイクポイントを設定する。

Visual StudioにてLocal Windows Debugger を実行する。

するとOBSが起動し、ブレイクポイントで実行が停止する。

ブレイクポイントで停止した様子