こんにちは、OBS Studio用プラグイン「Live Background Removal Lite」の開発者のumireonです。
2025年9月に開発を開始したこのプラグインですが、公開から約3ヶ月で累計1.5万ダウンロードを達成し、OBSフォーラムでも高い評価(4.7/5)をいただくことができました。
「既存のプラグインがあるのに、なぜ今さら?」と思われるかもしれません。しかし、後発だからこそ 「絶対にクラッシュしない」「ゲームの邪魔をしない」 という明確なコンセプトを掲げ、最新技術とAI(Gemini)をフル活用することで、既存の課題を一気に解決することを目指しました。
この記事では、個人開発者が短期間でここまでのプロダクトを作り上げるために採用した 「技術選定」「アーキテクチャ」「AIとの協働プロセス」 の全貌を共有します。
1. なぜ「車輪の再発明」をしたのか?
開発のきっかけは、既存の背景除去プラグインに対する不満でした。
- メンテナンスの停滞: 古いコードベースが放置され、最新環境で不安定。
- 頻繁なクラッシュ: 配信者にとって「放送事故」は致命的ですが、既存プラグインはメモリ管理が甘く、OBSごと落ちることがありました。
- GPUの占有: AI処理にGPUを使いすぎるため、肝心のゲームや配信自体のフレームレート(FPS)が落ちてしまう「本末転倒」な状況でした。
そこで私は、以下の3つの鉄の掟を自分に課して、ゼロから作り直す(Rewrite)ことを決意しました。
- Zero-Crash(ゼロクラッシュ): 機能よりも安定性を最優先する。
- Gaming-First(ゲーミング・ファースト): GPUはゲームのために空け、AIはCPUで回す。
- Plug & Play: 設定不要で、入れた瞬間から使えるUXにする。
2. 技術スタック:あえて「ncnn」を選んだ理由
ONNX Runtimeではなくncnnへ
当初はデファクトスタンダードであるONNX Runtimeの使用を検討しましたが、ライセンスやバイナリサイズの観点から見送りました。代わりに採用したのが、Tencentが開発したncnnです。
ncnnはモバイル・組み込み向けに最適化されており、依存関係が極めて少なく軽量です。これが「インストールの手軽さ」に直結しました。
「Gaming-First」アーキテクチャ
多くのAIプラグインがGPU(CUDA等)を使いたがる中、本プラグインはAI推論を意図的にCPU(SIMD命令)で行っています。
- AI推論 (CPU): ncnnのint8量子化モデルを使用し、CPU負荷を抑えつつ高速にマスクを生成。
- ポストプロセス (GPU): マスクの境界を綺麗にする処理や合成のみをシェーダーで実行。
これにより、 「重いAI処理はCPU」「軽い描画処理はGPU」 という役割分担が完成し、ゲーマーが最も気にするGPUリソースを保護することに成功しました。
3. 開発の壁とAI(Gemini)の活用
ncnnは高性能ですが、ドキュメントが難解で、モデル変換(MediaPipeモデルの移植)は「茨の道」でした。ここで活躍したのが AIアシスタント(Gemini) です。
リポジトリ解析によるモデル変換
ncnnの変換ツールのソースコードやIssueをGeminiに読み込ませ、「このMediaPipeモデルをint8で動かすための最適な変換スクリプトは?」と問いかけることで、本来なら数週間かかる試行錯誤を数日で突破しました。
シェーダー開発の加速
CPUで生成したマスク(256x144)は解像度が低く、そのままでは輪郭がガタガタになります。これを補完するために 「2次元分離可能高速ガイデッドフィルター(2-D Separable Fast Guided Filter)」 をGPUシェーダーで実装しました。
私にはグラフィックスパイプラインの設計経験がありませんでしたが、AIにプロトタイプを大量に書かせ、それを微修正する反復プロセスを経ることで、柔軟な シェーダーグラフ(Shader Graph) のような構造を構築できました。
「AIがコードを書く」だけでなく、 「AIが未知の領域(シェーダーやモデル変換)の学習コストをショートカットしてくれる」 点が、開発速度を劇的に向上させました。
4. 「使われる」ためのUXへの執念
技術的に優れているだけでは、ユーザーには届きません。特に意識したのはインストール体験とローカリゼーションです。
インストール体験の改善
Windows版のインストールで「フォルダ配置を間違えて動かない」という問い合わせが多かったため、インストール先のショートカットや案内のテキストファイルをzipに含める工夫を行っています。
9言語への対応
「母国語で使える」安心感は絶大です。英語だけでなく、日本語、ドイツ語、スペイン語、フランス語、韓国語、中国語など9言語に対応しました。専門用語(閾値やフィルタ強度など)にも丁寧な説明を追加し、設定画面で迷わせない工夫を凝らしています。
5. コミュニティと品質保証:AVX2問題の教訓
リリース後、古いCPU(Xeon E5系など)を使っているユーザーから「起動直後にクラッシュする」という報告が入りました。原因は、ビルド設定でAVX2命令セットを必須にしていたことでした。
最新のGPU(RTX 4000番台など)を積んでいても、CPUが古ければ動かない。これは私の想定外でした。
報告を受けてすぐ、コンパイルオプションを見直し、レガシーCPUでも動作するバージョン(v3.7.0)を数時間以内にリリースしました。
このスピード感ある対応が信頼を生み、「他のプラグインより明らかに軽い」という口コミにつながりました。
6. まとめ:個人開発におけるAIの役割
この3ヶ月を振り返って確信したのは、 「AIはエンジニアの能力を拡張するが、代用はしない」 ということです。
- AIが得意なこと: 文献調査、ボイラープレートの生成、メモリリークの検知、シェーダーの試作。
- 人間がやるべきこと: 「Gaming-First」というコンセプトの定義、UXの設計、最終的な品質責任。
「ゼロクラッシュ」という高い目標を掲げ、モダンなC++で設計し、AIを相棒として使い倒す。このスタイルであれば、個人開発でも世界中のユーザーに使ってもらえるプロダクトが作れると実感しました。
もしOBSプラグイン開発や、ncnn / シェーダーの実装に興味がある方は、ぜひGitHubリポジトリも覗いてみてください。
公式サイト・ダウンロード:
