702NK フォント入れ替え

僕が今持っている携帯の1つであるVodafoneのV702NKなのだが、日本語のシステムフォントが大きすぎて不恰好だという声がよく聞かれ、システムフォントの入れ替えをする人が多い。
V702NKはSymbian OS上で動くスマートフォンでもあるので、ネット上に転がっているSymbian用のシステムフォントをPC経由でV702NKに転送することにより簡単に入れ替えることができる。具体的な方法はtkhs氏の覚書や津邑公暁氏のPalm.RogueLife.org、ぐらとらいだー氏の俯瞰風景。などに詳しく書かれているが、要するに、gdrファイルというフォント用のファイルをNokia PC Suiteを使って端末に転送することになる。
702NKで使われているシステムフォントには2種類あり、大きいほうのシステムフォント(JapanPlain16.gdr)は、画面下部のナビゲーションや待受画面上部のオペレータ名、メニュー、メール本文などに用いられる。それより小さい文字(JapanPlain12.gdr)のほうは、メニュー画面のアイコン下部の文字などに使われている。ネットなどから入手したgdrファイルをJapanPlain16.gdrまたはJapanPlain12.gdrというファイル名にリネームして、Nokia Phone Browser上のC:(フォンメモリ)またはE:(外部メモリカード)ドライブの直下にSystem\Fontsというディレクトリを作ってその下に転送し、端末を再起動すれば、システムフォントが置き換わるしくみである。
津邑氏のサイトには、M+フォントや東雲フォントなどの非常に美しいフォントのgdrファイルが既にいくつか公開されているので、それをダウンロードすればそのまま使うことができる。が、自分で好きなフォントを組み合わせてgdrファイルを自作することも可能だ。
僕は、昨年シンガポールで買ったNokia電話機のシステムフォント(MacのChicagoみたいなフォント)がちょっと気に入っていたので、702NKもそんな感じのフォントにしてみたいという気持ちがあった。そういうわけで、702NKにChicagoフォント(またはChicagoライクなフォント)を入れることに挑戦したのである。
まず、必要なものを用意する。
Symbian用のフォントファイルはgdrファイルなのだが、このgdrファイルは、ライセンス上、誰でも勝手に公開するということはできない。ネット上に広く流布しているファイルは、Adobe社の規格であるbdfフォーマットのフォントファイルが多い。従って、bdfファイルからgdrファイルに変換するツール(プリプロセッサ)が必要である。
プリプロセッサとして、bdf2gdr.plというPerlスクリプトがフリーで公開されている。これと、NOKIA社が公開しているSymbian SDKの中に含まれているfnttran.exeとを使って、bdfからgdrファイルに変換するのである。
Windows上でPerlスクリプトやfnttran.exeを動かすためには、もちろんPerlの実行環境が必要だ。これはActivePerlなどのフリーのものがインストールされていればよい。
bdfファイルは、普段WindowsでおなじみのTrueTypeフォントから変換して作成することができる。そのためのツールはWFONTXとFontx2BDFだ。
PC用の日本語フォントはShift-JISベースのことが多いのだが、Symbian OS上で動くフォントはすべてUNICODEに統一されているので、漢字コードをShift-JISからUNICODEに変換するマッピングテーブルが必要である。これは津邑氏のところで用意されている。
また、Vodafoneの携帯電話に使われる絵文字を表示させるためには、絵文字記号用のフォントも用意しなければならない。これも津邑氏のところで用意されている。
つまり、Windows上でgdrファイルを作成するのに必要なものは、

  1. bdf2gdr.pl津邑氏のサイトからダウンロード
  2. fnttran.exeが入っているSeries 60 SDKs for Symbian OSForum NOKIAからダウンロード(事前にユーザ登録要。英語)
  3. ActivePerlここからダウンロード(英語)
  4. WFONTXFontx2BDF
  5. UNICODE変換マッピングテーブル、絵文字記号用フォントSYMBOL12.HEXSYMBOL16.HEX津邑氏のサイトからダウンロード

