Galaxyスマホの絵文字が気に食わないのでGoogleの絵文字に差し替える

この記事を見ているみなさんの多くはおそらくスマートフォンをお持ちと思いますが、みなさんは絵文字って使っていますか?

もしかしたら人によっては、送信先の携帯会社によっては違う絵文字が表示されてしまう可能性があるから使わないって人もいるかもしれません。

でもそれは過去の話。今は、Unicodeっていう文字の規格に絵文字が入っているため、iPhoneでもAndroidでも、さらにはWindowsでも、″基本的には″同じ絵文字が表示されます。日本国内だけではなく、海外でも同様です。
(iOSやAndroidなどのシステムバージョンが古いと、送信先で絵文字が表示できないという可能性があります)

ですから、相手に表示されない可能性はあっても、違う絵文字が表示されるということはもうありません。
なので、絵文字はもうじゃんじゃん使っていいものになっています。


さて、話は変わりますが、さいきんスマートフォンをGalaxy Note8に変えました。すこし古い機種ですけど、まぁほとんど問題ありません。
しかしこのスマートフォン、Androidなのに絵文字がサムスンによってカスタマイズされていて、なんというかこう、濃いというか、かわいくないというか、気に入らないです。

幸いにもこのスマートフォンには好きなフォントを使うことができる機能が備わっているので、その機能を使ってGoogleの絵文字に置き換えてみようと思います。
Galaxyじゃなくても、Galaxyと同じ「FlipFont」という仕組みを採用しているスマホなら、同じようにフォントを変更できます。

Googleが無料でNoto Emojiっていうフォントを公開しているので、それをFlipfont Managerという野良アプリでインストールし、それを適用してみます。

これでバッチリ…………と思いきや、端末のすべての数字が絵文字になったり、半角スペースがめちゃくちゃでかくなったり、アンダーラインがはるか下に表示されてしまうようになってしまいます。

これじゃ使い物になりません。
幸いにもGoogleはNoto EmojiをGithubで公開しているので、加工した上でビルドしてみようと思います。

環境のセットアップとビルド

というわけでubuntuで開発(?)環境を作ります。
debian使いの人は、sudoを入れるか、superuserで作業するとよいです。
Windowsしかない人は、WSLでubuntuを入れると簡単です。


まずはパッケージリストを更新します。
アップデートまですると時間がかかるので、アップデートするかどうかはお好みで。

パッケージリストを更新したら、必要なパッケージをインストールします。
(※zopfliではなくoptipngでも可。zopfliは圧縮率重視、optipngは速度重視です。好きなほうをどうぞ)

次に、フォントをビルドするために必要なnototoolsをcloneします。

cloneが完了したらそのディレクトリに移動し、必要なソフトウェアをインストールします。

インストールが完了したら、su権限でnototoolsをセットアップします。

nototoolsのセットアップが完了したら、元のディレクトリに戻り、今度はNoto Emojiをcloneします。

同じようにcloneが完了したらそのディレクトリに移動します。

まずは、不要な0~9の記号と、アスタリスク記号、シャープ記号を削除します。
これをやっておかないと、ステータスバーの時計やTwitterアプリのハッシュタグなどが絵文字で表示されてしまいます。

次に、設定ファイルを書き換えます。

書き換えている内容は、横書き時および縦書き時の、

  • 未定義文字
  • マークのない改行文字(?)
  • 半角スペース

の幅または高さと、アンダーラインを引いた時のアンダーラインの位置です。
(違っててどこか文字が化けたらゴメン)
これをやっておかないと、半角スペースがものすごく大きくなってしまったり、
ウェブサイトのリンクなどに表示されるアンダーラインがめちゃくちゃ下に表示されてしまったりします。

ここまで何もエラーなく終わったら、makeしてみましょう。

(※そこそこの時間がかかります)

エラーなくmakeが完了したら、[NotoColorEmoji.ttf]が生成または更新されているはずです。
それをUSBやBluetoothなどでAndroid端末の内部ストレージに転送します。

FlipFont Managerのインストールと適用

ubuntuを使うのはここまでです。
次はAndroidに、FlipFont Managerをインストールします。
野良アプリなので、セキュリティ的に怖いと思う人は、やめておきましょう。

FlipFont Managerはこちらのブログからダウンロードさせていただきましょう。
Androidからアクセスすると楽です。
http://tetsu31415.hatenablog.com/entry/2016/06/12/003615

