Top > Mod > フォントの変更

Mod/フォントの変更

Last-modified: 2019-07-15 (月) 10:36:54

概説 Edit

  1. カスタムフォントの意義・必要性
    • 画面表示を豊かにしたい... 19種類ものフォントを駆使している欧米に比べ、アジアはシステムフォント一つで恵まれない
    • 気分転換... 時おり違うフォントでプレーしたい、変わった数字で戦闘中のダメージ表示などをしたい
    • 文字化けやクラッシュを防ぎたい... システムフォントでのレンダリングだと文字化けを起こしゲームが不安定になる

  2. 前提知識
    • Grim Dawn のフォントは形式上すべて fnt である。
    • fnt 拡張子でありながら、中身は ttf のものが混じっている。


  1. Grim Dawn は、ビットマップフォントならそのまま読み込みますが、中身がアウトラインフォントの fnt と認めた場合は代わりにOSのシステムフォントを使用します。

  2. フォントセットは欧米用とアジア用(中、日、韓、タイ、ベトナム)とで異なっており、欧米用のセットは17種類のビットマップフォントと2種類のアウトラインフォントで組まれ、アジア用は2種類のアウトラインフォントだけで組まれています(実際に使われるのは、システムフォント一つだけです)。このため、欧米型とアジア型とではフォントセットの作り方が異なります。

  3. 欧米型の場合、ゲーム内で表示されるフォントはすべてビットマップですが(ゲームに入る前のメインメニューの一部の項目にはシステムフォントも使われています)、アジア型だとすべての表示がシステムフォントをその場でレンダリングする方法をとっています。ゲーム内のフォント表示がアウトライン生成方式だと、徐々に文字化けを起こし、クラッシュ要因にもなるので、アジア型でもビットマップフォントの使用がベターですが、開発は言語が分からないこともあってこの問題に十分注意を払っていません。


    ※ インストールフォルダにある AssetManager を使えば簡単にフォントを作ることができますが、いくつかサンプルを作成したので、面倒だという人はそれを使ってください。自作したい人は後半の記事を参考にしてください。

二種類の変更方法 Edit

  1. シングルフォント方式(アジア型)
  2. マルチフォントセット方式(欧米型)

  • アジア用に用意されているフォントセット (fonts.arc) には、credit.fnt と その国の language.fnt という二種類のものが入っています。その二つは拡張子が fnt となっていながら実際は ttf の拡張子を書き換えただけのもので、プログラムはそれを見るとその ttf の代わりに表示用のシステムフォントを使います。

  • 欧米型だと credit.fnt と misc.fnt が実体アウトラインフォントの fnt で、読み込まれるのはやはりシステムフォントですが、表示されるのはメインメニュー画面でだけなのでゲームには影響を与えません。この二つをシステムフォントにしているのは、言語欄とクレジットという多国語表示の便宜上のものと思われます。

  • 使用フォントについて
    ここに置いたのはいずれも加工再配布可としているオープンソース/フリーフォントです(SIL/IPA/完全フリーなど)。フリーでも個人使用に制限したものや加工配布を禁止したものものもあるので、作成したフォントを再配布する場合は各フォントのライセンス条項に注意してください。


シングルフォント方式 Edit

  • 特徴
    長所:ファイルが一つだけなので扱いが楽
    短所:画面が単調、地図が見にくい、UIスケールの変化で文字が潰れたり意図したフォントにならない

  • 使い方
    japanese.fnt を次のいずれかのフォルダ(なければ作る)に置く
    \Documents\My Games\Grim Dawn\settings\fonts\ja
    or
    \Grim Dawn installation folder\settings\fonts\ja
    
    [解説] japanese.fnt は、ドキュメントに置いても Grim Dawn インストールフォルダに置いても読み込みますが、
    インストールフォルダに settings フォルダを作成して fonts\japanese フォルダに置いたものが最優先されます。

  • 見本画像について
    • 見本画像は、各フォントの特徴を掴みやすい英名カラフル版を使用。
    • 画像をクリックすると拡大表示され、表示しきれないときは二度目のクリックで100%のサイズになります。

  • サンプルフォントとその特徴
    • Grim Dawnで使っているフォントサイズは12-70まで非常に数多くありますが、それらをすべて入れて一つのビットマップフォントを作ろうとすると、破綻を生じて(決まった容量に重ね書きする感じになり)字が壊れるため、ある程度絞らなければなりません。試行錯誤を繰り返した結果、日本語フォントだと収めるサイズは9‐11種類程度にするのが良いようです。
    • サブセット化してサイズを小さくすればより多くのサイズを入れることができますが、何度か試した結果小さなサイズが無視されるようなので、一つのフォントに入れる場合はサブセット化しないほうが無難です。
    • ここではいずれも、12,13,14,15,16,18,20,23,32 の9種類のサイズのフォントを一つのフォントに入れて作成してます。
    • 設計思想は梅UIフォントを基本にしてキャラクターシートやアイテムの表示をコンパクトにし、マップの地名は源信ゴシックで明確にし、場合によってもう一つフォントを足してアクセントを付けるという方向で行っていますが、いくつか単一フォントのものも作ってみました。
    • 梅フォントについては、(旧)以外のものはゼロの中黒点を削除し、*を*に、~を~に、などの変更を施して違和感のないよう試みています。
    • 一部はフォーラムにアップしていたものと重複しますが、フォントに含めるサイズを見直してすべて新たに作り直してあります。


  • 参考画像:デフォルト
    フォント名デフォルトのフォントスクリーンショット
    特徴英数字が太いデフォルト画面
    クリックで拡大
    長所コンパクトな表示
    短所日本語フォント(MS-UIゴシック)が非常に細くて薄い。PC環境によっては時間が経つと文字化け/クラッシュすることがある。特にメモリリソースを通常の倍消費する Grim Internals を使っているとすぐに文字化けが起こる。
    備考メモリが潤沢に積まれたPCでは、特に問題は起こらないようです。