ということになる。さっそく用意して、Cドライブ直下にbdfというディレクトリを作り、WFONTX.*、WFONTXRC.H、bdf2gdr.pl、SYMBOL12.HEX、SYMBOL16.HEXをその中に入れた。Fontx2BDFを解凍してできたfontx2bdfという名前のファイルは、fontx2bdf.plにリネームしてbdfディレクトリ内に入れた。
準備を整えたあと、いよいよ元となるフォントを入手する。どうせChicagoフォントを入れるなら、日本語のほうもMacライクにOsakaフォントなど入れてみようと思って、TrueTypeのChicagoフォントとOsakaフォントをネット上からダウンロードした。これらのフォントはコントロールパネルなどを使って「インストール」しておかなければならない。
WFONTX.EXEをダブルクリックして開くと、インストールしてあるフォントのリストが画面左側に並んでいる。
WFONTX画面
その中から「Osaka-等幅」を選択する。そして画面右側のHeightに「15」Widthに「7」を入れる。FontX Nameは適当に「osaka」とでも入れておき、FontX Typeのところで「KANJI」にチェックを入れる。Save Nameには「osaka.mnf」と入れて、「NonStop!」ボタンをクリックすると、bdfフォルダ内に「osaka.mnf」ファイルができる。
次に半角カナ用、英数字用のmnfファイルを作る。
Font: Osaka-等幅
Height: 15
Width: 7
FontX Name: osakar
FontX Type: ANKにチェック
Save Name: osakar.mnf
として「NonStop!」ボタンをクリックすると、半角カナ用のosakar.mnfファイルができる。次にFontにChicagoを指定し、Height: 15、Width: 7、FontX Name: chicago、FontX Type: ANKにチェック、Save Name: chicago.mnfとして「NonStop!」ボタンをクリックし、英数字用のchicago.mnfファイルを作る。
そのあと、fontx2bdf.plスクリプトを使って、mnfファイルをbdfファイルに変換する。MS-DOSプロンプト(コマンドプロンプト)を立ち上げ、


C:\Documents and Settings\ahoaho>
cd \bdf
C:\bdf> perl fontx2bdf.pl osaka.mnf osaka.bdf
C:\bdf> perl fontx2bdf.pl osakar.mnf osakar.bdf
C:\bdf> perl fontx2bdf.pl -a chicago.mnf chicago.bdf ← オプション「-a」をつけるのを忘れないこと

というコマンドを打つ。そうすると、bdfディレクトリ内に「osaka.bdf」「osakar.bdf」「chicago.bdf」の3つのbdfファイルができる。gdrファイルを作るためには、漢字用・半角カナ用・英数字用の3種類のbdfファイルが必要なのである。
そしていよいよ、bdf2gdr.plの出番である。

C:\bdf> perl bdf2gdr.pl -16 osaka.bdf osakar.bdf chicago.bdf

と打つ。オプションの「-16」は、702NKのシステムフォント「JapanPlain16.gdr」を生成するためのものである。「JapanPlain12.gdr」を生成するためには、オプションに「-12」を指定する。引数は、順番に、漢字用bdfファイル名、半角カナ用bdfファイル名、英数字用bdfファイル名を指定する。
そうすると、


You’ve got unicode bdfs 3316.bdf and gd file `3316.gd’.
The UID of the font is [215704575].

Okay, now run
——————————————————————
fnttran 3316.bdf 3316.gd JapanPlain16.gdr
——————————————————————
and you will get `JapanPlain16.gdr’ font file. enjoy!

という表示が出て終了する。この「3316」とか「215704575」とかいう数字はランダムに生成され、実行するたびごとに異なった値になる。この場合は、実行後、「3316.bdf」というファイルがbdfディレクトリ内にできているはずなので、

C:\bdf> fnttran 3316.bdf 3316.gd JapanPlain16.gdr

