Artykuły o emoji

Dlaczego to samo emoji wygląda wszędzie inaczej

Standard ustala znaczenie znaku, nigdy jego rysunek. Na naszym dysku leżą trzy otwarte zestawy obrazków na ten sam katalog 3953 pozycji: 30,6 MiB, 12,3 MiB i 9,6 MiB. Skąd bierze się trzykrotna różnica i gdzie zestawy mają dziury.

Wysyłasz 😀 z telefonu, rozmówca czyta wiadomość na laptopie — i widzi inną twarz. Nie inny nastrój ani błąd: ten sam znak, narysowany inną ręką. Tak to działa od początku.

Najłatwiej zrozumieć to na czymś, co da się zmierzyć. Na naszym dysku leżą trzy zestawy obrazków na otwartej licencji i każdy pokrywa ten sam katalog 3953 pozycji. Trzy zestawy, jedna lista znaków — i trzy bardzo różne odpowiedzi na pytanie, jak to narysować.

Standard opisuje znaczenie, a nie obrazek

Unicode odpowiada za to, że znak istnieje, ma numer i oznacza określoną rzecz: «szeroko uśmiechnięta twarz», «rakieta», «czerwone serce». Na tym kompetencje się kończą. Kolor, kształt i grubość kreski nie należą do standardu — obrazki w jego własnych tabelach są oznaczone jako próbki, nie jako wzorzec.

Reszta należy do tego, kto rysuje. Apple rysuje swój zestaw, Google swój, tak samo Samsung, Microsoft i Meta. Otwarte zestawy robią dokładnie to samo, z tą różnicą, że wynik można pobrać i porównać. Właśnie tym się teraz zajmiemy.

Wynika stąd rzecz, którą warto przyjąć raz i nie wracać do niej: «poprawnego» wyglądu emoji nie ma. Jest znaczenie zapisane w standardzie i dowolnie wiele rysunków do niego.

Trzy zestawy, które mamy na dysku

Zestawy są ułożone według punktów kodowych: plik nazywa się numerem znaku, więc jedna kopia obsługuje wszystkie dziewięć wersji językowych serwisu. Oto co wychodzi z policzenia plików i zsumowania ich wagi.

Trzy zestawy obrazków wobec katalogu 3953 pozycji
ZestawRysujeLicencjaPlikówPokrycieWagaŚredni plik
Noto Color EmojiGoogleApache 2.0369193,4 %30,6 MiB8694 B
OpenMojiHfG Schwäbisch GmündCC BY-SA 4.03953100 %12,3 MiB3265 B
TwemojiTwitter / XCC BY 4.0393999,6 %9,6 MiB2542 B

Ponad trzykrotna różnica wagi. I nie chodzi o to, że Google nie umie optymalizować: zestawy rozwiązują różne zadania. Jeden rysuje ilustrację, drugi znak.

Ile figur idzie na jedną twarz

Waga pliku wynika z tego, z ilu kawałków złożony jest rysunek. Obrazek wektorowy składa się z figur: konturów, okręgów, prostokątów. Policzmy je dla sześciu znajomych znaków.

Jeden znak, trzy rysunki: waga pliku i liczba figur
ZnakNotoOpenMojiTwemoji
😀 szeroko uśmiechnięta twarz3952 B / 23 figury1439 B / 13450 B / 5
❤️ czerwone serce1598 B / 5757 B / 4368 B / 1
🔥 ogień2502 B / 23130 B / 10822 B / 2
👍 kciuk w górę5434 B / 102473 B / 131663 B / 2
😂 łzy ze śmiechu6538 B / 242880 B / 201668 B / 4
🚀 rakieta5413 B / 254498 B / 16677 B / 6

Czerwone serce u Twemoji to jedna jedyna figura: kontur, wypełnienie i koniec. Noto używa pięciu, bo jest tam refleks i miękkie przejście koloru. Uśmiechnięta twarz różni się wagą prawie dziewięciokrotnie: 3952 bajty wobec 450.

Dlaczego ogień psuje regułę

Jeden wiersz nie trzyma się zasady «Noto jest najcięższe»: 🔥 zajmuje u OpenMoji 3130 bajtów wobec 2502 u Noto. Po otwarciu obu plików widać powód.

  • Noto rysuje płomień dwiema dużymi figurami z wypełnieniem gradientowym: złożoność siedzi w opisie koloru, nie w geometrii.
  • OpenMoji prawie nie używa gradientów — płaskie wypełnienie i czarny kontur, więc bryłę trzeba wziąć z kształtu. Dziesięć figur zamiast dwóch.
  • Twemoji idzie trzecią drogą: dwie figury, płaski kolor, żadnego konturu. 822 bajty, a przy osiemnastu pikselach różnicy i tak nie zobaczysz.

To trzy szkoły rysowania, a nie trzy poziomy jakości. Ilustracja, piktogram i znak. Każda ma rację na swoim miejscu.

Porównywanie zestawów na urodę donikąd nie prowadzi. Porównuj je po rozmiarze, w jakim zamierzasz je pokazywać.

Dlaczego zestaw zmienia się po drodze

Czytelnik zwykle zakłada, że obrazek wybiera jego telefon. To połowa prawdy: rysunek pochodzi z czcionki systemowej, a ta jest jedna na urządzenie. Część aplikacji wozi jednak własny zestaw i podmienia systemowy — dlatego ten sam znak potrafi wyglądać inaczej w komunikatorze i w przeglądarce na tym samym telefonie.