00x: 小文字にフチを付けないもの Edit

フチを付けるとUIスケールを変えたときに文字が潰れることがあるので、大画面モニターなどでUI上の不具合が生じた人はこれを使ってみてください。

  • 001 源暎ラテゴ(単一)
    フォント名001 源暎ラテゴスクリーンショット
    特徴欧文書体はGrim Dawnにも使われている Linux Biolinum を基礎とする源暎ラテゴ
    クリックで拡大
    長所字が濃く見やすい
    短所字幅が広いのでオプション画面やキャラクターシートの字が重なり、読み取れない部分が生じる
    ダウンロード001 源暎ラテゴ フォント


  • 002 源暎ラテゴ+梅UIフォント(二種混合)
    フォント名002 源暎ラテゴ+梅UIスクリーンショット
    特徴欧文書体はGrim Dawnにも使われている Linux Biolinum を基礎とする源暎ラテゴ+梅UIフォント
    クリックで拡大
    長所クエストログやジャーナル、キャラクターシート、アイテムの内容などの表示が梅フォントでコンパクト
    短所アイテム名は源暎ラテゴなので指輪などの比較表示をすると画面に収まらないこともある
    ダウンロード002 源暎ラテゴ+梅UI フォント


  • 003 Nasu & 004 Migu フォント(それぞれ単一)
    フォント名003 Nasu / 004 Miguスクリーンショット
    特徴ルーツは異なるが、紛らわしい字に違いを付けて判別しやすくするという同じ設計思想で作られたフォント。字幅は広い。Nasu
    Nasu クリックで拡大

    Migu
    Migu クリックで拡大
    003 Nasu の ダウンロード003 Nasu フォント
    004 Migu の ダウンロード004 Migu フォント
    備考フォーラムで、これらのフォントを所望されたので作ってみました


01x: サイズ12-16のフォントにフチを付けたもの Edit

フチを付けるのは、マップの場所名を見やすくする意図です。ただし、UIを拡大するとフォントサイズが変わりフチなしフォントになるのでUIスケールに注意してください。

  • 010 梅UI(旧)+源真
    フォント名010 梅UI(旧)+源真スクリーンショット
    特徴最終的に開発に送ったフォントがこれですが、その後忙しいのか採用を忘れられてしまったようです。もっともデフォルトのままが良いという人も多いらしいので、フォントの変更はプレーヤーが必要に応じて行うのが良いだろうと判断し、開発に採用を促すのはやめています。梅UI(旧)+源真
    クリックで拡大
    長所UIフォントで幅が狭いので、狭いシート内で文字が重なる心配がない
    短所アスタリスクが大きかったりゼロに点がある等やや癖がある。源真の英語フォントがやや大きい。フチの設定が甘く地名がまちまち
    ダウンロード010 梅UI(旧)+源真 フォント


  • 011 梅UI(改)+源真
    フォント名011 梅UI(改)+源真スクリーンショット
    特徴梅フォントのゼロの中心に点があるのが嫌だという人が多かったので、FontForgeで中黒点を削除。(これ以降はすべてこの点を削除した改変梅フォントを使用)梅UI(改)+源真
    クリックで拡大
    長所クエストログやジャーナル、キャラクターシート、アイテムの内容などの表示が梅フォントでコンパクト
    短所源真の英語フォントがやや大きい
    ダウンロード011 梅UI(改)+源真 フォント


1XX: 梅と欧文フォントを合成したもの Edit

特に英名版での雰囲気向上を試みて作成しました。英語名詞版を使用するときは、こういったフォントも面白いものです。


  • 110 梅UI+源真+ZabriskieScript
    フォント名110 梅UI+源真+ZabriskieScriptスクリーンショット
    特徴ローディングチップ、クエストタイトル、アイテム名などに ZabriskieScript という Script 風 Serif を使用ZabriskieScript
    クリックで拡大
    長所梅フォントのコンパクトさと欧文フォントの雰囲気
    短所欧文フォントが筆記体 (Script) なのでやや読みにくい
    ダウンロード110 梅UI+源真+ZabriskieScript フォント


  • 111 梅UI+源真+Brioso Pro
    フォント名111 梅UI+源真+Brioso Proスクリーンショット
    特徴ローディングチップ、クエストタイトル、アイテム名などに 英語版と同じ Brioso Pro を使用Brioso Pro
    クリックで拡大
    長所クエストログやジャーナル、キャラクターシート、アイテムの内容などの表示が梅フォントでコンパクト
    短所欧文フォントが全般的にやや小さくて読みにくい
    ダウンロード111 梅UI+源真+Brioso Pro フォント


  • 112 梅UI+源真+Optima
    フォント名112 梅UI+源真+Optimaスクリーンショット
    特徴ローディングチップ、クエストタイトル、アイテム名などに Optima という優雅な欧文フォント (Medium & Bold) を使用。ローディングチップ、アイテム名、モンスター名などは Ultima、それ以外は Optima を使用Optima
    クリックで拡大
    長所クエストログやジャーナル、キャラクターシート、アイテムの内容などの表示が梅フォントでコンパクト
    短所欧文フォントの極端な字幅が小文字だとやや読みにくい
    ダウンロード112 梅UI+源真+Optima フォント


  • 113 梅UI+源真+Marcellus
    フォント名113 梅UI+源真+Marcellusスクリーンショット
    特徴ゼロが真円の Marcellus というOptima系欧文フォントを使用
    画面右のクエスト表示用にサイズ19を追加
    Marcellus
    クリックで拡大
    長所クエストログやジャーナル、キャラクターシート、アイテムの内容などの表示が梅フォントでコンパクト、数字が面白い
    短所欧文がややせせこまい、数字のゼロが幅をとる
    ダウンロード113 梅UI+源真+Marcellus フォント


欧米言語乗っ取り方式 Edit

  • 特徴
    長所:画面の情報表示が変化に富む、フォントの交換で細かな調整ができる、安定したフチ付きフォントで地図が見やすい、UIスケールの変化に安定している。
    短所:日本語化ファイル中の language.def を書き換える手間がかかる。
[言語の種類]


  • 使い方
    fonts.arc にして gdx1 か gdx2 の resources フォルダに置くのも一法ですが、いろんなフォントをとっかえひっかえして楽しみたいときは、シングルフォント式と同じように settings フォルダに乗っ取り対象言語のフォルダを作ってそこに解凍するのが良いでしょう。
    例えば乗っ取り言語をブルガリアにしたときは、settings\bg フォルダに19種類の日本語フォントを置き、フランスを乗っ取ったときは、settings\fonts\fr フォルダを作って同様にします。どの言語を乗っ取るかは全く自由で、メモ帳を使って language.def の言語設定をその言語に書き換えるだけです。


サンプル Edit

Aはフランス言語、Bはブルガリア言語乗っ取り式なので、language.def の ja を fr (フランス) か bg (ブルガリア) に書き換えてください。
なお、このような欧米言語乗っ取り型フォントセットを作る場合にどの言語を乗っ取るのが良いか、ということはありません。どれでも同じです。

A. フランス語乗っ取り型 Edit

フォーラムにこの方式のフォントセットを上げてくれた人がいるので、そこの記事(第1、第2)を参照してください。
個性的なシンデレラ版と視認性重視版があります。

  • フォントセット二種
    乗っ取り言語フランス語スクリーンショット
    特徴赤薔薇という非常に個性的なフォントセット(シンデレラ版)と、視認性を重視したコーポレート/刻の混成によるセットシンデレラ版
    シンデレラ版 クリックで拡大

    視認性重視版
    視認性重視版 クリックで拡大
    第1記事フォーラム最初の記事:皆でフォントの作り方を模索していたころのものです
    第2記事フォーラム二番目の記事:一応の完成を見たもの。上記二種のフォントセットを更新
    ダウンロードGrim Dawn Mod フォント置き場:上記二種のフォントセットのほか、サブセット用第1水準第2水準漢字テキスト、フォントデータベース、自作用フォントプロジェクトがアップロードされています


B. ブルガリア語乗っ取り型 Edit

欧米型のように多様な表現を実現させるべく十数種類のフォントを組み合わせ、あるいは合成して作成したフォントセットです。フォーラムでは fonts.arc の形で提供していましたが、そのほかに17種のフォントを着せ替え人形のように取り換えて楽しめるよう、バラした状態のものもアップしたので、上記のように Grim Dawn\settings\fonts\bg フォルダを作ってそこにコピーし、各部品をとっかえひっかえしてフォントの変更による変化を試してください。


  • B-1: fonts.arc を置く固定タイプ(フォーラムにアップしたものを再掲)
    乗っ取り言語ブルガリア語スクリーンショット
    特徴ZabriskieScript を主体にしたマルチフォント
    クリックで拡大
    使用法zip ファイルに同梱の readme.txt をメモ帳などで読んでください
    備考Modプロジェクトファイルを添付しているので、各フォントをどのように作成したかが詳細にわかります
    ダウンロード20190515_ja_bg_FontProject (54MB)


  • B-2: Grim Dawn\settings\fonts\bg に解凍する着せ替え人形タイプ
    乗っ取り言語ブルガリア語スクリーンショット
    特徴欧文フォントを読みやすいものにした。交換用フォント付きマルチフォント
    クリックで拡大
    使用法Grim Dawn インストールフォルダに settings\fonts\bg フォルダを作って、そこに zip 内の bg フォルダにある19個の fnt をコピーし、日本語化ファイル内にある language.def の ja を bg に書き換える
    備考zip には、交換して試せるおまけフォントが入ってます。例えば、ジャーナルの字が薄くて読みにくいと感じた人は、交換用フォントに入っている questtext の questtext AozoraMincho-bold_mini.fnt (あおぞら明朝太字フォント) に交換してください
    ダウンロード20190715_ja_bg_FontProject (103MB:7z形式)
    • 2019.7.15 更新 (linbiolinum_sansserif.fnt に変換ミスがあったので修正)
    • 2019.7.10 更新 (jura.fnt の作成の際に FontForge で変換ミスがあり、豆腐が表示される部分があったので修正)
    • 2019.6.14 更新 (briosopro.fnt が太くて読みにくかったので通常の太さに変更)


GD用ビットマップフォントの作り方 Edit

AssetManager の設定 Edit

