Skip to content

カスタム絵文字とセット

カスタム絵文字

カスタム絵文字は、ゲスト以外の誰でも追加できます(絵文字のピッカーの「絵文字を追加」)。管理 →「絵文字」では、 すべてのカスタム絵文字を見て、表示名・キーワード・色・セットと順番を直したり、削除したりできます。

種類 内容
画像の絵文字 PNG・GIF・JPEG・WebP、256 KB 以下、512 px 以下。横長は 3:1 まで縦横比どおりに表示
文字の絵文字 1〜12 文字の言葉を、色付きのラベルとして表示(色は gray・red・orange・yellow・green・blue・purple・pink)
  • 名前(ショートコード)は英小文字・数字で始まる 2〜32 文字(a-z 0-9 _ + -)です。IME を切り替えずに打てる形です。
  • 日本語は 表示名 と キーワード(20 個まで)に入れます。検索と : の補完で日本語でも見つかります。

絵文字のセット

いくつかの絵文字を セット にまとめると、絵文字のピッカーにセットごとのタブができます。LINE のスタンプのような オリジナルの絵(例:180×180 の透過 PNG を 40 個)に向いています。セットの絵文字を 1 つだけ送ると、スタンプとして 大きく表示されます。

  • セットの作成・名前の変更・並べ替え・削除は管理者だけです。
  • セットを消しても絵文字は残ります(「カスタム」のタブに移ります)。本文やリアクションで使われている絵文字が 消えないようにするためです。絵文字ごと消すときは、絵文字を一つずつ削除してください。

セットを取り込む

管理 →「絵文字」→「セットを追加」で、画像と pack.json の入った フォルダ か ZIP を選びます。

my-pack/
├── pack.json
├── tab.png              (タブのアイコン、任意)
├── 001_ok.png
└── 002_thanks.png

pack.json の形式:

{
  "name": "どうぶつ",
  "tab": "tab.png",
  "items": [
    {"file": "001_ok.png", "shortcode": "anm-ok", "label": "オーケー", "keywords": ["了解", "OK"]},
    {"file": "002_thanks.png", "shortcode": "anm-thanks", "label": "ありがとう", "keywords": ["感謝", "おじぎ"]}
  ]
}
項目 内容
name セットの名前(64 文字まで)。同じ名前のセットがあれば、そこに足します
tab タブのアイコンの画像(任意)。無ければ最初の絵文字を使います
items[].file 画像のファイル名(日本語の名前も使えます)
items[].shortcode 絵文字の名前。セットごとに接頭辞(例 anm-)を付けると、ほかの絵文字とぶつかりません
items[].label 表示名(任意)
items[].keywords 検索のキーワード(任意)

取り込みの決まりと上限は次のとおりです。

  • 全部か何もしないか:先にすべてを確かめ、1 つでも問題があれば何も取り込みません。問題のファイルが表示されます。
  • 名前がほかのセットやセットなしの絵文字に使われているとエラーになります(その名前の一覧が出ます)。
  • やり直しても重複しません:同じセットに同じ名前があれば、表示名・キーワード・順番を pack.json に合わせます (画像は差し替えません)。pack.json から外した絵文字は消しません。
  • 画像は 256 KB・512 px 以下、pack.json は 1 MB・300 項目まで、ZIP は展開後 64 MB まで。__MACOSX とドットファイルは 無視します。フォルダや ZIP の中のほかのファイル(メモなど)は読みません。

サーバのフォルダから入れる(プリセット)

管理画面を使わずに、サーバに置いたフォルダから絵文字のセットを入れることもできます(サーバの担当者の作業です)。

  • 本番では /srv/chikuwachat/infra/emoji-presets/<フォルダ>/ に、上と同じ形(pack.json と画像)で置きます。
  • アプリは 起動のたびに そのフォルダを読み、新しいもの・変わったものだけを取り込みます。画像を直したら同じ名前で 置き直せば差し替わります。
  • 今すぐ取り込むには python -m app.cli import-emoji-presets を実行します。
  • 管理者が画面で消したセットや絵文字は、次の起動でも戻りません。戻すときは import-emoji-presets --restore <フォルダ名> を使います。
  • 1 つのフォルダに問題があっても、そのフォルダが飛ばされるだけで、アプリはふつうに起動します。

コマンドの詳しい例は infra/README.md の「絵文字のセット(プリセット)」、 仕組みは docs/EMOJI.md をご覧ください。