【伺か】ゴーストがユーザにメールを送れるようになるプラグインを書いた。【SSP】

ukagaka

メリークリスマス!

この記事はアドベントカレンダー2023年12月25日の記事です。
伺かユーザの皆様、今年もいい子にしてたカナ?
そんなユーザとゴースト開発者に新たな可能性<プレゼント>を用意しました。

で、その内容は?

MailBoxというプラグインを公開します。
ゴーストが起動していないタイミングでも、あらかじめ用意したメールを指定した日に届けることができるようになるプラグインです。

また、ゴースト側からは指定したメールが届いたかどうか、既読されたかどうかを調べることができるので(ややこしい)遊び方の幅が大きく広がります。
約2カ月程前から開発が始まり、うかどんの方に協力いただいておりました。本当にありがとうございます。

どんなふうに表示されるの?

メニュー画面

プラグイン一覧からメニュー画面を呼び出すことができます。
mailbox_menu.jpg

既読及び未読メニュー

すべてのゴーストからのメールが格納されています。
送信者:タイトル と表示されます。
mailbox_midoc.jpg

個別メニュー

メニューを呼び出したゴーストからのメールを既読・未読合わせて確認します。
既読したメールは「-」が一つ小さくなります。
mailbox_kobetu.jpg

メール本文

騙り防止に、末尾には送信したゴーストのメニュー名が付きます。
mailbox_honbun.jpg

新着通知

起動時、および一定間隔ごとにチェックされ、新着メールがあれば通知されます。
通知をクリックすることでもメールボックスを開くことができます。
mailbox_sintyaku.png

製作経緯

わたくし、去年のアドベントカレンダーにも1枠いただきまして、書かせていただきました。
【SSP】伺かをCeVIO AIの力を借りてフルボイス化した。【Windows10】 — 異風堂々

その際、僕にとってゴーストがどのようなものであってほしいかというものも少しだけ書いたのですが、
結局のところより人間らしい動きや情報の取得をしてほしいというのが変わらない気持ちです。
なので、AIに可能性を求めたり、ユーザの情報を拾いやすくしてみたりしたわけですが、せっかく作った存在が忘れられるのはやっぱりつらい!

ということで、SSPでそのゴーストを起動していなくても、ゴーストからトークを送り込めるプラグインを作りました。

使い方とダウンロード。

ReadMe

使い方の詳細はこちら。
GitHub – ambergon/ukagakaPlugin_mailBox

ダウンロード

この記事を書いている現在の最新バージョンは1.0.0です。
Releases · ambergon/ukagakaPlugin_mailBox · GitHub

里々でとりあえず試したい。

プラグインを導入後、下記をテストしてみてください。

\![notifyplugin,MailBox,OnSendMail,0,(現在年),(現在月),(現在日),送信者名,メールタイトル,メール本文]

SSP/2.6.52で試した限り、プラグインが入っていない状態でスクリプトを実行しても、
エラーなどは出なかったので、割と気軽に送信できると思います。
一応インストール済み判定も出来るようにしていますが、割愛。

簡単な実装

OnExistPluginMailBox関数はプラグインの有無を確認するための関数であるが、テキストを返すことが可能なため、下記のような実装ができる。
この場合、プラグインが存在する時、起動トークにメールの送信を追加できる。

*OnExistPluginMailBox
\0\C\![notifyplugin,MailBox,OnSendMailNotUpdate,0,2024,1,1,送信者,タイトル,内容]

わからん。簡単に導入できるようになるライブラリとかないの?

なんと月波 清火氏が里々とyaya用のものを書いてくださりました。ありがとうございます。

出たばかりだし、まだ対応ゴーストとかないんでしょ?

ところがどっこいもうすでに作ってくださっている。

作者名 ゴースト名/リンク
小戸らでく 氏 チョコレイトボックス
netai98 氏 ドラゴンリーダー / Nar na Loader – ななろだ
月波 清火 氏 GitHub – tukinami/taidanaSanoSan: 伺か雑談系ゴースト
瑞樹ユラ 氏 ヒースとオリーブを籠に入れて
にはちびっと 氏 ゴースト「娘さんと若」

想定される使い方は?

一カ月起動されなかったらメールが届くようにしたり、
ユーザの誕生日メールなんかも簡単にできるでしょう。

里々なら下記のようにできます。

# 起動後、割とすぐに発生する。SSPのユーザ名などを変更した際にも発生する。
# OnNotifyUserInfo関数を使えばSSPの設定に保存されているユーザ名や誕生日を取り出すことができる
*OnNotifyUserInfo
(nop,(split(バイト値、1)(R2)(バイト値、1),))
$U誕生年=(S0)
$U誕生月=(S1)
$U誕生日=(S2)

# 今は年末なので、このスクリプトだと即メールが届くようになると思います。
*OnKeyPress
:重複を考えずにメール送信テスト\![notifyplugin,MailBox,OnSendMail,1000,(現在年),(U誕生月),(U誕生日),送信者名,HappyBirthDay!!,メール本文\n1\n2\n3]


# 開発用機能。誕生日が今年まだの人はこちらから確認できる。
*OnKeyPress
:未達メールリストを確認する。\![raiseplugin,MailBox,OnDevList,0]

最後に

伺かを知ってから2年ほどになりますが、たくさんのゴーストを楽しませてもらっています。
個人的な需要を持ったプラグインや機能を作っている時間が長かったのですが、
ゴーストはアイデア出しぐらいしかしてきませんでした。

もっと遊び心のあるゴーストを、より作りやすく、そして今度は自分で形にしてみたいと思っています。
もしよければその時は遊んでやってください。
それではよいクリスマスを。