Grim Dawn 用のビットマップフォントは、ゲームに付属の FontCompiler で作成しますが、この操作はコマンドラインオンリーなので AssetManager のGUIを通すのが簡明です。
そこで、最初に AssetManager が機能するように基本的な設定をしておかなければなりません。基本的には AssetManager の Tools タブから Extract Game Files でベースのデータをすべて解凍すれば使えるようになりますが、フォントを作るだけなら ArchiveTool.exe で templates.arc を解凍するだけで十分です。


  1. templates.arc の解凍
    Steam版Grim DawnをDドライブにインストールした場合で説明します (GOG の場合は、パスを適宜読み替えてください)。
    まず、templates.arc のある database フォルダに移ってエクスプローラのアドレス欄を左クリックして全選択し、その状態で cmd とタイプします。するとコマンドプロンプトと呼ばれる真っ黒なウィンドウが開きます。
    そこで次のようなコマンドを打ち込みます(mod作成の作業ディレクトリを "works" とした場合)。

    ..\ArchiveTool templates.arc -extract "d:\Steam\steamapps\common\Grim Dawn\works\database" 
    これは、「一つ上の階層にある ArchiveTool.exe に、ここの templates.arc を "d:\Steam\steamapps\common\Grim Dawn\works\database" に解凍させる」という意味です。
    これで Grim Dawn\works\database フォルダにテンプレートが解凍されます。

  2. Tools > Options の設定
    設定の確認
    次に AssetManager の作業ディレクトリの設定を行います。ToolsタブのOptionsを開き、Working Directory, Build Directory, Tools Directory を設定します。


    D:\Steam\SteamApps\common\Grim Dawn\ にインストールし、作業ディレクトリをworksとした場合は、
    Working DirectoryD:\Steam\steamapps\common\Grim Dawn\works\
    Build DirectoryD:\Steam\SteamApps\common\Grim Dawn\
    Tools DirectoryD:\Steam\SteamApps\common\Grim Dawn\


    と設定します。これで基本的な設定が終了しました。確認のために Database タブから Import Record... をクリックしてみましょう。右図のように records と templates が現れれば成功しています。
    こうなっていない場合は、テンプレートが Grim Dawn\works\database に解凍できているか確認してください。

  3. fonts.arc の解凍
    特に必要はありませんが、話のついでに fonts.arc の解凍方法について説明しておきます。templates.arc の解凍ができていれば、おおよその使い方は理解できていると思いますが、fonts.arc は次の書式で解凍することができます。
    まず、resources フォルダに移ってエクスプローラのアドレス欄を左クリックして全選択をし cmd と打つ > そのフォルダをカレントとした真っ黒なコマンドプロンプトが開く。そこで次のコマンドを打ちます。

    ..\ArchiveTool Fonts.arc -extract "d:\Steam\steamapps\common\Grim Dawn\works" 
    すぐに Fonts.arc の解凍が終わり、works フォルダに fonts フォルダが追加され、各国のフォントフォルダ20個とルートに英語用の fnt が19個、解凍されています。


アジア型シングルフォントの作成 Edit

シングルフォントの作り方は非常に簡単なので、まずこれから始めましょう。

準備 Edit

  1. フォントの用意
    最初に必要なのは変えてみたいフォントです。PCに入っているフォントでもよいし、「フリー 日本語フォント」といったワードで検索すればたくさんフリーフォントを扱ったサイトが出てくるので、そういったサイトから使ってみたいフォントをダウンロードしてビットマップに変換することもできます。DLしたフォントは、zipなどの圧縮した状態では使えないので、あらかじめ解凍しておかなければなりません。また、そのまま使えるのは、ttf か otf という拡張子のもので、それ以外の場合(例えばWindows内臓の游ゴシック.ttc)は Transfonter のようなサイトを利用して ttf に変換しておきます。そして、解凍したフォントを works フォルダ(あるいは自分が管理しやすいフォルダ)にコピーします。

  2. New mod を立ち上げる
    次に AssetManager を起動し、Mod タブ > New... を選んで Mod名を Ja_Fonts とでもしておきます。すると Sources タブに Ja_Fonts/source というフォルダができます。クリックするとその下に Conversations, Maps, Quests, Text_En という4つのサブフォルダが現れますが、特に表示させる必要はありません。
    new mod を作るNew Mod の名前を決める


  1. フォントのインポート
    右欄に移って右クリックすると Import という項目が出るのでそれをクリックして先ほど works にコピーしたフォントを選択してインポートします。するとこの欄にそのフォントが表示されます。
    これは Ja_Fonts\source フォルダにそのフォントをコピーしたのと同じなので、この Import の代わりにエクスプローラでこのフォルダにコピーしても同じです。
    とりあえず、そのフォントを右クリックして出たコンテキストメニューの一番下にある Auto-Create Asset というのを選びます。すると、さらに Select Asset Type と出るので、デフォルトの BitMap Font でOKを押します。すると Font Properties ウィンドウが出ますが、Sources 欄では各種設定をしないほうが良い(失敗してやり直すと Assets タブにできたファイルが邪魔をする)のでいったん OK を押して閉じます。
    フォントをインポートする Auto-Create AssetFont Properties

  2. Assets の設定
    Assets タブに移ります。右の欄には先ほど OK したフォントの fnt ファイルが表示されていますが、これはビットマップではなくその設計図のようなものです。それは置いといて、左の欄の設定を先にやっておきます。最初は Ja_Fonts/assets というフォルダがあるだけなので、それを右クリックして Create Directory... を選んで fonts フォルダを作り、同様にしてその下に ja フォルダを作ります。
    ここで右欄の fnt を右クリックしてコピーを選びます。そして ja フォルダに移って右クリックしてペーストを選んで ja フォルダにフォントの設計図である fnt をコピーします。ルートにある fnt は不要なので削除しましょう(右クリックして Delete)。
    フォントの各種設定はこの ja フォルダにできた fnt で行います。
    ja フォルダを作り、フォントの設計図をそこに移す

フォントの各種設定 Edit

