2016年5月14日土曜日

Windows上のFontForgeで1バイトかなフォントを2バイト化する

from 『ぱくたそ

かなこん』公開後にいただいた報告の中に、「そもそもウチの端末では1バイトフォントが表示できない」というものがありました。

……端末が○○なせいで好みのフォントが使えない、ってのも癪ですので、FontForgeを使って2バイト化してみましょう。

ただ、このための方法はググっても Mac や Linux でおこなうものばかりですので、このエントリではWindows上でおこなってみました(Windows10でおこないましたが、7でも同様におこなえると思います)。


用意するもの


○ 必須のもの
  1.  Windows上で動くFontForge
  2.  2バイト化スクリプト
1. Windows上で動くFontForge」はググればいくつか見つかるのですが、ここでは『unofficial fontforge-cygwin』を使いました。インストール作業が簡単な上にメニューが日本語なのもポイント高いです。

2. 2バイト化スクリプト」 はココからダウンロードできます。このスクリプトは、こちらのエントリを参考にさせていただきました。FontForgeスクリプトは、本来なら拡張子「.pe」とするのが普通なのですが、Windows上で使う分には何でも構わないので、「.txt」にしてあります。


○ あると便利なもの
  1.  テキストエディタ
2バイト化作業自体には不要なのですが、スクリプトファイルを編集したい場合などにはテキストエディタがあると便利でしょう。Windows上でのFontForgeスクリプトは文字コードや改行文字種を問わないようですので、「メモ帳」でも構わないと思いますが、上記した「2バイト化スクリプト」は「文字コード:UTF-8、改行:LF」で書かれていますので、それらを扱えるテキストエディタがあると便利です。


インストールと下準備

『unofficial fontforge-cygwin』の準備


サイトから『unofficial fontforge-cygwin』の圧縮ファイルをダウンロードし、Cドライブ直下に解凍しておきます。


フォルダ内にある「fontforge.bat」をダブルクリックします。



すると、必要な実行環境等の解凍とインストールが自動でおこなわれます。


終了間際にファイアウォールの警告が出ますので、【アクセスを許可する】をクリックします。


以下のように、「ファイルを開く」ダイアログが表示されたらインストール完了です。ここでは一旦【キャンセル】をクリックして終了しておきます。以降は、フォルダ内にある「fontforge.bat」をダブルクリックすれば、FontForgeが起動し、「ファイルを開く」ダイアログが表示されます。


スクリプトとフォントファイルの準備


fontforge.bat」と同じフォルダに、スクリプトと「変換したい1バイトかなフォント」ファイルをコピーします。


ここでは1バイトかなフォントに「ガウプラ」の「たんぽぽ」を使いました。


これで準備が終わりました。


変換作業

フォントファイルの読み込み


fontforge.bat」をダブルクリックし、「フォントを開く」ダイアログで変換したい1バイトかなフォントを選び、【OK】をクリックして読み込みます。


これが1バイトかなフォントを読み込んだ画面です。英数字にかな文字が割り当てられているのがわかるかと思います。


「文字デケェな」と思ったら、メニューの【表示】→【24 ピクセル アウトライン】など小さめの表示を選んでみてください。


スクリプトの実行


メニューの【ファイル】→【スクリプトを実行…】を選んでください。

下図のような「スクリプトを実行…」ダイアログが表示されますので、ラジオボタンを【FF】のほうにチェックし、【呼び出す…】をクリックします。


表示される「スクリプトを呼び出す」ダイアログで、2バイト化スクリプト(conv122.txt)を選び、【OK】をクリックします。


すると「スクリプトを実行…」ダイアログに戻るのですが、下図のようにテキストボックス内に選んだスクリプトのパスが入力されています。


テキストボックスをクリックしてキャレットを出し、一番最後のカッコ内に「1」と入力します。この数値は『ひらがなへの変換』を意味する「変換モード値」となります(後述)。


【OK】ボタンをクリックするとスクリプトが実行され、実行が完了するとダイアログが消えます。


いくつかの文字を残して、文字がなくなってしまっていることがわかるでしょう。ウィンドウ右端のスクロールバーをザザーッと下へスクロールしていくと、かな文字が正しいところ(ひらがな)へ移動しているのが見つかるはずです。先述したように、「変換モード値」として「1 (ひらがなへの変換)」を入力したので、文字がひらがなへ移動しています。


「スクリプトを実行…」ダイアログの一番最後のカッコ内に「2」と入力すると、カタカナに移動します。


また、「3」と入力すると、ひらがなカタカナの両方に移動します。




移動箇所の修正


もう一度、画面を一番上までスクロールさせてみると、「う゛(うの濁音)」という字形が残されているのがわかります。


このスクリプトは一般的な文字のみを移動させるもので、このような「このフォントだけにある特別な字形」はそのまま残します。