Zostają trzy warstwy i na każdej obrazek może się zmienić:

  • System. Jego czcionka odnawia się razem z nim: rzadko i dużymi krokami.
  • Aplikacja. Komunikator albo serwis społecznościowy może dołączyć swój zestaw i wtedy system nie ma nic do powiedzenia.
  • Strona. Witryna może podać obrazek plikiem i wtedy wszyscy czytelnicy widzą to samo, niezależnie od sprzętu.

My korzystamy z trzeciej warstwy wybiórczo: na listach świeże znaki wychodzą jako obrazek, a nie tekst. Powód jest prosty — czcionki systemowe jeszcze ich nie znają, a bez podmiany stałby tam pusty prostokąt. Wszystko starsze idzie tekstem, żeby dało się je zaznaczyć i skopiować.

Czego zestawom brakuje

Kompletny nie jest żaden. Katalog rośnie z roku na rok, a zbiory obrazków odnawiają się we własnym tempie — i dziury widać od razu, gdy zestawić nazwy plików z listą znaków.

  1. Noto — brakuje 262 plików. Każdy z nich okazał się flagą: i te złożone z dwóch liter regionalnych, i te złożone ze znaczników, jak 🏴󠁧󠁢󠁥󠁮󠁧󠁿. Wśród braków nie ma ani jednej pozycji spoza flag. Zestaw trzyma flagi osobno, nie według punktów kodowych, więc nasze rozłożenie ich nie podchwyciło.
  2. Twemoji — brakuje 14. To ©️, ®️ i dwanaście klawiszy: #️⃣, *️⃣ oraz cyfry od 0️⃣ do 9️⃣. Wszystkie to stare znaki, które emoji zostały dopiero z czasem.
  3. OpenMoji — nie brakuje niczego. 3953 pliki na 3953 pozycje katalogu.

Dziury w zestawie nie są rzadkością ani oznaką zaniedbania. Tak wygląda każdy rysunek do żywego standardu: najpierw wychodzi wydanie Emoji, potem zestaw je dogania. Świeże znaki miesiącami żyją bez obrazka i to osobna historia — o kwadraciku zamiast emoji.

Kiedy rysunek kłóci się ze znaczeniem

Dopóki mowa o grubości kreski, nic się nie dzieje. Gorzej, gdy obrazek zaczyna przeczyć znaczeniu.

Klasyczny przypadek to 🔫. Standard daje znakowi neutralny opis, a pierwsze zestawy rysowały rewolwer. Potem Apple zastąpił go pistoletem na wodę i w ciągu dwóch lat poszły za nim pozostałe duże zestawy. Sam znak się nie zmienił: ten sam numer, ta sama nazwa. Zmienił się wyłącznie rysunek — a wraz z nim to, co rozumie odbiorca.

Z twarzami jest podobnie. 😅 w jednym zestawie czyta się jako ulga, w drugim jako panika; 🙂 bywa przyjazny, a bywa wyraźnie złośliwy. Nadawca wybiera po swoim obrazku, czytelnik odczytuje po swoim.

Jeśli wiadomość jest ważna, a jej ton wisi na jednym znaku, sprawdź go na karcie: 😀, 🔥 i każdy inny pokazujemy od razu we wszystkich trzech zestawach. Jeśli rysunki się rozjeżdżają, lepiej dopisać ton słowami.

Który zestaw wziąć do własnego projektu

Jeśli robisz stronę albo aplikację i wolisz nie zależeć od tego, co czytelnik ma zainstalowane, zestaw obrazków dołącza się do projektu. Decydują trzy rzeczy, a «ładniejszy» nie jest jedną z nich.

  1. Licencja. Apache 2.0 przy Noto i CC BY 4.0 przy Twemoji wymagają wskazania autorstwa. CC BY-SA 4.0 przy OpenMoji wymaga dodatkowo udostępniania przeróbek na tych samych warunkach — to ważne, jeśli planujesz zmiany stylu.
  2. Kompletność. Jeśli w projekcie są flagi, zestaw bez plików flag trzeba będzie uzupełnić ręcznie.
  3. Waga. Trzydzieści megabajtów wobec dziewięciu to różnica w szybkości strony wszędzie tam, gdzie znaków jest dużo: w katalogu, w top 100, na liście.

I czwarta rzecz, o której przypomina się późno: świeżość. Zestaw spóźniony o wydanie zostawi cię bez obrazków do wszystkiego, co nowe — co i kiedy wyszło, widać na stronie wersji Emoji.

Jak porównać samemu

Nie potrzeba niczego szczególnego. Na karcie każdego znaku pokazujemy wszystkie trzy rysunki obok siebie — otwórz rakietę, czerwone serce albo kciuk w górę i popatrz. Osobna strona o zestawach obrazków zbiera je razem z licencjami i odnośnikami do źródeł.

A jeśli chcesz wiedzieć, dlaczego ten sam znak ma we właściwościach dwa różne numery wersji, rozłożone jest to w artykule o dwóch wersjach emoji.

Wniosek jest krótki. Znak jest jeden, rysunków dowolnie wiele i żaden nie jest tym właściwym. Trzymanie tego w głowie przydaje się bardziej niż spór o to, czyj uśmiech jest poprawny.

Znaki z tego materiału

Każdy ma własną stronę: znaczenie, słowa kluczowe, kody dla programistów i wygląd na innych platformach.