Visual StudioによるOBSのプラグイン開発手順
はじめに
Visual StuioでOBSのプラグインを開発する準備について説明します。 詳細な手順がネットで見つからなかったので、独自に手順を検討しました。 デバッガで効率的にプラグインをデバッグできるようにします。
手順
OBS Studioをビルドする。(以下、ビルドディレクトリは C:\projects\obs-build
として説明)
OBS Studioのビルド手順の詳細についてはこちらを参照。
プラグインのテンプレートをローカルにcloneする。
注:詳細はまだ研究できていないが、github上で動くCIがこのテンプレートで実装されており、マルチプラットフォーム開発に便利なテンプレートになっている。
$ 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のスクリプトに以下のような修正を加えておくことで、手動での設定が不要になる。
注:別の方法として、プロセスにアタッチする方法もあるが、この方法の欠点は bool obs_module_load(void)
の実行段階のデバッグができないこと。OBSにアタッチするタイミングではすでにプラグインのロードが完了してしまっているため。
obs-plugintemplate
プロジェクトをビルドする。
Visual Studioにてソースコードにブレイクポイントを設定する。
Visual StudioにてLocal Windows Debugger を実行する。
するとOBSが起動し、ブレイクポイントで実行が停止する。