Open pakutoma opened 3 years ago
Q. なぜ実装するか? A. プログラミングにおいて絵文字は頻繁に出現する(例:GitHubのcommitメッセージ)ようになっており,それを表示するフォントにも必要. A2. Segoe UI Emojiが等幅じゃないから A3. どうせならカラー絵文字が表示できたほうが面白いから
twemojiのモノクロ絵文字は自動生成で,あまり品質が良くない.Noto Emojiのモノクロ絵文字を先に利用して,存在しないものだけtwemojiにフォールバックするのが良いな気がする. モノクロとカラーで絵文字のデザインが違うことに関しては気にしないこととする.私はtwemojiが好きなので.
メモ:Emoji Presentation Sequencesにも対応する必要がある
時は移ろい、だんだんNoto Emojiのほうが好きになってきました Noto Emojiのほうが良いかも。
時は移ろい、最強ツールが誕生していたのでこれを使おうと思います https://github.com/googlefonts/nanoemoji
https://github.com/googlefonts/noto-emoji の生成スクリプトの中でnanoemojiを使っているので、生成時の指定でOT-SVGとCOLRv1を両方指定すればいい感じの絵文字が作れるかもしれない。 ただし、FontForgeがカラー絵文字に対応していないので、フォントの変形・合成をどうするかが問題になる。fonttoolsを使う? また、生成時に縦横1000に出来れば一番合成しやすそうなので、その方法も探ってみる。
fonttoolsもCOLRv1に対応していないらしい。実装するしかない?
fonttoolsはOpenType-SVGには対応しているので、OpenType-SVGを含んだフォントを作成してnanoemojiでCOLRv1の絵文字を追加するのはありかもしれない。ただし、nanoemojiが絵文字以外を含んだフォントで絵文字を追加出来るのかは不明。
COLRテーブルはglyfテーブルの字形を基準に色を乗せる仕組みらしいので、fontforgeで変形しても問題なく動くのかもしれない?という感じになっています
CMAPテーブルのFormat 14(異体字セレクタ)に対応するのも忘れずにやらないといけない
OT-SVGをfonttools mergeでマージしようとしてもエラーを吐いた。異体字セレクタなどの件もあるし、現時点でまともにカラー絵文字を自動的に処理するツールはないと思ったほうが良さそう。 google fontsで配布されるNoto Color Emojiがもう既にOpenType SVGとCOLRv1で出来ているので、これを使ってfonttoolsのTTFontクラスで愚直にテーブルをいじって合成するしかなさそう。
fonttoolsだけを使って全てのフォントを合成することも模索したい。
TwemojiのOT-SVGとCOLR/CPALをどちらも埋め込めばほぼ全てのソフトウェアで動くようになる気がする(気がするだけ) OT-SVG: https://github.com/eosrei/twemoji-color-font COLR/CPAL: https://github.com/mozilla/twemoji-colr