Font Properties
  1. Font Properties
    fnt をクリックすると Font Properties ウィンドが現れるので、これでフォントの設定を行います。一番上に Format 欄がありますが、これはビットマップの圧縮方式のことでデフォルトの DXT5 のままで結構です(DXT1 等にすると色情報を抜く代わりにサイズが激減しますが、フォントに色指定ができなくなるので使える場面は非常に限定されます)。その下、styles に選んだフォントが表示されているのでそれをクリックして Font Style を決定します。

    Font Style
    Font Style ウィンドウの項目を上から順に説明すると、Source に選んだフォントが表示され(気に入らなければ右の "..." ボタンを押して別のフォントを選び直します)、その下に Size, Color, FX Type, FX Offset, FX Size, Charset, Spacing といった項目があります。

  2. GDで使うフォントの最小サイズは12なのでまずここを12にし、色は下手にいじると滅茶苦茶になるのでそのまま。文字の輪郭修正は Antialiased と Cleartype の二つがありますが、漢字などは Cleartype にしたほうがきれいに描画されるようです(いろいろ試してください)。その下に、Bold(太字), Italic(斜字)、Underline(下線)、Strikethru(不明)といった項目がありますが、太字以外はよくわかりません(斜字は極めて読みにくくなるので日本語には不向き、下線は良く見えません、Strikethru はなんのことかよくわかりません)。結局、この中で使うのは太字かどうかですが、シングルフォントを作成する場合は太字は使わないほうが良いようです(一つのサイズのフォントでいろんな役を果たすため)。

  3. FX Type (効果) は、「なし、フチ、影」の三種類の設定があり、これもデータベースの設定に従って決定しますが、シングルフォントの場合は細かな指定ができないので、結局地図名に縁 (outline) か影 (Shadow) を付ける場合と、ムービーの字幕やローディングチップに縁か影を付けるくらいです。地図名に縁を付ける場合は 12-16 サイズすべてにフチか影の設定をし、ローディングチップに縁を付ける場合は 28 以上のサイズのものに縁取りをします。

  4. FX Offset は影の方向と長さ、FX Size は効果の大きさを指定します。何度か極端な数字を入れて試してみれば、どの項目がどのような効果を出すかはわかります。Color はいじらないほうが良いです。

  5. Charset、文字セットとも言いますが、フォントが多言語対応の場合サイズが膨れ上がるので、必要な文字のみ指定することでサイズを減らす手法です。ただし、膨大な漢字を含む日本語で必要な文字のみ指定するのは不可能なので、この項目は絵に描いた餅でしかありません。文字数が少ない欧文でのみ役に立つ機能です。フォントレンジは二進法で指定、セミコロンで区切りますが、使わないので気にしなくて良いです。

  6. Spacing は文字間の調節。源暎ラテゴのように文字の間隔が広いフォントは -1 とか -2 とかにすると間抜けた感じが弱まります。
    Spacing の設定は各フォントサイズごとにも行えるし、Default Spacing で全サイズに行うこともできます。源暎ラテゴのように文字間隔が広いものは Default で -1 等にするとよいでしょう。

フォントの追加 Edit

フォントの追加
  1. 複数のサイズで一つのフォントを作り上げる
    シングルフォントを作る場合、サイズ一つだけではすべての表示を賄いきれず輪郭のぼやけた文字が多発します。そこで、できるだけ多くのサイズを梱包するのが良いということになります。フォントを追加するには、Font Properties の+ボタンを押して新たにフォントを選び、各種設定をし、またさらに別のサイズでフォントを追加、という作業を繰り返していきます。おおかたは、12,13,14,15,16,18,20,23,32 の9種類で間に合いますが、フォントによってはこれでもぼやけたりかすれるものがあるので、その場合は 12-20 までのすべてを追加してください。たとえばサイズ19は、画面右のクエスト説明の表示に重要です。
    ちなみに、游ゴシックで作ったてみたら地名が一部フチなしになったので、右図のようにサイズ17 (outline 1) を追加したところ、マップはすべてフチ付きで見やすくなりましたが、一部の文字が潰れてトータルでは劣化してしまいました。

  2. 異なるフォントを混ぜる場合
    地図名は12-16あたり、ジャーナルやキャラステータス、アイテムの説明文などは16-20、アイテム名やジャーナルタイトルは23、ローディングチップは32のサイズと関係しているので、それらの字体を変えたいときは別のフォントを指定するとよいでしょう。ただし、シングルフォントの場合はUIスケールを変化させると対応フォントサイズが変わるので、なかなか思うようにはいきません。

  3. 注意
    第一に、フォントサイズの種類を目いっぱい詰め込むとエラーを生じてフォントができません。
    第二に、プログラムの限界で、エラーを生じないまでもサイズの量がある限度を越すとフォントの描画まともにできず、重ね書きをするような感じになって字が崩れます。
    これらサイズに起因する問題については、サブセット化してサイズを小さくすれば成功する可能性は高くなります。
    第三に、原因は分かりませんが、ビットマップに変換できないフォントもあります(横文字だけ変換される)。そのようなフォントに出くわした場合はあきらめましょう。

フォントのビルド Edit

フォントのビルド

設定が終わったらフォントを右クリックして Build をします。シングルフォントにいろいろなサイズを盛り込んだときは、完成するまでにかなりの時間を要しますが、フォントが完成したら下の欄に "added: ./ja/XXX.fnt" と表示が出るので、Grim Dawn\mods フォルダに見に行きましょう。
\Grim Dawn\mods\ja_fonts\resources\fonts\ja フォルダに作った fnt があるはずです。

完成した fnt を settings\fonts\ja フォルダに移し、ゲームを起動すればそのフォントで表示されるでしょう。


欧米型マルチフォントの作成 Edit

シングルフォントでもそこそこ満足できますが、やはり英語でプレーした後は見劣りがします。そこで欧米に成りすましてそのフォント設定を乗っ取ることで、欧米と同じように様々なフォントをちりばめることが可能になります。
前述のように、欧米型は19種類のフォントを使い分けていますが、そのうちの二つ、credit.fnt と misc.fnt はビットマップではなくどの言語も同じアウトラインフォントなので、日本語フォントセットを作成する場合もそれで事足ります。なので、残り17種類のフォントを作ればよいということになりますが、その難解さはシングルフォントの比ではありません。


何が難しいのかというと、データベースを調べてそれぞれのフォントがどのようなサイズに設定されているのか、各サイズはどこの表示に使われているのか、太字や影・フチ付きに設定されているのはどれか、それはどこに用いられているのか、などを調べて好みの和文フォントをそれに合わせて設定し、作らなければなりません。また、サイズが大きくなりすぎるとうまくできないので、サイズの種類が多いフォントの場合はどのサイズを省略していいかを見極める必要もあります。
そして実際にゲームを起動して、ゲームの中で思った通りに表示できたかを確認し、だめならなぜか(アンダーラインがずれているとか、高さがまちまちだった、字の間隔が広すぎる等々)を考え、どうしてもうまくいかなければ別の和文フォントを探すなどしなければならず、完成までに途方もなく時間と手間がかかります。