起動するとこんな画面になります。

「フォントを追加」を押して、転送したNotoColorEmoji.ttfを指定します。
表示名は適当でいいですが、リストに表示される名前になるので、わかりやすい名前にしておきましょう。

フォントを追加したら、「インストール」を押します。

するとフォント用のパッケージが生成され、パッケージインストーラーが立ち上がるので、インストールしましょう。

インストールできたら、「フォント設定」を押すか、設定アプリでディスプレイ設定の画面まで行きます。

「文字サイズとフォントスタイル」の「フォントスタイル」を開き、先ほど追加したフォントを指定します。

これで完了です。
先ほどと同じように絵文字一覧を表示してみるとこの通り、絵文字を置き換えることができました。

これでなんかダサい絵文字ともおさらばです。

備考

  • 数字や一部記号の絵文字を消しているので、一部の合成絵文字が正しく表示されない可能性があります。
  • 削除した数字や一部記号は、必要に応じてシステム標準の絵文字が表示される…はずです。
  • フォント適用後に半角スペースの大きさやアンダーラインの位置が気になるようであれば、書き換えた個所の数値を変更するなどして調整し、make cleanしてから再度makeしましょう。
  • 端末が古くて新しい絵文字が収録されておらず、表示できない絵文字がある場合でも、新しい絵文字を表示することができます。
  • この記事では「FlipFont Manager」という野良アプリを使用していますが、「iFont」という無料のストアアプリでもフォントを追加して適用できる……らしいですが、有料オプションです。野良アプリは怖いという人はお試しあれ(ちゃんと使えるかどうかは試してませんので自己責任で)

 

…ちなみに、今回はNoto Emojiをビルドしましたが、これをベースに別の絵文字イラストを使用した「Blobmoji」というフォントもあります。
https://github.com/C1710/blobmoji

ベースがNoto Emojiと一緒なので、同じように書き換えてビルドすることで、こちらの絵文字を使用することもできます。
Blobmojiは、Android 7.x系までおなじみだった半月状の顔(通称:スライム君)が収録されているので、スライム君に戻したいという人はおすすめです。

追記:なぜフォントを書き換えないと数字が絵文字になったり半角スペースがでっかくなっちゃうの

これについては、フォントについてあまり詳しくないので推測を含みますが、おそらくフォントのフォールバックという仕組みが関係していると思います。

通常、一般的に目にするフォントというのは、100%すべての文字が収録されているというわけではありません。

そのため、システム上でフォントをいくつか用意しておき、それに優先順位をつけておいて、
なんらかの文字コードがやってきたとき、優先度の高い順にその文字を表示できるフォントを探します。

簡単に言うと、以下の動きです。

  1. 優先度1の「フォントA」から文字を探す
  2. 「フォントA」に文字がなければ、優先度2の「フォントB」から文字を探す
  3. 「フォントB」に文字がなければ、優先度3の「フォントC」から文字を探す

これがフォールバックという仕組みです。

おそらく、システムに収録されている絵文字は、上でいう”優先度3″にように、低い優先度になっています。
しかし、一部Androidのフォント変更機能は、上でいう”優先度1″の上に、さらに高い優先度でフォントを追加します。
そのため、フォント変更機能を使用した場合、「フォントA」や「フォントB」を探しに行く前に、追加したフォントを探しに行ってしまいます。

前述のフォールバックの仕組み上、フォント変更機能で絵文字を設定していると、半角スペースの文字コードがやってきた場合、絵文字フォントに含まれる半角スペースの幅を利用してしまい、表示がおかしくなるわけです。
絵文字フォントでは半角スペースが大きい幅となっているため、このような現象が起こります。
(おそらくルールか何かがあってそうしているのでしょう)
通常の場合、絵文字は優先度が低いため、半角スペースが大きい幅になっていても、使用されないため、問題ないのです。

また、一部の絵文字は通常の文字と同じ文字コードを持っています。数字の0-9などがそうです。
これも前述のフォールバックの仕組みに当てはめて考えると、通常であれば「フォントA」の”0″が表示されますが、
フォント変更機能で絵文字を設定していると、優先度が最高になった絵文字の”0″が表示されてしまうというわけです。

ですからこれらの文字や幅を削除したり調整したりすることで、ある程度正しく表示することができるというわけです。

About the author

Add Comment

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

By otas

最近の投稿

アーカイブ

カテゴリー

タグクラウド

コーポレートサイト

メタ情報