Theme
↑Back to Home

誰でも使えるDiscord用小隊管理Bot「SwarmBot」

こんにちは。

今年の6月中旬ほどから少しずつ進めていたSwarmBotですが、先日ようやくまともに使えるレベルまで持ってこれたので、これも同じく長々と温めていたホームページと合わせて(密かに)一般公開しました。

実はまだもういくつかBot側とHP側の両方でしなくてはいけないことが残っているのですが、(主に次期#infoに向けた)他のタスクもあるのでとりあえず後回しにして、そっちに取りかかり始める前に今回はSwarmBotの簡単な紹介と作るまでの経緯なんかを書いてみます。

なぜ作った

とてつもなく長いので興味のない方はそのまま次の見出しまですっ飛ばしてください。

RJPWという存在

私はRJPW鯖を「プレイスタイルや所属クランに関係なく幅広い層のロボクラフターが集まる場」のようなものだと捉えています。

日本ロボクラコミュニティにおけるRJPW鯖の存在は今も非常に大きく、その当時海外コミュニティやクランとの絡みの方が多かった私にとっては、海外にこのような場所がほぼなかったために、RJPWのような場所の存在はとても意外でした。

私がMODに就任した頃に周りから勧められて入ったACとは違い、様々な人種の住むRJPWで小隊を組んだり色々なことを話したりする体験は個人的にとても刺激的だった覚えがあります。そして数ヶ月後には一部から「ACに残った方がいいんじゃない?」みたいなことを言われながらもRJPWに移籍しました。

内輪の交流

とはいえ今、BeeHiveという”内輪の色が強いクラン”に所属していて、RJPWの様なオープンな場所で交流するだけでなく、距離の近い相手と交流を持つのもとても大事だと思うようになりました。そしてそういった内輪での交流を活発にさせる為にも重要なのが私は「小隊Bot」だと考えています。

とりあえず小隊を建てておけばクラメンの誰かが入ってくれるかもしれない、そうして一人が来るともう一人が来る、気づいたら何人もVCに集まってた、なんて流れを小隊Botがあると自然に生み出すことができます。ここ最近はおのおのワールドカップの練習のためにクラン鯖外に出払っていることの多いBeeHiveでもよくこういった流れで人が集まることがあります。

(特に当時は)国内のロボクラクランの一部が、独自のクランDiscordを保有しながらも活動のほとんどをRJPWサーバーで行うといった形を取っているのを見て、図々しいけれども勿体無いなと思ったこともあります。
完全に余計なお世話だけど、もっと内輪の交流も大事にしよう!
まあこんな過疎状態だともうそれどころじゃないのですが。Infinity早くして。

GJLありがとう

とりあえずその話は一旦置いておいて、RJPWからBeeHiveが独立した時、BHでは実はクラン設立初日から「RJPW鯖にもあるような小隊BotをBHにも用意する」構想がありました。今となって思い返そうとすると、もはや誰かに頼まれたのかそれとも半ば自分一人で勝手に始めたことなのかも思い出せないのですが…

BeeHiveが出来る前に今は亡き宇宙ゴミ大会(なお今年末まで猶予はある模様)の非公式日本サーバーを私が勝手に設立した時、ついでで作ったGJLBotにRJPW-Bot風の小隊管理機能の雛形のようなものを作り始めていたのもあって、BH設立から数ヶ月も経たないうちにいつの間にかBeeHiveBotという小隊管理機能とクソコマンドの化身がBeeHiveに誕生しました。

そう、今回のSwarmBotの前身は元々BeeHiveBotの小隊管理機能の部分で、さらに言うとその小隊管理機能の部分はGalactic Junk Leagueがリリースされた時に生まれたものなのです…!

宇宙ゴミ大会が生まれていなければBeeHiveBotの完成は遅れ、それが原因でBeeHiveも存在していなかったかもしれない。BHメンバーは今後のBeeHiveの存続のためにも全員GJLの開発に5000兆円出資して開発を継続してもらいましょう。

本題

話は戻って、今回SwarmBotを作る経緯に至ったのは単純に「BeeHiveBotにもある小隊機能を外部にも公開できないかな?」といった理由もあるのですが、個人的にはもっとこう、大きなコミュニティよりも小さなコミュニティの活性化につながればという願いも込めています。

また、使用用途を「ロボクラ」に限定したくなかったのと、RJPWの運営陣が生み出した「小隊管理」という素晴らしい概念を海外にも広めたかったのもあって、「小隊」の表現を全て「パーティー」に置き換え、デフォルトの小隊上限人数を2人や4人にも変えられるようにしたり、さらには英語対応もすることにしました。

なのでSwarmBotはロボクラ以外のTPS/FPSゲームでも十分に使用することができますし、クランの活発化どうのこうのを抜きにしても小隊管理の便利性を知ってる身としては是非別ゲーのフィールドにもこのアイデアを広めてもらいたいと思います。

SwarmBotの特徴

基本的な使用感はRJPW-Botの小隊管理とほとんど変わりません。コマンドの表記などもRJPW-Botと酷似しており、これは元々BeeHiveサーバー向けに作ったというのもあってメンバーがRJPW-Botと同じように使えるようにするための名残です。

;;cで小隊作成、;;jで参加、;;lで退出など、基本的な挙動は全てRJPW-Botの仕様を模倣していますが、ここではいくつかRJPW-Botとの相違点などを挙げていきます。

ビジュアル

小隊管理機能Botは他の音楽Botなどと違い仕組みが複雑であるために、やはり初めて使うには難しく見えますし、実際に使って感覚を掴むまでにはやや時間が必要です。

そこでせめて重要な情報だけでも見えやすくできないかと考えてSwarmBotのメッセージには全てに共通した絵文字表現を使用し、コードブロックや太字なども活用して見やすさを少しだけ意識しています。

コマンドが成功した時は先頭にチェックマークの絵文字を置き、エラーが発生した時は怒りマークを、重要な情報にはコードブロックで背景色を変えたり太字で強調させたりなど。この辺はまだまだ改良の余地はあると思っています。

コマンド

基本的な書式はRJPW-Botと共通でありながらも、小隊管理Botに慣れている人向けに少しだけ高度な表記も出来るようにしています。
例えば、;;c時に追加したいメンバーを同時に設定できたり、;;add;;kickなどでもスペース区切りで複数のメンションが出来るようにしたり。

あとは;;move;;swapなどの需要があるかどうか微妙なコマンドもあったりします。
;;moveは小隊を丸ごと別の小隊チャンネルに移動させるコマンドで、;;swapは順番待ちの人と入れ替える(もしくはその逆)コマンドです。

詳しくはSwarmBotHPのコマンド一覧を見てみてください。

サーバー単位の設定

SwarmBotの大きな特徴の一つはサーバー毎に機能をカスタマイズできる点です。
この辺は今後強化していく予定ですが、現時点では小隊チャンネルの数やデフォルトの上限人数、そして解散忘れの小隊などを解散させることができるパーティーマネージャー役職の設定などが可能です。

最後に

簡単にですがSwarmBotについて紹介してみました。
というかどちらかというと最初半分が本編なんじゃないですかね。序盤でエネルギーを使い果たしました。

小隊管理なんてDiscordサーバーを保有しているごく限られた層にしか関係ない話ではあるのですが、興味のある方は是非SwarmBotのHPを覗いてみてください。

最後まで読んでくれてありがとうございました。

Share on Twitter