と言っても、その作業はけっこう楽しいのでさほど苦痛には感じないでしょう。むしろ人によってはゲーム並みに楽しめるかもしれません。
ということで、早速作ってみましょう。

下準備 Edit

BgFonts プロジェクト

欧米型のフォントを作るのは、シングルフォントと同じ手順で一から始めることもできますが、上掲ブルガリア語乗っ取り型のサンプルB-2に同梱したプロジェクトファイルを使うと楽です。

1. この zip に入っている BgFonts フォルダ全部を Grim Dawn\works\mod フォルダにコピーする。
2. AssetManager を起動して Mod > Select > BgFonts を選ぶ。
3. 下の方のAssetsタブを開いて BgFonts/assets を下っていき、bg を開けば図のように設定すべきフォント項目が出てくる。

各フォントの設定は以下の説明と同じなので、以下の説明を参考にして作ったフォントでの表示を見比べるなどして自分好みのフォントを作成してください。

総説:作成すべきフォントとその適用場面 Edit

まず、ざっとどのフォントがどの用途に用いられているのか概観します。
各フォントの名称は、実際のフォント名だったり cinematic のように用途名だったりと、開発者の都合で適当につけられています。

フォント名用途
briosopro.fntアイテム、星座の名前、キャラシートのキャラ名など
cinematic.fntローディング画面のヒント、実績解除やヒーロー討伐時メッセージ
combattext.fnt戦闘関連メッセージ
credits.fntクレジット(作成不要)
criticalhit.fnt戦闘関連メッセージ2
jura.fnt地上のアイテム名、星座のフレーバー、Exit窓
juranooutline.fntパーティープレイヤーのレベル(未確認)
jurashadow.fntホットキースロット
linbiolinum_sansserif.fntステータス画面、アイテム説明、タイトル画面のキャラ名、ESCメニューのボタン、ジャーナル下欄小項目、画面右のクエスト説明文
linlibertine_r.fnt画面右のクエストタイトル
linlibertine_r_nooutline.fntステータス画面の項目、クラス名、ジャーナル下欄のタイトル
misc.fntオプションの言語欄とそのダウンロード一覧(作成不要)
nevis.fntタイトル画面左のボタン、画面右のPC名
nevisnooutline.fnt会話ウィンドウの人物名、ジャーナルのタイトル名など
nevisnooutlinespaced.fntマスタリーウィンドウのタブなど
nevisshadow.fntゲーム画面左上の難易度、右上の地名
questtext.fntクエスト、ジャーナル、オプションのツールチップ
savapromedium.fntワールドマップの地名、クエスト完了ダイアログ
titlescreen.fnt起動時のメッセージ



作成不要のものを除く17種類のフォントを AssetManager で作っていきますが、フォントごとに含めるサイズの種類や効果が異なり、それらはデータベースを調べることでわかります。なお、credit.ftn と misc.fnt はゲーム付属のものを流用すれば十分です。(ブルガリア語乗っ取り型の B-1, B-2 はいずれもそのまま流用しています)。

[各フォントのデータについて]
[データベースの値]






各論:各フォントの作成 Edit

