学生がクリエイターになるまで

自称なんでも(できるようになりたい系)クリエイターのユゥです! 日記や備忘録、作った作品を公開していきます! コメントとか残してくれたらうれしいです。

Discord身内鯖でガチャBotを作った

どうも、ユゥです。

20歳になりました。やったー(おさけをのみながら)

 

今回はDiscordネタですよ~ということで。(まじ適当に書いてます)

専門学校のクラスメイト数十人でDiscordで毎日作業通話したりゲームしたりワイワイしてるわけですが、そこをより楽しく使えるといいな~と思っていて、いろんなことをしています。

Discordといえば音楽Bot、音楽BotといえばRythmですが、Rythmではなくこれをセルフホスティングして動かしています。家でノートPCを24h稼働させていますが、たったいまVPSに移行しました(以前長時間流しすぎてVPSYouTubeからBAN食らってました)

 

しかし今回は別のBotを作ってみました。タイトルで分かる通り(YouTuber風)ガチャBotです。なんぞや。と思いますよね。

ガチャといえばソシャゲのガチャです。友達の画像が出てくるガチャっておもしろいな~とひらめいて、作ることにしました。

僕の学校の友達に肖像権はないので、まずはみんなから素材をもらいました。

 

そしてBotを作ります。今回はNode.jsで作りました。

ガチャ専用チャンネルを作って、「ガチャ」というメッセージに対してBotが返信してガチャ結果を表示する仕様になっています。

f:id:yulu0829:20200911014745p:plain

ガチャ結果(プライバシー保護のため修正しています。(僕の顔))

Discordのembedを使って整形して見やすくしています。
★4は90%、★5は9.5%、★6は0.5%の確率で、たまーに確率UPイベントとかDOWNイベントとかが発生します。

レアリティの分け方としては、面白い画像や少し加工した画像は★5、そして★6はGIF画像となっています。

画像は別でWeb鯖をたてて、そこにあがっているやつを持ってきています。

Botのコードは全部で170行くらいで、イベントとかのコード消せばもっと短いです。

抽選はまずレアリティの抽選を行い、そのレアリティの中の画像をランダムで持ってくるという感じです。画像はたくさんあるので、Pythonでフォルダ内の画像を1枚=1オブジェクトとしてjsのコードを吐き出すスクリプト書いてます(ちょっと何言ってるかわからない)

1日1回しか引けないようにして、午前4時リセットにしてます。

こうすることで、あ、今日ガチャ引いてないなってなってDiscordを開くというのが習慣化して同時に作業も毎日やってほしいというささやかな願いを込めてあります。

というわけで、完全自己満足の文章になりましたが、DiscordでBot作るのはいいぞーという記事でした。他にガチャBot作ってる人とかおるんやろか・・・

 

話はそれますが、プログラミングの勉強としてDiscordBot作るのはおすすめです。

基本非同期処理なのでわからんですが(僕もわからん)、やっぱり自分のメッセージに対して反応してくれるBotは作るのが楽しいです。しかもそれを色んな人に使ってもらうなら尚更。

JavaScriptとかPythonだとライブラリがあるので、簡単に作れます。(discord.jsとdiscord.py)

Discordで人とワイワイするのは楽しいので、みなさんもやってみてはいかがでしょうか。

そろそろ眠くなってきたので寝よう・・・おやすみなさい(つ∀-)

 

ではまた✋