13
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Discord BotAdvent Calendar 2020

Day 4

【Discord.py】Unicode絵文字とカスタム絵文字の違いを紹介

Last updated at Posted at 2020-12-03

#はじめに
###投稿者の自己紹介
どうもまぬおです!discord.pyでBotを開発しています。よろしくお願いします

###お知らせ
Discord Bot Advent Calendar 2020
この記事はDiscord Bot Advent Calendarの4日目の記事です。ほかの方の投稿もぜひご覧になってください

1日目【Discord.py】Discord.py 1.5で追加されたIntentsを攻略する
2日目【Discord.py】チャンネルを持ったカテゴリを作成する
3日目【Discord.py】ボイスチャンネルの招待メッセージを送信する

他の日にも投稿しています。たくさんのViewありがとうございます!
良ければ、LGTMもよろしくお願いします!

###今回のテーマ
今回は、Unicode絵文字とカスタム絵文字の違いについて紹介したいと思います
Unicode絵文字とカスタム絵文字では扱いに少し違いがありますので、その辺を紹介できればと思います

また、この記事はある程度Botを開発したことがある中級者向けの記事になっています。Botの開発を始める方法などは書きませんので注意してください
初心者の方には、別の方が書いていただいた初心者向けの記事があります
ボクもこの記事からDiscord Bot開発を勉強し始めましたのでおすすめです!

PythonでDiscordBotを書く方法
##絵文字とは
###簡単便利なスタンプ
image.png
絵文字はご存じの通り、いろんな顔やサムズアップなどたくさん種類があります
返事をしたいけど文字を打つのがめんどくさい時に便利ですね
また、Discordでは自分で絵文字を追加することもできます
image.png
サーバーに合う絵文字を使えるので便利です
##二つの違い
人間が絵文字を打つときにはさほど変わりはありませんが、Botが絵文字を使用するときには違いが出てきます
これらはそれぞれの絵文字を取得する際のコードです

# Unicode絵文字
UnicodeEmoji = "\N{SMILING FACE WITH OPEN MOUTH AND TIGHTLY-CLOSED EYES}"

# カスタム絵文字
CustomEmoji = "<:manuo:784105295328313394>"

###Unicode絵文字の場合
"\N{Unicode Character Name}"で絵文字を取得します
{}の中に入れる文字列はUnicode Character Nameを確認するサイトで確認できます
使いたい絵文字の文字列を検索して記述してください
###カスタム絵文字の場合
"<:alias:ID>"で絵文字を取得します
image.png
aliasは絵文字を入力する画面で確認できますが、IDは絵文字を打つ画面でもサーバー設定の絵文字を管理する画面でも確認することができません
以下の記事でも紹介されていますが、IDは\:alias:と入力して送信する方法で確認できます
Discordの絵文字IDを確認する方法
参考にさせていただきました。ありがとうございます
##実際に使ってみる
絵文字の取得方法がわかったところで、実際にBotに送信させてみます
今回のコードはこちら

import discord

TOKEN = "TOKEN"

client = discord.Client()

# Unicode絵文字
UnicodeEmoji = "\N{SMILING FACE WITH OPEN MOUTH AND TIGHTLY-CLOSED EYES}"

# カスタム絵文字
CustomEmoji = "<:manuo:784105295328313394>"

@client.event
async def on_message(message):
    # 送信者がBotの場合は反応しない
    if message.author.bot:
        return

    # 絵文字を返信
    Channel = message.channel
    await Channel.send(UnicodeEmoji)
    await Channel.send(CustomEmoji)

client.run(TOKEN)

Bot以外からメッセージが送られたら絵文字を返すBotですね
result.gif
Unicode絵文字、カスタム絵文字のどちらも使えているのがわかると思います

##おわりに
###取得に一癖あり
普段から頻繁に利用する絵文字ですが、Botで扱う際には一癖あります
取得した後は同じものとして扱えるので、そこからはややこしくないのですが
Botが絵文字を使えると一気にお茶目さが増すので、ぜひ使ってみてください
サーバーに追加した絵文字を有効活用すると、同じ機能でも視覚的にわかりやすくなるのでおすすめです
###おわりのあいさつ
ここまで読んでいただき、ありがとうございました
この記事がみなさんの開発に役立つと幸いです
それでは良いDiscord Bot開発ライフを!
###各種バージョン
Python3 : 3.6.9
Discord.py : 1.5.1

13
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?