わんコメの機能「WordParty」をストリームデックアプリ「SAMMI」で魔改造する

## わんコメ？WordParty？SAMMI？なにそれ？

まず、「[わんコメ](https://onecomme.com/)」「[SAMMI](https://sammi.solutions/)」はどちらも
ストリーミング配信ソフトである [OBS](https://obsproject.com/ja) をサポートするアプリです。

https://onecomme.com/

https://sammi.solutions/

また、 SAMMI は [Twitch](https://www.twitch.tv/)、[YoutubeLive](https://www.youtube.com/) の2つをメインでサポートしてるため、
今回は Twitch または YoutubeLive でライブ配信してる方向けの内容となります。


### Wordparty は、ライブ配信で活躍する演出機能

わんコメの機能の1つである「Wordparty」は、
ライブ配信でコメントにあるワードをきっかけに演出を表示できる機能です。

例として、「おはよう」とコメントをすると

```
　　＼ おはよう ／
　 /＼＿＿_／＼
／　⌒　　　⌒ ::: ＼
|　（●）,　、（●）、　|
|　　,,ノ(、_, )ヽ、,, 　 |
|　　　ト‐＝‐ｧ' 　 .::::|
＼　　｀ニニ´　 .:::／
／｀ー‐--‐‐―´´＼
```

といった画像・動画を、OBS上で表示させることができます。


### SAMMI はBOTとして使えるストリームデック
Vtuberがこぞって買い求めてる（らしい）
液晶付きマクロボタン「[ストリームデック](https://www.elgato.com/es/ja/s/stream-deck-for-audio)」をご存知でしょうか。
私は買ったことないですが。

https://pc.watch.impress.co.jp/docs/topic/special/1400177.html

SAMMI (または派生元の [LioranBoard2](https://github.com/LioranWaters/Lioranboard2Update/blob/main/README.md) )は、
バーチャルなストリームデックと言ってもいい…のですが、
実際はもっと高機能な、**一定のタスクや処理を自動化できるBOT**にもなります。
~~(あまりの高機能さに「[もう全部あいつ一人でいいんじゃないかな](https://dic.pixiv.net/a/%E3%82%82%E3%81%86%E5%85%A8%E9%83%A8%E3%81%82%E3%81%84%E3%81%A4%E4%B8%80%E4%BA%BA%E3%81%A7%E3%81%84%E3%81%84%E3%82%93%E3%81%98%E3%82%83%E3%81%AA%E3%81%84%E3%81%8B%E3%81%AA)」って思うくらい)~~

今回は、その多機能な SAMMI でWordParty を制御しよう、という話です。


## SAMMI 導入について、少しだけ触れる

[わんコメ](https://onecomme.com/)は日本の方が開発しており、
日本語の記事が多いため導入しやすいと思うので割愛します。

ただ、[SAMMI](https://sammi.solutions/) を日本語で紹介しているサイトはあまり見当たらないため、
ここで少しだけ説明します。

https://sammi.solutions/

SAMMI も、丁寧に公式がチュートリアルしてくれます。
ただ、言語が英語で、日本語版がないのですが。

OBSとの接続・Twitch / YoutubeLive との接続も必要で
セットアップに時間がかかります。根気よく付き合ってやってください。
以下、セットアップ時に参考にしたサイトです。

https://note.com/nokirg/n/nbe207c22e838


## SAMMI で WordParty を制御する

本題に移りましょう。
どうやって SAMMI で WordParty を動かすのか？

答えは **[わんコメのHTTP API](https://onecomme.com/docs/developer/http-api)を利用する** ことです。
コマンドラインで、cURL経由でJSONデータを渡してあげると、
外部アプリから WordParty が発火します。

### SAMMI にコマンドを打ち込む
OBS、SAMMI、わんコメを立ち上げ、WordParty が表示される状態にしたら、
SAMMI でコマンドを作ってみましょう。

![Edit Commands](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/555376/ba619636-3ade-7edc-0eac-c2ba841e1ece.png)

＋を押し、Numbers,text&Variables > Set String Variables を選択。
更に＋を押し、Utilities > Command Line を選択。

項目には以下の内容を入力。

![画像で説明を省く男がいたんですよ～](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/555376/beef0711-e41b-a185-1328-7caa89724772.png)

見切れている紫枠のCommandには、以下のcURLコマンドを入力。

```curl
curl -s -H "Content-Type: application/json" -d"{\"reactions\": [{\"key\": \"/$comment$/\", \"value\": 1}],\"effect\": false}" localhost:11180/api/reactions
```

- 補足1：SAMMI では、変数を「/\\$comment$/」等と/\\$\\$/ で囲みます
- 補足2：ダブルクォーテーション記号( " )を埋め込むために、バックスラッシュ( \\ )を前に入れています

下部にある RUN を押して、動作するか確認しましょう。

![なーにー!](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/555376/446c44ac-5725-00d0-5c56-e06c88f1636a.jpeg)

予め WordParty で「なーにー」というワードで反応するよう設定すると、
ちゃんと[クールポコ。](https://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%BC%E3%83%AB%E3%83%9D%E3%82%B3%E3%80%82)が表示されるようになりました。

### コマンドを2つ作れば2つ出てきます

Delay(ms) で遅延を設定すれば、
**「1つ目の画像を表示させた後に2つ目の画像を表示させる」** なんてことも可能です。
なーにー！　→　やっちまったなあ！の流れができるわけです。

![やっちまったな！](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/555376/37dff364-7893-5c02-0452-9c63b1cb4b7a.png)

それどころか、SAMMI にあるループコマンド等を駆使すれば、
**好きなように好きなだけ WordParty で画像を出現させる** 事も可能です。

![いや、あんたが言うんかい。](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/555376/3dba8a10-c880-ee11-d5dd-7a20198992f7.jpeg)


なお、クールポコ。の画像は [pepsi](https://www.pepsi.co.jp) の [キャンペーンのを使いました。](https://twitter.com/pepsi_jpn/status/1668075648475340800)

https://twitter.com/pepsi_jpn/status/1668438038613991424?lang=ja

一緒に出ていた [やす子](https://twitter.com/yasuko_sma) も忘れないであげてください。


## トリガーを設定して、コメントで反応させるようにする
おっと。「コメントに反応させる」には、
コマンドを設定するだけでは不十分です。
次は「トリガー」を設定しましょう。

![トリガーの設定](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/555376/48af9485-1131-f9a2-f04c-5567c2150b34.png)

＋を押し、「YouTube Chat」または「Twitch Chat」で
チャットに反応するワードを入力できます。

ボタンがいくつもありますが、モデレーターやメンバーのみに反応、
という使い方もできるようです。詳しくは[ドキュメント](https://sammi.solutions/docs/triggers/general)にて。

### もしかして、チャンネル登録をトリガーに WordParty 発火もできるの？
**できますよ！** トリガーが何種類もありますから。

例えば…
- 視聴数/メンバー登録/高評価/低評価を条件に発火
- ホットキー設定して、ポン出しみたいに使う
- タイマーで定期的に出して花火のように打ち上げる
- ランダムにWordParty を発火させる

かなり多くの事をトリガーにできるようなので、
色々使い方を探ってみて下さい。私も探ってみますので。