syghの新フラグメント置き場

プログラミングTipsやコード断片の保管場所です。お絵描きもときどき載せます。

ライセンスゆるめの日本語無償フォント

(これは2010-10-16に書いた故OCNブログの記事を加筆修正したものです)

当方お勧めの無料で使える日本語フォントです。漫画やイラスト、Webサイト/ゲーム制作などで使えます。いずれも商用利用可ですが、不特定多数に公開する作品などで利用する際は事前・事後連絡が必要なもの、ライセンス表記/ライセンスファイルの添付が必要なもの、またフォントデータ自体の二次配布を禁止しているものもあるので、詳しいライセンス運用形態はそれぞれの公式フォント配布サイトで確認してください。

「梅フォント」はUbuntuのUIに使っている人もいるらしいです。なんでもJIS 2004対応だそうで。パッケージは.7zという見慣れない圧縮フォーマットですが、Windowsユーザーの方はExplzhなどでどうぞ(Explzhは非常に良くできたアーカイバで、拡張性や機能性が高く更新も頻繁です)。
なお、「SOフォント」や「DQフォント」は原作ゲームの著作権的にはどうもグレーな感じがします*1。そのあたりは自己責任でどうぞ。おそらく二次創作の範疇に入ると思われるため、一般流通ルートで販売される作品に原作ゲームの許可を得ず使用するのは危険な気がします。*2

Windows標準の日本語フォントである、「MS 明朝」、「MS ゴシック」、そして「メイリオ」と比較した、MS Office Word 2007上のスクリーンショットは下記(超適当)。*3

https://sygh-jp.github.io/content_hosting/software_ss/jp_font_test_01.png

Unicodeの対応度を調べるつもりで、ハートマーク(U+2665H)と版権マーク(U+00A9H)を表示させてみたところ、実際に対応しているらしいのは「梅フォント」だけでした。スクリーンショットでは「しねきゃぷしょん」や「みかちゃん」も表示できてるっぽく見えますが、Wordではマッピングできない文字があるとき、場合によってはドキュメントの既定のフォント(日本語版ではデフォルトで「MS 明朝」と「Century」)が使用されるので、実際にゲームなどのアプリケーションで表示させようとすると中黒(・)とか豆腐(□)になってしまうんではないかと。通常のGDIであればフォントリンク、WPFやDirectWriteであれば合成フォント機構があるので、表示できない文字はデフォルトでメイリオあたりが代わりに使われるはずです*4。いずれWPF/DirectWriteで表示させるサンプル プログラムでも作ろうかと思います。

あと「梅ゴシック」のASCIIバックスラッシュ(U+005CH)が円記号ではなくバックスラッシュになってるのは謎です……たぶん「梅明朝」とは違ってプログラミング用途のテキストエディターなどで使われることも想定して、円記号ではなくバックスラッシュのグリフが用意されているものと思われます。

各種日本語フォントの表示をJavaScriptでテストできる便利なサイトも見つけました。これはサーバーサイドにフォントがインストールされているようです。

http://fonthack.jp/

最後に

英数字のフォントはせいぜい100文字程度なのに対して、日本語のフォントはJIS第一水準でも3,000文字近くにのぼります。日本語のフォントが概して高価なのも納得できます。デジタルデータはコピーが簡単なので、時として忘れてしまいがちですが、イラストやフォントの制作には膨大な労力がかかっていることを忘れないようにしましょう。
なおダイナフォントなどのように、商用利用する際には追加の使用料が発生する製品もあります。

*1:フォントもロゴと同じく本来は意匠権で保護されるべきですが、日本という国の制度では2014年時点で対象になっていないそうです。

*2:「~風フォント」を使用するときに注意すべき事例として、今回あえて列挙しました。

*3:ちなみに「MS 明朝」、「MS ゴシック」、「メイリオ」はUnicodeに完全対応していません。カバーしているのはJIS 2004規格のみだそうです。「Arial Unicode MS」はUnicode 2.1規格に対応しているそうです。http://edn.embarcadero.com/jp/article/38786

*4:GDIのフォントリンクはWPF/DirectWriteの合成フォントよりも精度や柔軟性が低く、文字によっては適切なフォントにマッピングされず正しく表示できないということがときどきあります。今回の例でいうとあずきフォントおよびみかちゃんフォントの未対応文字がマッピングされず空白のままになっています。