君がエッチなことをコメントすると配信画面に流れ星を降らせるアプリケーション を作成したって話
全体公開

7
皆さんこんにちは!活字中毒系Vtuberの言売初架です!
エイプリルフール(四月馬鹿)なのでアプリケーションを作成してみました。
簡単な演出一覧(ブログに添付されている動画)
スクリーン保存機能使ったら透過がうまく映りませんでしたが透過されています
また、こちらのアプリはセクハラを助長する目的で作成したものではないことをご了承ください。
あくまで元ネタありきのジョークアプリみたいなものです。
参考にしたサイト様や使用したツールなどをつらつら書き連ねていったりしようかと思います
アプリケーション名「君がエッチなことをコメントすると配信画面に流れ星を降らせるアプリケーション」(表記ゆれ多数)
元ネタ:吸血鬼すぐ死ぬ
「吸血鬼すぐ死ぬ」という漫画があります。最近アニメもやってました。二期も決定しています。
めでたいね!
とある一話、読者投稿の吸血鬼がたくさん登場する回があり
そこではじめて登場したキャラクター、そう「吸血鬼君がエッチなことを考えると流れ星を降らせるおじさん」です
(20巻までに入ってない話ですが「出たなコズミック害悪!」って言われてるの本当好き 何だよコズミック害悪って)
そして、それをもとにしたブラウザ拡張機能
「君がエッチなことを考えるとみんなのブラウザに流れ星が降るChome拡張」というものを作成した方がいます
君がエッチなことを考えるとみんなのブラウザに流れ星が降るChrome拡張
ブラウザに星が降るんなら配信画面に降ってもよくないですか?????
と思ったので作成しました「君がエッチなことをコメントすると配信画面に流れ星を降らせるアプリケーション」
実装方法
コメビュを作る気力はなかったので、プラグインを作成しました
利用するコメントビュアーは Ryu(@kv510k)様作成の「マルチコメントビュアー」(以下MCVと記載)です
オープンソースなので気になる方は中身を見てみるとよいかと思います!
すでに棒読みちゃんと連携するアプリケーションが組み込まれているので、こちらを参考にしたらコメントを取得することができそうです
プラグインの作成経験はないので、いろいろ調べていたら下記サイト様が見つかりました
C# VisualStudioCommunityでマルチコメントビューアのプラグインを作ってみる
ありがたいです。上記サイトとGitHubに公開されている棒読みちゃんのプラグインで、大体何がどれを送信しているか把握します
これでMCV上にプラグインダイアログを表示することができるようになりました
次の問題として立ちはだかるのは、演出とプラグインのつなぎ込み
今回、演出はUnityを用いて作成しました。餅は餅屋。
ところが、棒読みちゃんで利用しているC#のプロセス間通信のIPCクラスはUnityで利用できないのです。困っちゃった。
なのでどうにか通信できないか検索。
下記でUnityパッケージ及びにbllを配布している方がいらっしゃいました!
https://github.com/sh-akira/UnityNamedPipe
名前付きパイプを用いて通信を行う方法です。(詳しくは把握できてません)
今回MCVとやり取りしたいデータはテキストデータのみなため、既に定義されているコマンドのみで大丈夫そう。
無事つなぎ込みができるようになりました
さて、Unity側ですが
OBSでクロマキー定義をするのは面倒なので、アプリ側の背景を透明にしたいと思いました
使用させていただいたパッケージはこちら
https://github.com/kirurobo/uniwindowcontroller
こちらを導入することでウインドウを透明にすることができます
なお、私の作成したアプリでは終了機能については考えていないためEscで終了することになっています。
ヘッダーも透過されてしまうので、透過しないように設定を入れてもよいかもしれないですね。
こちら、クリックスルー機能をつけることができるためオブジェクトがないところをクリックしてもアプリケーションを選択できません
何かゲーム上に常に見えるようなオブジェクトを配置してあげることをお勧めします。
(タスクバーから選択してもいいけどね)
さて、以上をうまく組み込めていればUnity上でMCV上のコメントを受け取れるようになっていることでしょう
該当語句はCSVファイルに設定しています
ファイル読み込みがこの世界で3番目くらいに嫌いなので下記サイト様をめちゃくちゃ参考にしています
https://note.com/macgyverthink/n/n83943f3bad60
ここ見たら大体できます。
演出についてです
流れ星やハートの部分はそう難しくないです 物理でパーッとやればUnity経験者の方は私よりもっとうまく動かすことができるでしょう
桜の演出はパーティクルシステムを利用しています
桜・虹に関しては演出時に再度入力されてもはじくようになっています(1演出終了まで待機)
参考サイト
ハートの動き
桜パーティクルの動き
https://liylia.hatenablog.com/entry/2017/08/15/024432
虹に関しては、UnityPackageを利用しました
https://github.com/tsubaki/FadeCamera2
演出が増えてくるとメニューの管理が大変になります
というわけでアコーディオンメニューを導入しました
https://qiita.com/Butterfly-Dream/items/73e2cc2af26615865f43
現在まとめてOFF機能はないですが、もう少し演出を増やすのであればつけたいですね。
以上、簡単にはなりますが参考サイト様・使用UnityPackageなどの紹介でした。
上記サイトを参考にすれば皆様でもお好きなシステムが組み込めるはず!
現状、私が作成した「君がエッチなことをコメントすると配信画面に流れ星を降らせるアプリケーション」は配布は予定してません
(中身がくそコード、かつCSVを外部置きにしていないためUnity上以外からの拡張性がなさすぎるため)
すでに似たようなシステムを作ってる方はいらっしゃるみたいですし!(公開するまでマジで知らなかった)
https://twitter.com/reciru/status/1496405331634577411?s=20&t=-0S_K50s4v1LxV49Ek0L8A
ま、アプリなんて何回煎じてもいいものなので
プラグインの勉強など、とても良い機会になりました
もし、万が一に言売が作成した奴使いたい!って方がいて がんばれーって言ってもらえましたら配布できる形にします。
(気が向いたら拡張や修正はしてくので、もし他人に見せても大丈夫な状態になったら、くらいで)
みんなもUnity触ってみようね!