海外携帯開発におけるフォント問題

立ち位置説明

一応、私はCTOとして参加しているんですが、JAVAは私が参加する前からラインがあったので、テストの体系やタスク管理では入りますが製造方針は任せてます。
ということで、JAVAについてはどうしようもない問題が起こった場合の調査、JAVAが通信するためのライブラリ作成などくらいで、基本的には出来上がったものを見て「おーでけたでけた」と喜ぶのが主な仕事です。
後は判断するくらいですね。


あまり開発の詳細な情勢は私もわかっていないということで。

がちんこテニス競争の画像

なんか余白があるなぁと気になってはいたんですよ。

これ、思い出したんですが、フォントサイズの問題で、実機で見るとこんなに余白無いです。
モトローラNOKIAやLGやPCのエミュレータで最小フォントサイズにかなりの相違があって、特にLGのフォントが巨大です。
PCエミュレータで見ると問題がある状態にしないと、逆に携帯では綺麗に表示されません。


スクリーンショットをとる時はPC上でとります。
ということで、上記のような余白が発生します。

問題解消に向けて

結構これは由々しき問題でして、Nokiaの端末AとBでも違いがある事があります。
こうなってくると、仕様上同一に見えても全端末テストが必要で、一定以上の品質を確保するには全端末用ソースコードが必須になってくるのでしゃれになりません。
日本の携帯は、この点キャリアが統括している分キャリアによる品質チェックが入るため仕様統一が結構できていて、携帯開発の皆さんは「それでも機種ごとの差異を吸収するのは大変なんだよ」と言うかとは思いますが、海外事情よりかなりマシです。
メーカーさんが勝手に自社基準で出しますからね。


ということで、問題解消するには懐かしのビットマップフォントの出番になります。
ビットマップフォントは、システムに入っているフォントを使わずにあらかじめビットマップで全種類の文字を用意しておき、自作の文字列描画命令でこのビットマップを使って描く処理を指していると思ってください。
これを用意する/しないで、工数がかなり変わってきます。
今うちの会社には無いので、フォントの大きさに応じた5パターンくらいのビットマップフォントライブラリを用意しようという話を地道に進めてます。

ベトナム語のビットマップフォントについて

ベトナム語は基本アルファベットベースで、まずは基本アルファベットとして29文字あります。

aâăbcdđeêghiklmnoôơpqrstuưvxy

母音はこれらで、これらには5つの声調記号(記号無しを入れると6つ)がつきます。

aâăieêoôơuưy


つまり、12母音 x 6声調となるため、母音 + 声調で72パターンの文字があります。
これが全部です。

aáàảãạ
âấầẩẫậ
ăắằẳẵặ
eéèẻẽẹ
êếềểễệ
iíìỉĩị
oóòỏõọ
ôốồổỗộ
ơớờởỡợ
uúùủũụ
ưứừửữự
yýỳỷỹỵ
bcdđghklmnpqrstvx

89パターン。
母音と声調記号の合成が出来ればもう少し減りますが、89パターン用意する方がデザイン的にはいいでしょう。
日本語の場合、濁音を除いたとしても平仮名だけで46あって、カタカナを入れて92なので、平仮名とカタカナを用意して「が」とか「ぱ」とかが表現出来ない状態の日本語と同じくらいの量です。
つまり、ファミコンレベル。フォントビットマップの用意だけで考えれば、余裕です。


問題はむしろ、ベトナム語はアルファベット圏だけあって基本はプロポーショナルフォントでの表現になります。
プロポーショナルフォントの反対はFixedPitchと呼ばれる、文字ごとの大きさが固定のフォントで、日本語は「400時詰めの原稿用紙」という表現からもわかるように基本的に罫線で区切られたマスに文字を当てはめていくスタイルなので、FixedPitchです。
プロポーショナルフォントの場合は「i」と「m」の大きさが違うスタイルになり、ベトナム語は一般的にフォントサイズ自由な横書きスタイルなので、ある程度綺麗にしようと思ったらプロポーショナル表現は必須になります。


ベトナム人に任せていると進みが遅いんで、私が作っちゃおうかなぁと。
フォントはゲームによって色々分けたいので、1デザイナー1プログラマーくらいでフォント製造部門みたいのを設けてもいいくらいなんですけどね。残念ながら今の会社には適任者がいないので。
とはいえ、つくづくここがBig3の一角、特に中国でなくて携帯ゲーム開発としては救われています。繁体字のビットマップフォントライブラリなんか用意したら、それだけでゲーム容量がひどいことになりますからね。
多分、中国ならキャリアがライブラリ用意したりしているんでしょうけども。