この「う゛(うの濁音)」をクリックして選択し、メニュー【編集】→【切り取り】か、「CTRL + X」でカットします。そして、画面をスクロールし、ひらがなにある「う゛(うの濁音)」をクリックして、そこへメニュー【編集】→【貼り付け】か、「CTRL + V」で貼り付けます。



これで「う゛(うの濁音)」を正しい箇所に移動できました。他にも残された字形があれば正しい箇所に移動しましょう。

また、この画面の下の方にある「¥(全角の円記号)」に「ー(長音記号)」の字形が割り付けられているのがわかるでしょうか。


これは、1バイトかなフォントでは本来は「ー(長音記号)」は「\(バックスラッシュ)」に割り当てるのですが、「\(バックスラッシュ)」がフォントによっては「\(半角の円記号)」と表示されるものがああるため、(フォント作者のサービス精神で)「全角・半角どちらの円記号にも長音記号を割り当てる」ということをしているのだと思われます。
ただ、「¥(全角の円記号)」に「ー(長音記号)」の字形が割り付けられているのを残したままの2バイトフォントでは、「¥1,000」を表示したときに「ー1,000」と表示されてしまい、ややこしいことこの上ないですw

ですので、この 「¥(全角の円記号)」をクリックして選択し、メニュー【編集】→【Clear】で削除しておきましょう。




他にも残されているとマズそうな文字は削除しておくと良いでしょう。

また、以下の図はフォントファウンドリー・イアイ・ジェイピー」の「Pollen」を変換したものですが、「っ(ツの促音)」と「づ(ツの濁音)」が入れ替わってしまっています。


これは、スクリプトに記述されているフォントの割り当てと、「Pollen」内部の割り当てが異なっているためです。

このような場合には、いったん「づ(ツの濁音)」をどこか使われていない箇所へ移動してから、


「っ(ツの促音)」を正しい箇所へ移動し、その後「づ(ツの濁音)」を正しい箇所へ戻しましょう。



上記したような修正作業を必要なだけおこなってください。


フォントの出力


メニューの【ファイル】→【フォントを出力…】を選んでください。


表示される「Generate Fonts」ダイアログで、新しいフォント名をつけて【生成】ボタンを押します。チェックボックス等はデフォルトのままで差し支えないでしょう。


「非標準のEMサイズ」という警告ダイアログが出ることがありますが、構わず【はい】をクリックしてください。


他にも警告ダイアログが出ることがありますが、大抵の場合すべて無視する方向で構いません(下図の場合は【生成】)。


フォルダに新しくフォントが生成されるので、ダブルクリックして確認してください。


これで終了です、お疲れ様でした。FontForgeの終了はメニュー【ファイル】→【閉じる】か、ウィンドウ右上の閉じるボタンで閉じてください。その際、フォントが変更されている旨のダイアログが出ますが、オリジナルをそのまま残しておくために【保存しない】を選んでください。


応用編


1バイトかなフォントは、「ひらがな用」「カタカナ用」が別フォントになっていますが、2バイトフォントは1つのフォントファイルにひらがなカタカナ両方を一度に収めることが可能です。

FontForgeは複数のフォントファイルを開き、それらの間でコピペが可能ですので、「ひらがな用」「カタカナ用」両方を含んだ2バイトフォントを作ってみましょう。

「Pollen」には「ひらがな用(PollenHKF.TTF)」 「カタカナ用(PollenKKF.TTF)」「アルファベット用(PollenAlph.TTF)」の3つがあります。


これらすべてをFontForgeフォルダにコピーし、「ひらがな用(PollenHKF.TTF)」 「カタカナ用(PollenKKF.TTF)」2つについて上記手順で2バイト化します。このとき、「ひらがな用」はひらがなのみに、「カタカナ用」はカタカナのみに割りつけるよう変換モード値を設定してください。


FontForgeで「アルファベット用(PollenAlph.TTF)」を開き、メニュー【ファイル】→【開く】から、先ほど生成した2バイトしか「ひらがな用」 を開きます。

「ひらがな用」フォントから、「SHIFT + ドラッグ」でひらがな字形を連続した領域まとめて選択し、それを「アルファベット用」フォント側の該当する箇所にペーストします。このとき、コピーした領域内に字形が割り当てられていない部分は削除されてペーストされますので注意してください。


「カタカナ用」フォントについても同様に処理し、「アルファベット用」の中にひらがな・カタカナ両方ペーストし終わったら、 メニュー【ファイル】→【フォントを出力…】でフォントを生成してください。



注意:変換したフォントの配布について


大抵のフォントには、「改変」や「再配布」に対して何らかの制限がかけられていることが多いです。ここで紹介した方法で2バイト化することは「改変」に当たりますし、個人で使用するだけでなく「友人にメールであげる」ことは「再配布」に当たりますので、オリジナルの1バイトかなフォントのライセンスをよく確認するようにしてください。



以上

0 件のコメント:

コメントを投稿