これらのデータベースを見ると、一つのフォントに多数のサイズを持ったものがいくつかありますが、それらをすべて取り込んで日本語フォントを作ろうとすると容量が足らずに破綻するため、適当に取捨選択することが必要になります。フォントのサブセット化も必要になります。サブセットしないとフォントサイズが大きくなりすぎて、PCによっては起動時フォントを読み取るためにちょっと息詰まることがあります。
どのサイズを残してどのサイズを捨てるかはゲーム内での表示を確認して決めることになり、ここに載せた「実際の設定例」というのがその一つです。しかし、これはこの記事の執筆時点でこれくらいが良いかなと判断したものにすぎません。この設定例はあくまでも参考にとどめ、フォントを作るときは各自の判断で何をどれだけ取り込むかを決めてください。
なお、この「実際の設定例」はブルガリア語乗っ取り型のB-2のzipにプロジェクトとしてソースを添付したものを元にしています。そこで、フォント一つ一つのより詳しいスタイル設定はそれをDLして AssetManager で見てください。

  1. briosopro.fnt
    アイテム名として頻繁に目にする書体ですが、キャラクターシートで一番上に載る自分のキャラ名もこの書体を使っています。また、会話文にも使われるので、データベース上は欧文基準のためボールドになっていますが、日本語フォントを太くすると会話がやや読みにくくなるようです。
    [データベースの情報]
    データベースによる理論上の設定実際の設定例
    14ClearTypeOutline, 1briosopro
    15ClearTypeOutline, 1
    15ClearTypeBoldOutline, 1
    16ClearTypeOutline, 1
    16ClearTypeBoldOutline, 1
    17ClearTypeBoldOutline, 1
    18ClearTypeOutline, 1
    19ClearTypeOutline, 1
    19ClearTypeBoldOutline, 1
    20ClearTypeOutline, 1
    20ClearTypeBoldOutline, 1
    21ClearTypeOutline, 1
    21ClearTypeBoldOutline, 1
    23ClearTypeBoldOutline, 1
    24ClearTypeOutline, 1
    25ClearTypeBoldOutline, 1

  2. cinematic.fnt
    ムービーの字幕に使われるフォントですが、字幕は改行しないのでフォントにもよりますがスペーシングを -2 と強めに設定するのが良いでしょう。
    [データベースの情報]
    データベースによる理論上の設定実際の設定例
    14ClearTypeOutline, 1cinematic

  3. combattext.fnt
    戦闘時の「ミス、ブロック」などのフローティング表示に使われますが、字間を広めにすると見やすいかもしれません。
    [データベースの情報]
    データベースによる理論上の設定実際の設定例
    30ClearTypeBoldOutline,1combattext
    32ClearTypeBoldOutline,1
    40ClearTypeBoldOutline,1
    45ClearTypeBoldOutline,1
    52ClearTypeBoldOutline,1
    60ClearTypeBoldOutline,1
    70ClearTypeBoldOutline,1

  4. criticalhit.fnt
    敵にクリティカルをもらったときの表示に使われるので、フォントを combattext と別にすると分かりやすいかもしれません。
    [データベースの情報]
    データベースによる理論上の設定実際の設定例
    30ClearTypeBoldOutline, 1criticalhit

  5. jura.fnt
    地上のアイテム名のほかに星座のフレーバーで確認しなければなりません。行間を広く取るフォントは不適当です。
    [データベースの情報]
    データベースによる理論上の設定実際の設定例
    11ClearTypeBoldOutline, 1jura
    13ClearTypeOutline, 1
    13ClearTypeBoldOutline, 1
    14ClearTypeOutline, 1
    15ClearTypeOutline, 1
    15ClearTypeBoldOutline, 1
    16ClearTypeOutline, 1
    16ClearTypeBoldOutline, 1
    17ClearTypeOutline, 1
    17ClearTypeBoldOutline, 1
    18ClearTypeOutline, 1
    18ClearTypeBoldOutline, 1
    19ClearTypeOutline, 1
    20ClearTypeOutline, 1
    20ClearTypeBoldOutline, 1
    23ClearTypeOutline, 1
    24ClearTypeBoldOutline, 1
    25ClearTypeBoldOutline, 1
    28ClearTypeBoldOutline, 1
    32ClearTypeBoldOutline, 1

  6. juranooutline.fnt
    [データベースの情報]
    データベースによる理論上の設定実際の設定例
    12ClearTypejuranooutline

  7. jurashadow.fnt
    [データベースの情報]
    データベースによる理論上の設定実際の設定例style の設定
    13ClearTypeShadow, 1jurashadowjurashadow style

  8. linbiolinum_sansserif.fnt
    ステータス画面、アイテム説明、タイトル画面のキャラ名、ESCメニューのボタン、ジャーナル下欄小項目、画面右のクエスト説明文など、非常に用途の広いフォント。ほぼすべてのサイズが重要で、実例ではサイズ15を抜かしていますが、入れたほうが良かったかなと思います。入れればその分、字がはっきりします。データベースにはありませんが、サイズ19を抜かすと画面右に表示されるクエストの説明文がかすむことがあるので注意。
    [データベースの情報]
    データベースによる理論上の設定実際の設定例
    12ClearTypelinbiolinum_sansserif
    13ClearType
    13ClearTypeOutline, 1
    14ClearType
    14ClearTypeOutline, 1
    15ClearType
    15ClearTypeBold
    15ClearTypeOutline, 1
    15ClearTypeBoldOutline, 1
    16ClearTypeOutline, 1
    16ClearTypeBoldOutline, 1
    17ClearType
    17ClearTypeBold
    18ClearTypeBold
    18ClearTypeOutline, 1
    18ClearTypeBoldOutline, 1
    20ClearType
    22ClearTypeBoldOutline, 1
    22ClearTypeOutline, 1

  9. linlibertine_r.fnt
    [データベースの情報]
    データベースによる理論上の設定実際の設定例style の設定
    16ClearTypeOutline, 1linlibertine_rlinlibertine_r style
    16ClearTypeBoldOutline, 1
    18ClearTypeBoldOutline, 1
    20ClearTypeBoldOutline, 1

  10. linlibertine_r_nooutline.fnt
    キャラクターシートのステータス項目(属性、戦闘統計値、耐性、など)を表示するフォント。フォントによっては字が大きく、見た感じ邪魔になります。
    [データベースの情報]
    データベースによる理論上の設定実際の設定例style の設定
    16ClearTypeBoldlinlibertine_r_nooutlinelinlibertine_r style
    18ClearType
    20ClearTypeBold

  11. nevis.fnt
    [データベースの情報]
    データベースによる理論上の設定実際の設定例
    14ClearTypeOutline, 1nevis
    16ClearTypeOutline, 1
    20ClearTypeOutline, 1
    22ClearTypeOutline, 1
    24ClearTypeOutline, 1
    29ClearTypeBoldOutline, 1

  12. nevisnooutline.fnt
    [データベースの情報]
    データベースによる理論上の設定実際の設定例
    14ClearTypenevis
    20ClearType
    21ClearType
    22ClearType

  13. nevisnooutlinespaced.fnt
    [データベースの情報]
    データベースによる理論上の設定実際の設定例
    14ClearTypenevisnooutlinespaced
    18ClearType

  14. nevisshadow.fnt
    ゲーム画面上の左右に表示される難易度と場所名に使われます。英語では古風な飾り文字が使われており、ネイティブにも読みにくくて嫌う人がいます。
    [データベースの情報]
    データベースによる理論上の設定実際の設定例style の設定
    19ClearTypeOutline,1nevisshadownevisshadow style

  15. questtext.fnt
    ジャーナルやクエストログの表示に使われる非常に重要なフォント。デフォルトのフォントはやや小ぶりで読みにくいので、しばしばフォントを変更したいという希望となってフォーラムその他に相談が来ます。
    [データベースの情報]
    データベースによる理論上の設定実際の設定例
    16ClearTypequesttext
    16ClearTypeBold
    18ClearType

  16. savapromedium.fnt
    マップの地名表示に使われるフォントなので、これも重要です。字間行間が狭いフォントだとマップが読みにくくなります。
    [データベースの情報]
    データベースによる理論上の設定実際の設定例
    12ClearTypeOutline, 1savapromedium
    14ClearTypeOutline, 1
    16ClearTypeBoldOutline, 1
    18ClearTypeOutline, 1
    24ClearTypeOutline, 1

  17. titlescreen.fnt
    起動時に表示されるフォント。
    [データベースの情報]
    データベースによる理論上の設定実際の設定例
    30ClearTypeBoldtitlescreen

