最近 iPhone で絵文字を送受信する方法について gmail を使う方法が報告されています。
しかし私の場合は SMS で家族とやりとりする機会が多いため gmail を使うことは出来ません。
そこで、Nokia の端末で行われていたフォントファイルを加工して SMS で表示だけでも出来ないか調べてみました。
ファームウェアを2.1にバージョンアップして脱獄した後、フォントファイルの構成を調べてみたところ、基本的に日本語の表示は標準文字の HiraginoKakuGothicProNW3.otf とボールドタイプの HiraginoKakuGothicProNW6.otf という2つのファイルで構成されていました。
これらのファイルは、/System/Library/Fonts/Cache にあります。
2.0のファームではこれ以外に /System/Library/Fonts/arialuni.ttf にも日本語のフォントが含まれていましたが、2.1では含まれなくなり、上記の2ファイルを対象に調査する事にしました。
まず、FontForge を入手しフォントファイルをいじれる環境を作りました。
Notes カレンダーの転送用に Cygwin の環境を作っていたので、ここに X-Window 環境を追加して
Cygwin 版のFontForge をインストールしてみました。
しかし、少々不安定でよく落ちるため、少し作業してはセーブするということの繰り返しで効率が悪く困っていました。
少し調べてみると最近"
Windows 版 fontforge 簡単 お手軽パッケージ"なるものが再公開されていましたので今はこちらを使わせてもらっています。
メニューが日本語化されているためとても使いやすく、動作の方も落ちることなく安定しているので作者の方には感謝感謝です。
フォントがいじれる環境が出来たので、HiraginoKakuGothicProNW3.otf に絵文字をマージしてみました。
FontForgeでマージする絵文字は
ソフトバンクのサイトからgifイメージをダウンロードしbmpフォーマットに変換後、
potrace で svg フォーマットにして FontForge で取り込んでいきました。
絵文字入りのフォントが出来たら同じ名前で HiraginoKakuGothicProNW3.otf に書き出します。
このフォントファイルを、/System/Library/Fonts/Cache に戻します。
ここで、SMSアプリを起動したのですが、SMSのアプリでは豆腐(□)のままで何も表示されません。


そこでフォントの生成が正しく出来ているかどうか確認するため、 SMS の DB を次のコマンドでファイルに出力し textReader で表示してみることにしました。
sqlite3 /var/mobile/Library/SMS/sms.db "select * from message" > sms.txt
textReader ではフォントに HiraginoKakuGothicProNW3.otf のファミリーネームである HiraKakuProN-W3 を設定し、先ほど抽出したテキストファイルを開きました。

すると、テキストファイルの中にある絵文字が正しく表示され、フォントの生成が正しく行われていることが確認できました。

日本語フォントに絵文字を追加したのになぜ利用されないのか謎でしたが、strings コマンドで MobileSMS の中をダンプしてみると、Helvetica という文字が見つかったので今度は絵文字入りのフォントファイルを Helvetica として生成する事にしました。
これは、日本語の文字コードエリアのみに日本語フォントが使用され、絵文字のエリアは日本語と認識されないのでデフォルトの Helvetica が使用されているのではないかと考えたからです。
FontForge の エレメント -> フォント情報を開いて、「フォント名」、「ファミリー名」、「表示用の名前」をすべて Helvetica に変更しフォントファイルを生成しました。
この時フォントファイルのタイプを otf から ttf に変更して Helvetica.ttf という名前でフォントファイルを作れば、CGFontCache.plistを修正することなく使用できます。


こうして、作成したフォントファイルを /System/Library/Fonts/Cache にコピーした後、MobileSMS.app を実行すると、以下のように絵文字が表示されるようになりました。
予想が的中しました。(^^)


後はいかにして絵文字を入力するかですが、これは個人辞書の登録が出来るようになるまでしばらくお預けですね。
まあ、絵文字が読めるようになったのでiPhoneの弱点が少しカバーできたと思います。
以下に絵文字一覧を置いておきます。
元の絵がアニメーションGIFだったり、複雑だったりして potrace でうまく変換できていない文字は、これから一つずつ手修正していきたいと思います。






ソフトバンクの絵文字は「※ソフトバンク絵文字を営利目的でホームページ、ソフトウェア、書籍等で利用される場合は、事前にご連絡をいただく必要があります。なお、個人的に使用される場合はご自由にお使いください。」とあるので、これを元に絵文字フォントを作って配布するのっていいのかな?
マージ作業は各自でやってもらうとして。(^^ゞ
← ポチッとね。
テーマ:iPhone - ジャンル:携帯電話・PHS
- 2008/09/23(火) 07:51:30|
- iPhone
-
| トラックバック:1
-
| コメント:1
今回、絵文字を取り込まれた文字コードの範囲は SoftBank の文字コード範囲なのですよね?原理的には、docomo の文字コード範囲に docomo の絵文字を取り込めば(かぶってなければですけど)、docomo の絵文字も表示できるようになるのですかね?もしそうなったらスゴいですよね。iPhone の弱点と言われているところが一気に解決しちゃいますね!
- 2008/09/24(水) 16:52:52 |
- URL |
- さし #-
- [ 編集]
なんで絵文字表示が出来る事が判って
朝から帰宅を楽しみにしていたときに限って
サーバートラブルが発生するのでしょうかorz
というわけでテンションがた落ちなので今日は
文字のみで説明しときます。
密かに脱獄してフォントの書き換えを1ヶ月くらいやっ...
- 2008/09/25(木) 02:39:44 |
- ビストロT-TOP!!…になる予定