と打てば、JapanPlain16.gdrファイルが出来る。
Windowsのデスクトップ上に「System」というフォルダを作成し、その中に「Fonts」というフォルダを作成してその中にこのJapanPlain16.gdrファイルを突っ込む。そして、NokiaSuiteを立ち上げ、702NKを接続してNokia Phone Browser上で電話機内の「C:」ディレクトリの直下に「System」フォルダごとドラッグしてから、電話機を再起動すると、ちゃんとシステムフォントが変わっていた。
ただ、英数字の「M」とか「W」「m」などの幅の広い文字が、両端が切れていてちゃんと表示できない。WFONTXで指定したWidthのピクセル数の幅で各文字が切られてしまうので、幅の広い文字は両端が切られてしまうのだ。
chicago.bdfファイルをテキストエディタで開いてみる。ここのサイトでBDFフォーマットの詳しい仕様の説明が書かれているので、これと見比べながら、「M」「W」などの幅広文字について個別に手作業で修正することもできるのだが、めんどくさい。
しかたないので、自分でツールを使ってChicagoフォントをbdf化するのはあきらめ、既にChicagoフォントのbdf化されたものがネットに転がってないだろうかと、ネット上を探すことにした。
すると、http://www.rockbox.org/fonts/に「xtal-14.bdf」というのがある。これがChicagoライクなので、これを頂戴し、さきのosaka.bdf、osakar.bdfと組み合わせて

C:\bdf> perl bdf2gdr.pl -16 osaka.bdf osakar.bdf xtal-14.bdf

で合成することにした。しかし、このように打つと

!!! Error !!! BDF `xtal-14.bdf’ has invalid charset (fontspecific-1).

というエラーが出る。どうやら「fontspecific」という言葉が悪さをしているらしい。ためしにxtal-14.bdfファイルをテキストエディタでのぞいてみると、
CHARSET_REGISTRY “FontSpecific”
という行があった。そこで最初に作ったchicago.bdfファイルで同じようなエントリを探してみると、
CHARSET_REGISTRY “ISO8859”
と書かれている。そこで、xtal-14.bdfファイルのFontSpecificという文字をISO8859に書き換えてもう一度bdf2gdr.plを走らせてみると、今度はちゃんと通った。
こうしてできたシステムフォント。ちょっと海外携帯っぽくてカッコイイかも。
スクリーンショット1 スクリーンショット2
ちなみにJapanPlain12のほうは東雲12をそのまま使っている。
ただし、こうしたフォントの入れ替え行為はNOKIA、Vodafoneのサポート外になるので、実行する場合はあくまで自己責任のもとで。

Technoratiタグ: | |

Posted

in

,

by

Tags:

Comments コメント

7 responses to “702NK フォント入れ替え”

  1. LOVE!? Avatar

    今度はフォント作成ですか?

    某掲示板の702スレを見ていると、702NK2が出るとか、フォント作成の話題で盛り上がっているようです。フォント作成、私もやってみたいとは思うんですが、難しそう…

  2. PukiWiki/TrackBack 0.2 Avatar

    TTFからフォント作成

    フォント TTFからフォント作成<目次> † TTFからフォント作成<目次> TTF→GDRフォントの変換方法 T…

  3. PukiWiki/TrackBack 0.2 Avatar

    フォント

    V702NKのフォント入れ替え <目次> † V702NKのフォント入れ替え <目次> 標準のフォントについて 入れ替…

  4. han Avatar
    han

    ちょっとお聞きして良いですか?ほとんどのPDFファイルが私の702NKⅡでは読めないんですがフォント入れ替えで読めるようになるですかね?

  5. Anonymous Avatar
    Anonymous

    >han様
    はじめまして。
    うーん、私はやったコトないのでなんともいえないですが・・・
    人柱になってためしてみてうまくいったら教えてください。
    ちなみにNKⅡだとC:\System配下にフォントファイルを置かないとうまくいかないみたいです。

  6. Yuki Avatar
    Yuki

    あ、名前消えちゃったみたいですが上の書き込み私のです。

  7. ネットビジネス用CGI Perl HTML Javascriptの情報サイト Avatar

    その他の文字装飾

      数回に分けて文字装飾の方法について、説明してきましたが、今回は「その他の文字装飾」について書いていきます。

    今回説明するHTMLの…