Slide 1

Slide 1 text

めくるめく めくるめく Emojiの世界 Emojiの世界 2021-01-30 BuriKaigi 2021 1

Slide 2

Slide 2 text

⾃⼰紹介 ⾃⼰紹介 Twitter: GitHub: Blog: ⾔語: Ruby, Ruby on Rails FJORD BOOT CAMP / 永和システムマネジメント 最近良く使うEmojiは ima1zumi ima1zumi いまブログ 2

Slide 3

Slide 3 text

Emojiに興味を持ったきっかけ Emojiに興味を持ったきっかけ RubyのREPL(irb)でEmojiに関するバグを踏む issueを上げる PRを送ってマージされた ⽂字コードとUnicodeとEmojiについて調べる ⾯⽩い! 3

Slide 4

Slide 4 text

今⽇話すこと 今⽇話すこと Emojiの歴史 厄介なEmoji 4

Slide 5

Slide 5 text

絵⽂字とは何だろう 絵⽂字とは何だろう 1. 表意⽂字 ⽂字が意味を表す 表⾳⽂字: ⽂字が発⾳を表す 2. ⽂字や⾔葉の代わりとなるもの 3. ⽂章に⾃分の感情を付加する 5

Slide 6

Slide 6 text

絵⽂字のおこり 絵⽂字のおこり インターネットの普及 BBS(電⼦掲⽰板) エモティコン :-) 顔⽂字 (^_^) 6

Slide 7

Slide 7 text

ポケベル ポケベル ポケベル ❤ の絵⽂字が存在 「オコッテルノ」「オコッテルノ❤ 」 7

Slide 8

Slide 8 text

iモード iモード ドコモのiモードに絵⽂字が乗る(1998) ⽂字数の節約、感情表現 表⽰領域の狭さを解決 12x12のドット絵 著作権を取得できない 各キャリアが追従 8

Slide 9

Slide 9 text

Unicode 6.0 に採択される Unicode 6.0 に採択される ⽇本では10年程度絵⽂字が使われていた 外字領域を使っていて、良い状態ではなかった Google, Apple からの提案で絵⽂字がUnicodeに⼊ る(2010.10) ⽇本市場での重要性 iOS5でEmojiを使⽤できるようになる(2011.10) スマートフォンの普及とともにEmojiも普及 9

Slide 10

Slide 10 text

Unicode 6.0 で⼊ったEmojiの⼀部 Unicode 6.0 で⼊ったEmojiの⼀部 ☺ ❤ ✋ ✌ ☝ ✊ 10

Slide 11

Slide 11 text

Emojiの⽂字コードの話 Emojiの⽂字コードの話 ⽂字コード:コードポイント UTF-8 11

Slide 12

Slide 12 text

闇の制御⽂字たち 闇の制御⽂字たち ZERO WIDTH JOINER SKIN TONE MODIFIER REGIONAL CHARACTER VARIATION SELECTOR-16 (VS16) COMBINING ENCLOSING KEYCAP 12

Slide 13

Slide 13 text

ZERO WIDTH JOINER (ZWJ) ZERO WIDTH JOINER (ZWJ) ゼロ幅結合⼦ U+200D ⽂字と⽂字の間に置くと字形が変わる⽂字がある Emojiと別のEmojiを組み合わせて違うEmojiを表 現するために使われる 例: = + ZWJ + U+1F9D1 U+200D U+1F4BB 参考: Recommended Emoji ZWJ Sequences, v13.1 13

Slide 14

Slide 14 text

SKIN TONE MODIFIER SKIN TONE MODIFIER 肌の⾊を表現する制御⽂字 U+1F3FB 〜 U+1F3FF 例: : U+1F44B : U+1F44B U+1F3FB ref: Full Emoji Modifier Sequences, v13.1 14

Slide 15

Slide 15 text

REGIONAL INDICATOR REGIONAL INDICATOR 国旗の絵⽂字を表現するときに使う⽂字 U+1F1E6 ( ) 〜 U+1F1FF ( ) 国名コード(ISO 3166-1)に対応 例: = + = + , = + 15

Slide 16

Slide 16 text

VARIATION SELECTOR-16 (VS16) VARIATION SELECTOR-16 (VS16) Emojiの⽂字表現と絵⽂字表現どちらを使うか指定 するための制御⽂字 HEAVY BLACK HEART ❤ (U+2764 ) / RED HEART ❤ (U+2764 U+FE0F ) 参照:UTS #51: Unicode Emoji 16

Slide 17

Slide 17 text

COMBINING ENCLOSING KEYCAP COMBINING ENCLOSING KEYCAP 囲み⽂字 U+0030 U+FE0F U+20E3 0, VALIATION SELECTOR, COMBINING ENCLOSING KEYCAP U+1F51F ... 17

Slide 18

Slide 18 text

プログラムでEmojiを扱うとき プログラムでEmojiを扱うとき ⽂字数カウントで想定と異なる挙動をしがち 書記素(grapheme cluster )単位で扱う ⾒た⽬の1⽂字を1⽂字として扱う 参考:Rubyで⽂字コードを扱うコードを書くとき に便利なメソッド集 - Qiita 18

Slide 19

Slide 19 text

まとめ まとめ Emojiは⽇本で作られ、今は世界中で使われている Emojiを使うと⽂章に感情表現を乗せられて⾯⽩い 実装が複雑なので⾯⽩い 19

Slide 20

Slide 20 text

参考資料 参考資料 絵⽂字はどのようにして⽣まれ、世界に広がって いったのか? Unicode Emoji v13.1 Index of /Public/emoji/13.1 Emoji - Wikipedia グーグルが絵⽂字を世界標準に提案した理由--国際 化エンジニアに聞くプロジェクトの舞台裏(前編) - CNET Japan ⽣みの親が語る「ケータイ絵⽂字」14年の軌跡と 新たな⼀歩 - ⽇経トレンディネット 20

Slide 21

Slide 21 text

参考資料 参考資料 Designing the Dumpling Emoji | Yiying Lu - YouTube Unicodeとは? その歴史と進化、開発者向け基礎 知識 - Build Insider これからの絵⽂字の実装指針、UTR #51 Unicode Emoji とはなにか - INTERNET Watch Watch 21

Slide 22

Slide 22 text

BuriKaigi BuriKaigi お疲れさまでした お疲れさまでした 22