フォントの合成 Edit

  • 合成の意義
    日本語フォントの英文用フォントは無味乾燥のものが多く、ゴシックだとごく普通のサンセリフというのが定番です。名詞英語版でプレーしているときは、日本語がゴシックでも欧文はセリフにするなど、書体に変化を付けるために複数のフォントを合成したくなるかもしれません。その時に用いるのが、FontForge というフリーソフトです。
    FontForgeのWindows版は 2019.6.9 現在 04-13 が最新で、次のサイトからDLできます(登録や寄付のお願いなどが書かれていますが、それらを無視してDLできます)。
    FontForge-2019-04-13-Windows

  • 方法
    FontForgeは、Cドライブのフォルダしか対象にしていないので、予めドキュメントにfontsのようなフォルダを作っておいて、そこに合成したいフォントをコピーしておきます。
    日本語フォントに欧文フォントの味を加えたい場合は、欧文フォントに日本語フォントを統合するのが簡便です。
    例としてAlice-Regular というフォントにあおぞら明朝を統合してみます。

    1. まずAliceを開き、ついであおぞら明朝を開いておきます。この両者をうまく合成するには EM値を同じにしておかなければなりません。EM値は、上のメニューの エレメント > フォント情報 >> 一般情報 で確認できます。

    2. AliceのEM値は1000で、あおぞらのEM値は2048なので、どちらかに合わせる必要があります。AliceのEM値を2048にして変形させるかあおぞらを1000に変形させるか、その間の1024にそれぞれ変形させるか、いろいろやって合成した結果が一番良いものを残します。結果の良さは、出力したフォントを表示させて判断します。合成文字が歪んだりアンダーラインがそろっていなかったりと、単純に合成するとけっこうな量で失敗します。

    3. とりあえず、Aliceを2048に変形させると「このグリフに含まれる命令情報が失われた」旨の警告が出ますが、他に選択しようがないのでOKを押します。そして エレメント > フォントの統合 を選んで、AozoraMinchoMedium を選んでOK。最後にメニューのファイルから「フォントを出力」します。その際に、オプションでWindows-compatible 'kern' と OpenTypeの仕様を「旧来の 'kern' テーブル」にチェックを入れておきます。そしてフォントの名称を Alice_Aozora とかにして保存(たいていここで名称がうまく入らず文字化けしますが構わず保存します)。

    4. 合成がうまくできたか確認しましょう。この例だとだめですね、欧文が潰れています(下図左)。使えないのでこれは削除し、今度は最初にあおぞらのEM値を1000にして変形させておいて、先ほどと同じくAliceのエレメントから統合してみます。そしてフォントに出力(の際に1000は変だとか警告されますが無視)したものを表示して確認(下図中)。今度はうまくできたようです。
      Alice 2048
      失敗例:クリックで拡大
      Aozora 1000
      成功例:クリックで拡大
      起動画面
      クリックで拡大

    5. これを works フォルダに移して使ってみます。すぐに確認できるタイトルのフォントを変更してどんな具合か見ます。
      まず AssetManager を起動し、Sources にインポートして Assets に移り、Titlescreen.fnt のフォントをこれに変更してビルド。サイズ一つのフォントですぐ完了するので、さっそく settings\fonts\bg に移してゲームを起動します。見たところ、正常にビットマップ変換できたようです(上図右)。もっともタイトルの表示はうまくいったけれども、他の表示はうまくいかないということもあるので別の表示に使うときはまた注意しなければなりません。


      実際に使うときは次のサブセット化をして容量を減らしておくのがベターです。

フォントのサブセット化 Edit

サブセットフォントメーカー
  • サブセット化の意義
    フォントのサブセット化というのは、フォントに含まれている大量の文字から不要なものを削除し、フォントサイズを軽量化することです。日本語文字は欧米のものに比べるとけた違いに多いので、一つのビットマップフォントを作るときにサイズをいろいろ詰め込むと描画しきれず潰れてしまうため、それを防ぐためにサブセット化することが必要になります。


    目安として「第一水準漢字+第二水準漢字+記号+ローマ字+カタカナ+ひらがな+半角文字などの特殊文字」くらいあれば大抵の文章は読めるだろうということで、それ以外の文字をフォントから削除します。

  • 方法
    方法は非常に簡単で、サブセットフォントメーカーというフリーソフトを利用して、フォントに入れる文字を選んでボタンを押すだけです。
    その準備として、格納すべき文字を書きだしておかなければなりませんが、前半記事で解説したフランス語乗っ取り型のファイルをアップしている方がサブセット用テキストもアップしてくれているので、それを利用するのが良いでしょう。DLしたテキストを全選択してコピーし、サブセットフォントメーカーの「フォントに格納する文字」にペーストすればOKです。


    あとは、「作成元フォントファイル」に元となるフォントを指定し、「作成後フォントファイル」にサブセット化したファイル名を書いて(元のフォント名に _sub とでも付ける)、下の「作成開始」を背ばすぐに完成します。多言語乗っ取り方式のフォントセットを作成するときは、容量を抑えるため、使用するフォントすべてをサブセット化しておくとよいでしょう。


フォントの作成法は以上です。記事の量からちょっととっつきにくい印象を受けるかもしれませんが、やってみれば面白い点が多々あるので、ぜひ好きなフォントを選んでGD用フォント作りに挑戦してみてください。


コメント Edit

最新の10件を表示しています。 コメントページを参照

  • 前からの懸案事項だったフォント変更の記事をようやく終え、左のメニュー「Mod / Tools」の下に「フォントの変更」を追加しました。「日本語化」の下に置こうかと思いましたが、Modの作成と関連しているのでここら辺が妥当かと思います。 -- Matougi? 2019-06-09 (日) 18:19:34
    • 大変詳しい記事の作成お疲れ様です!日本語化のページには、こちらのページへの誘導リンクを追加しておきました。 -- 2019-06-09 (日) 18:50:08
  • Grim Internals文字化け用に導入させてもらいました。ありがとうございます! -- 2019-07-03 (水) 14:07:22
お名前: URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White