Last updated on

WoLNamesBlakedOutリリースに関するよしなしごと


WoLNamesBlakedOutをリリースして1週間くらい経ちました!

Windows版をMicrosoftストアでリリースして約1週間経ちました。

アプリ自体は、残念ながらそんなに反響があるわけではないのですが、アプリリリースに関連することでいくつかトピックスや反響を頂きました。

ここではそれらに触れていきたいと思います。

作り直した話をQiitaに投稿したら100いいねをもらった!

プログラミングなどに関して、引っかかったことやノウハウ、失敗などがあれば、Qiitaに投稿するようにしています。まだ未確定だったり予想部分が多いような内容ではこちらのブログに書くのですが、事象や対策などがはっきりしている内容をQiitaに投稿するようにしています。

こちらにもあれこれと考えていることや取り組み状況を書いてきましたが、リリースという一区切りでしたので、全体を振り返りの記事をQiitaに投稿しました。

いつもは1とか2とか一桁いいねなのですが、なんと投稿した記事は100もいいねを頂きました!

いつもと同じように書いたつもりでしたが、一体なにが良かったのか?
今後もいいねが欲しいので、今回の記事の何がよかったのか振り返ってみたいと思います。

PythonからC++、C#で作り直す、という内容がキャッチーだった

最初からC++で実装することを決めていることはあると思いますが、一度Pythonで作成し、改めてC++、C#で作り直した、という事例は少なかったのかもしれません。
私の他にもPythonで作ったアプリを作り直した方がいいのかな?と思っている人が興味を持ってくれた、ともいえるのかもしれません。
私のアプリ作り変えを通じて、メリット、リスクを検討できたのであれば、それはそれで価値があった、ということかもしれませんね。

生成AIによるコード生成に共感を得られた

C#、C++は全く初めてだったので新たにコーディングが必要な内容はCopilotなど生成AIによるコード生成に頼っていました。投稿した記事では簡単なコードは難なく生成してくれましたが、ffmpegのthread対応では難しく実現できなかったことについて触れました。このことに実感、共感を得られたのではないか、とも考えています。

C++でのONNXやTensorRTで実際に動作するコードをリンクで紹介した

他の方の記事ですが、実際に稼働するONNX、TensorRTのコードを記事内で紹介しています。
実際に動くコードを探すのは結構大変なので、その点で参考になった、という面もあるのかもしれません。

アプリリリースまで時間があったので、投稿予定の記事を見直す機会が多かった

いつもはその時の雰囲気で一気に書いて投稿してしまうことが多いのですが、Microsoftストアでのリリースで手間取ったこともあって下書き状態が長く、見直す時間が多かったのもの一因かもしれません。
あまり文章を書くことは得意ではないのですが、見直しをすることで多少洗練されたという面もあるのかもしれませんね。

あまり今後の記事投稿に役立ちそうなのはないかな?
しっかり読み直して推敲する、は今後もできるかな?

窓の杜にリリースを紹介してもらえた!

アプリのリリース情報を窓の杜で紹介してもらえました!

実は以前のPythonで作成しリリースした際にも、窓の杜に売り込みを行っていました。今回も同様に売り込みを行ってみたいのですが、結果、窓の杜のダイジェストニュースにて紹介頂けました。
今回はMicrosoftストアでアプリに署名があり、野良アプリでないことが良かったのではないか?と想像しています。

利用者も多そうなサイトで紹介してもらえたことは、ちょっと自信につながりますね!

今後のアプリの取り組みについて

まだ”やる!”と決めたものではなく、できたらいいなレベルのものも多いですが、思いついたものを記載しておきます。

  • ffmpegライブラリかcreateprocessを利用しつつスレッド化して、コンソール表示なしに。 1.0.15.0で対応済み
  • 動画作成時の停止ボタンの実装
  • copyrightの位置やサイズ、フォントなどのエディット機能
  • プレビューの拡大や縮小
  • inpaintの処理を検出したBBOXで消すのではなく、文字だけ消すようにできないか
  • 音声処理時をプログレスバー表示にする
  • チェックボックスなどの前回の最後の設定を保存
  • 動画処理中に、たまにプレビューで画像が表示される
  • 入力テンソルを現在の正方形から4:3の長方形にして処理速度を向上できないか 1.1.0.0で対応済み
  • 検出モデルの更新

これくらいかなー?
ffmpegのコンソール非表示は実現までかなり遠そうなので、期待しないでください。実現できたらいいなとは思ってます。(対応済み)
入力テンソルの形状変更は、実現できれば25~30%くらい処理速度が向上するかもしれない?と想像しています。ただあまりメジャーでも無いようで、実現できるかよくわからない感じです。
(対応済み)

何かアイデアや要望あれば、言ってもらえれば検討はするので、教えてください。

あと、OBS対応ですが、技術的にもライセンス的にも難しそうに思っています。
現在の処理速度を考えると、tensorrtでの対応でなんとか60FPSを狙えそうではありますが、OBSプラグインのテンプレートがGPLライセンスとなっています。
GPLライセンスは、全てのコードをオープンにすることを強要するライセンスなのですが、tensorrtのNVIDIAは、NVIDIAのコードを公開しないことが利用条件になっています。
そのためOBSプラグインにはNVIDIAのライブラリを直接的に利用することはできません。

以下のプロジェクトでは、ONNX-DirectMLを利用することでOBSに物体検出を追加しているようです。
30fpsくらいまでなら、DirectMLでもなんとか狙える可能性もありそうですが、どうなんでしょうね?

そんなわけでOBSプラグインは、夢はありますが、実現は難しいかな?と思っています。
上記のプラグインを試してみるというのはアリかもしれませんね。