Mod/フォントの作成

Last-modified: 2024-03-02 (土) 19:54:29

フォントの変更(新板)フォントの変更(旧板)のページでは、変更の必要性や何種類か作ったフォントの提供と使い方について解説しました。それを見て自作したいと思った人のために、こちらではフォントの作成法について解説します。
(当初は同ページに続けて解説しましたが、量が大きくなって編集困難になってきたため別ページにしました)


AssetManager の設定

Grim Dawn 用のビットマップフォントは、ゲームに付属の FontCompiler で作成しますが、この操作はコマンドラインオンリーなので AssetManager のGUIを通すのが簡明です。
そこで、最初に AssetManager が機能するように基本的な設定をしておかなければなりません。基本的には AssetManager の Tools タブから Extract Game Files でベースのデータをすべて解凍すれば使えるようになりますが、フォントを作るだけなら ArchiveTool.exe で templates.arc を解凍するだけで十分です。ただし、フォントのデータベースをきちんと調べたいときは、更新されるたびに AssetManager の Tools ≫ Extract Game Files で全解凍をし、さらに gdx1, gdx2 の各DLCのデータベース (gdx1.arz, gdx2.arz) もその都度解凍する必要があります。

(参考)DLCのデータベースは次の書式で順番に解凍し、ベースのデータと置き換えます。
..\..\ArchiveTool GDX1.arz -database "d:\Steam\steamapps\common\Grim Dawn\works\database"
..\..\ArchiveTool GDX2.arz -database "d:\Steam\steamapps\common\Grim Dawn\works\database"


  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個、解凍されています。


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

シングルフォントの作り方は非常に簡単なので、まずこれから始めましょう。
※ GD v1.2 になってシングルフォントは利用できなくなりましたが、フォントの作り方を理解するため、初めて挑戦する方は一通り目を通してください。

準備

  1. フォントの用意
    最初に必要なのは変えてみたいフォントです。PCに入っているフォントでもよいし、「フリー 日本語フォント」といったワードで検索すればたくさんフリーフォントを扱ったサイトが出てくるので、そういったサイトから使ってみたいフォントをダウンロードしてビットマップに変換することもできます。DLしたフォントは、zipなどの圧縮した状態では使えないので、あらかじめ解凍しておかなければなりません。また、そのまま使えるのは、ttf か otf という拡張子のもので、それ以外の場合(例えばWindows内臓の游ゴシック.ttc)は Transfonter のようなサイトを利用して ttf に変換しておきます。そして、解凍したフォントを works フォルダ(あるいは自分が管理しやすいフォルダ)にコピーします。
    1. フリーフォントの中にはJISの第二水準すら備えていないものもあるので、そのようなものは利用しないよう注意してください。そういった中途半端なフォントだと、例えば「贖罪の穴」という地名の「贖」など、一部の漢字が表示されないことがあります。
    2. すべてのフォントが AssetManager でビットマップ化できるわけではないことに注意してください。AssetManager は2バイト文字のことはあまり考えていないため、アルファベット以外の文字が処理できないことがあります。和文フォント単体で上手くいかない場合でも、欧文フォントにマージした場合はできることもあります。ただ、これはやってみなければ分かりません。


  1. 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 フォルダを作り(assets の下にサブフォルダを作らないと Build したときに Assetmanager が落ちるので、必ず fonts フォルダを作ってそこに移って作業してください)、同様にしてその下に ja フォルダを作ります。
    ここで右欄の fnt を右クリックしてコピーを選びます。そして ja フォルダに移って右クリックしてペーストを選んで ja フォルダにフォントの設計図である fnt をコピーします。ルートにある fnt は不要なので削除しましょう(右クリックして Delete)。
    フォントの各種設定はこの ja フォルダにできた fnt で行います。
    ja フォルダを作り、フォントの設計図をそこに移す

フォントの各種設定

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 等にするとよいでしょう。(例:briosopro.fnt に源真ゴシックを使い、右図上は spacing 0, 下は -3 に設定)

    ※ 欧文フォントは最初から狭い所は狭く設定されているため、spacingを少し狭くしただけで文字がくっついたり重なったりします。そのため、和文フォンを欧文フォントにマージした場合はスペーシングをあまり狭くしないほうが良いでしょう。また、字幕を狭く表示させようとcinematic.fntを狭く設定した場合、新エリアに入ったときの地名の字幅が狭くなるなど、意図しない部分に影響することがある点に注意してください。


フォントの追加

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

フォントのビルド

フォントのビルド

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

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


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

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


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


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

下準備

BgFonts プロジェクト

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

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

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

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

まず、ざっとどのフォントがどの用途に用いられているのか概観します。
各フォントの名称は、実際のフォント名だったり cinematic のように用途名だったりと、開発者の都合で適当につけられています。名前に"nooutline"とあればフチなしの意味で、"shadow"なら影あるいはフチありのことです。また、"spaced" とあれば Font Properties で "Default Spacing" を -1, -2 等の設定にすることが見込まれますが、文字間隔をあけすぎると読みにくくなるのでそこらへんも好き好きです。

フォント名用途
briosopro.fntアイテム、星座の名前、キャラシートのキャラ名など
cinematic.fntローディング画面のヒント、実績解除やヒーロー討伐時メッセージ、新しいエリアに入ったときに表示される地名
combattext.fnt戦闘のときに敵に与えたダメージ値や「ミス」「ファンブル」などの表示
credits.fntクレジット(メインメニューでのみ使用する非ビットマップフォント、作成不要=流用)
criticalhit.fntクリティカルヒットの表示(未確認)
jura.fnt地上のアイテム名、星座のフレーバー、Exit窓
juranooutline.fntパーティープレイヤーのレベル(未確認)
jurashadow.fntホットキースロット
linbiolinum_sansserif.fntステータス画面右側の数値、メイン画面右のPCの名前・レベル・クラス名、アイテム説明、タイトル画面のキャラ名、ESCメニューのボタン、ジャーナル下欄小項目、画面右のクエスト説明文
linbiolinum_shadow-lg_spaced.fntNPC/モンスターレベル、ヘルス(この二つの値はヘルスバーを挟んで連動)、数字だけなので流用可能 (v1.1.4.0で追加)
linlibertine_r.fnt画面右のクエストタイトル
linlibertine_r_nooutline.fntステータス画面の項目、クラス名、ジャーナル下欄のタイトル
misc.fntオプションのダウンロード一覧(メインメニューでのみ使用する非ビットマップフォント、作成不要=流用)
nevis.fntメイン画面左のボタン、右側の「キャラクターの作成・削除」「作成」「キャンセル」のボタン、取引ウィンドウ上端(商人、鍛冶屋、発明家など)のNPC名
nevisnooutline.fnt会話ウィンドウの人物名、クエスト/ジャーナル欄のタイトル名
nevisnooutlinespaced.fntマスタリーウィンドウのタブなど
nevisshadow.fntゲーム画面左上の難易度、右上の地名
nevisshadow-lg_spaced.fnt画面上に表示されるNPCとモンスターの名前、種族名 (v1.1.4.0で追加)
questtext.fntクエスト、ジャーナル、オプションのツールチップ
savapromedium.fntワールドマップの地名、クエスト完了ダイアログ
titlescreen.fnt起動時のメッセージ

(枠内薄紫色のフォントは作成不要)


作成不要のものを除く19種類のフォントを AssetManager で作っていきますが、フォントごとに含めるサイズの種類や効果が異なり、それらはデータベースを調べることでわかります。なお、credit.ftn と misc.fnt および linbiolinum_shadow-lg_spaced.fnt はゲーム付属のものを流用すれば十分です。(ブルガリア語乗っ取り型ではそのまま流用しています)。フォントのデータは、ゲームに付属している DBREditor で見ることができます。具体的には、\Grim Dawn\works\database\records\ui\styles\text にある dbr を一つ一つ開いて Config を見ればどのフォントがどの場面でどのようなサイズと効果で使われているかがわかります。
※ Grim Dawn v1.2 以降は新板の「フォントの変更」に添付した「キメラ・フォントプロジェクト」付属の assets\fonts\ja にある各種 fnt ファイルを参照してください。

[データベースの値]
atabasefontlowResFontNamefontSizelowResMinSizeBoldItaliccomment
style_bargraph.dbrfonts/jura.fnt-11-1--
style_button_gold_lg01.dbrfonts/linbiolinum_sansserif.fnt-18----
style_button_gold_lg01_bold.dbrfonts/linbiolinum_sansserif.fnt-18-1--
style_button_gold_med01.dbrfonts/linbiolinum_sansserif.fnt-16----
style_button_gold_vlg01.dbrfonts/nevis.fnt-22---Title screen left button
style_button_gold_vlg01_bold.dbrfonts/linbiolinum_sansserif.fnt-22-1--
style_button_gold_vlg02.dbrfonts/linbiolinum_sansserif.fnt-22----
style_button_gray_med01.dbrfonts/linbiolinum_sansserif.fnt-16----
style_button_graygold_lg01.dbrfonts/linbiolinum_sansserif.fnt-18----
style_button_graygold_med01.dbrfonts/linbiolinum_sansserif.fnt-16----
style_button_graygold_sm01.dbrfonts/linbiolinum_sansserif.fnt-15----
style_button_graygold_vlg01.dbrfonts/nevis.fnt-22---Title screen left button
style_button_graygold_vlg01_bold.dbrfonts/linbiolinum_sansserif.fnt-22-1--
style_button_graygold_vlg02.dbrfonts/linbiolinum_sansserif.fnt-22----
style_button_graygold_vsm01.dbrfonts/linbiolinum_sansserif.fnt-14----
style_cinematictext.dbrfonts/cinematic.fnt-32-1-Message at the time of achievement cancellation and hero defeat
style_clockdisplay.dbrfonts/jura.fnt-25-1-clock
style_conversationwindow_name.dbrfonts/nevisnooutline.fnt-20---NPC name in conversation window
style_conversationwindow_option.dbrfonts/briosopro.fnt-20---Conversation window options
style_conversationwindow_text.dbrfonts/briosopro.fnt-20---conversation
style_debug.dbrfonts/jura.fnt-13----
style_default.dbrfonts/briosopro.fnt-15----
style_defaultred_sizen.dbrfonts/briosopro.fnt-16----
style_defaultwhite_sizen.dbrfonts/briosopro.fnt-16----
style_defaultwhite_sizen_bright.dbrfonts/briosopro.fnt-16----
style_defaultwhite_sizenl.dbrfonts/briosopro.fnt-18----
style_defaultwhite_sizens.dbrfonts/briosopro.fnt-14----
style_droptitle01.dbrfonts/briosopro.fnt-16-1--
style_droptitle02.dbrfonts/briosopro.fnt-15-1--
style_effectname.dbrfonts/briosopro.fnt-20-1--
style_error.dbrfonts/jura.fnt-17-11-
style_experiencebarpopup.dbrfonts/jura.fnt-24-1--
style_floatingtext_combatenemyblock.dbrfonts/combattext.fnt-30-1-General battle-related text
style_floatingtext_combatenemycritical.dbrfonts/criticalhit.fntfonts/combattext.fnt30-1-General battle-related text
style_floatingtext_combatplayerblock.dbrfonts/combattext.fnt-30-1-General battle-related text
style_floatingtext_combatplayercritical.dbrfonts/combattext.fnt-40-1-General battle-related text
style_floatingtext_combatplayercritical2.dbrfonts/combattext.fnt-45-1-General battle-related text
style_floatingtext_combatplayercritical3.dbrfonts/combattext.fnt-52-1-General battle-related text
style_floatingtext_combatplayercritical4.dbrfonts/combattext.fnt-60-1-General battle-related text
style_floatingtext_combatplayercritical5.dbrfonts/combattext.fnt-70-1-General battle-related text
style_floatingtext_combatplayerfumble.dbrfonts/combattext.fnt-30-1-General battle-related text
style_floatingtext_combatplayerhit.dbrfonts/combattext.fnt-30-1-General battle-related text
style_floatingtext_combatplayermiss.dbrfonts/combattext.fnt-30-1-General battle-related text
style_floatingtext_rewardsfaction.dbrfonts/combattext.fnt-32-1-General battle-related text
style_help_subtitle.dbrfonts/questtext.fnt-16-1-"Tutorial, Journal window subtitle name"
style_help_title.dbrfonts/nevisnooutline.fnt-22---"Tutorial, Title Name of Journal Window"
style_hotslotkeys.dbrfonts/jurashadow.fnt-13---Hot key slot
style_itemsartifact.dbrfonts/briosopro.fnt-23-1--
style_itemsartifact_sizes.dbrfonts/briosopro.fnt-21-1--
style_itemsblueprint.dbrfonts/briosopro.fnt-23-1--
style_itemsbroken.dbrfonts/briosopro.fnt-23-1--
style_itemscommon.dbrfonts/briosopro.fnt-23-1--
style_itemsconsumable.dbrfonts/briosopro.fnt-23-1--
style_itemscrafting.dbrfonts/briosopro.fnt-23-1--
style_itemsenchantment.dbrfonts/briosopro.fnt-23-1--
style_itemsenchantment_sizes.dbrfonts/briosopro.fnt-21-1--
style_itemslore.dbrfonts/briosopro.fnt-23-1--
style_itemsmagical.dbrfonts/briosopro.fnt-23-1--
style_itemspotion.dbrfonts/briosopro.fnt-23-1--
style_itemsquest.dbrfonts/briosopro.fnt-23-1--
style_itemsrare.dbrfonts/briosopro.fnt-23-1--
style_itemsrelic.dbrfonts/briosopro.fnt-23-1--
style_itemsrelic_gray.dbrfonts/briosopro.fnt-21-1--
style_itemsrelic_gray_sizet.dbrfonts/briosopro.fnt-17-1--
style_itemsrelic_sizes.dbrfonts/briosopro.fnt-21-1--
style_itemsrelic_sizet.dbrfonts/briosopro.fnt-17-1--
style_itemsset.dbrfonts/briosopro.fnt-21-1--
style_itemsset_name.dbrfonts/jura.fnt-16-1--
style_itemsuniquea.dbrfonts/briosopro.fnt-23-1--
style_itemsuniqueb.dbrfonts/briosopro.fnt-23-1--
style_nooutline_skillname.dbrfonts/linbiolinum_sansserif.fnt-17----
style_nooutline_skillname_sizes.dbrfonts/linbiolinum_sansserif.fnt-13----
style_nooutline_textbrown_sizen.dbrfonts/linbiolinum_sansserif.fnt-17----
style_nooutline_textgold_sizel.dbrfonts/linlibertine_r_nooutline.fnt-18----
style_nooutline_textgold_sizen.dbrfonts/linbiolinum_sansserif.fnt-17----
style_nooutline_textgold_sizes.dbrfonts/linbiolinum_sansserif.fnt-15----
style_nooutline_textgold_sizet.dbrfonts/linbiolinum_sansserif.fnt-12----
style_nooutline_textgray_sizen.dbrfonts/linbiolinum_sansserif.fnt-17----
style_nooutline_textgray_sizes.dbrfonts/linbiolinum_sansserif.fnt-15----
style_nooutline_textgray_sizet.dbrfonts/linbiolinum_sansserif.fnt-12----
style_nooutline_textgray2_sizet.dbrfonts/linbiolinum_sansserif.fnt-13----
style_nooutline_textgraygold_sizel.dbrfonts/linbiolinum_sansserif.fnt-20----
style_nooutline_textgraygold_sizen.dbrfonts/linbiolinum_sansserif.fnt-17----
style_nooutline_textgraygold_sizes.dbrfonts/linbiolinum_sansserif.fnt-15----
style_nooutline_textlightblue_sizen.dbrfonts/linbiolinum_sansserif.fnt-17----
style_nooutline_textlightgold_sizen.dbrfonts/linbiolinum_sansserif.fnt-17----
style_nooutline_textlightgold_sizet.dbrfonts/linbiolinum_sansserif.fnt-12----
style_nooutline_textolive_sizen.dbrfonts/linbiolinum_sansserif.fnt-17----
style_nooutline_textolive_sizet.dbrfonts/linbiolinum_sansserif.fnt-15----
style_nooutline_textred_sizen.dbrfonts/linbiolinum_sansserif.fnt-17----
style_nooutline_textred_sizen_bold.dbrfonts/linbiolinum_sansserif.fnt-18-1--
style_nooutline_textwhite_sizen.dbrfonts/linbiolinum_sansserif.fnt-17----
style_nooutline_textwhite_sizen_bold.dbrfonts/linbiolinum_sansserif.fnt-18-1--
style_nooutline_textwhite_sizen02_bold.dbrfonts/linbiolinum_sansserif.fnt-17-1--
style_nooutline_textwhite_sizes.dbrfonts/linbiolinum_sansserif.fnt-14----
style_nooutline_textwhite_sizes_bold.dbrfonts/linbiolinum_sansserif.fnt-15-1--
style_nooutline_textwhite_sizet.dbrfonts/linbiolinum_sansserif.fnt-13----
style_nooutline_textwhite2_sizes.dbrfonts/linbiolinum_sansserif.fnt-15----
style_numberattribute04_sizen.dbrfonts/briosopro.fnt-1613---
style_numberattribute05_sizen.dbrfonts/briosopro.fnt-1613---
style_numberblue_sizel_bold.dbrfonts/briosopro.fnt-17-1--
style_numberblue_sizen.dbrfonts/jura.fnt-16----
style_numbergold_sizel_bold.dbrfonts/jura.fnt-18-1--
style_numbergold_sizen.dbrfonts/jura.fnt-13----
style_numbergold_sizen_bold.dbrfonts/jura.fnt-13-1--
style_numbergold_sizes_bold.dbrfonts/jura.fnt-11-1--
style_numbergoldbright_sizel_bold.dbrfonts/jura.fnt-18-1--
style_numbergreen_sizen.dbrfonts/jura.fnt-13----
style_numberred_sizel_bold.dbrfonts/jura.fnt-18-1--
style_numberred_sizen.dbrfonts/jura.fnt-13----
style_numberred_sizen_bold.dbrfonts/jura.fnt-13-1--
style_numberwhite_sizen.dbrfonts/jura.fnt-13----
style_numberwhite_sizen_bold.dbrfonts/jura.fnt-13-1--
style_numberyellow_sizel_bold.dbrfonts/jura.fnt-18-1--
style_quest_description.dbrfonts/questtext.fnt-16----
style_quest_notification.dbrfonts/linlibertine_r.fnt-18-1--
style_quest_objective.dbrfonts/questtext.fnt-16----
style_quest_questreward.dbrfonts/questtext.fnt-18----
style_quest_questtitle.dbrfonts/nevisnooutline.fnt-22---Quest window title name
style_quest_sectionheaders.dbrfonts/nevisnooutline.fnt-21----
style_questlog_groupname.dbrfonts/linlibertine_r_nooutline.fnt-20-1--
style_questlog_questname.dbrfonts/linbiolinum_sansserif.fnt-16----
style_questlog_sidequestname.dbrfonts/linbiolinum_sansserif.fnt-16----
style_questrewardwindow_continuebutton.dbrfonts/savapromedium.fnt-1818--Quest Reward Window Button
style_questrewardwindow_questname.dbrfonts/savapromedium.fnt-1818--Quest Reward Window Quest Name
style_questrewardwindow_questtitle.dbrfonts/savapromedium.fnt-2418--Quest Reward Window Quest Name
style_questrewardwindow_xp.dbrfonts/savapromedium.fnt-1818--Quest Reward Window Experience
style_questwidget_objective.dbrfonts/linbiolinum_sansserif.fnt-16----
style_questwidget_quest.dbrfonts/linlibertine_r.fnt-16-1-Quest column on the right side of the screen
style_questwidget_region.dbrfonts/linlibertine_r.fnt-16---Quest column on the right side of the screen
style_questwidget_title.dbrfonts/linlibertine_r.fnt-20-1-Quest column on the right side of the screen
style_quicktip_text.dbrfonts/questtext.fnt-16----
style_quicktip_title.dbrfonts/questtext.fnt-16-1--
style_skillcooldowntext.dbrfonts/linlibertine_r.fnt-18-1--
style_skilldescription.dbrfonts/briosopro.fnt-20-1--
style_skillleveltext.dbrfonts/briosopro.fnt-19-1--
style_skillname.dbrfonts/briosopro.fnt-20-1--
style_skillname_gray.dbrfonts/briosopro.fnt-20-1--
style_skillname_sizes.dbrfonts/briosopro.fnt-15-1--
style_special_charstats.dbrfonts/linbiolinum_sansserif.fnt-16----
style_special_charstats_dps.dbrfonts/briosopro.fnt-16----
style_special_charstats_sizes.dbrfonts/linbiolinum_sansserif.fnt-15----
style_special_charstatsclassname.dbrfonts/linlibertine_r_nooutline.fnt-16-1-Status screen class name
style_special_charstatsheader.dbrfonts/linlibertine_r_nooutline.fnt-18---Status screen header field
style_special_charstatsnumber.dbrfonts/linbiolinum_sansserif.fnt-18----
style_special_charstatsnumber_sizes.dbrfonts/linbiolinum_sansserif.fnt-13----
style_special_charstatsplayername.dbrfonts/briosopro.fnt-20----
style_special_charstatsrollovername.dbrfonts/briosopro.fnt-17-1--
style_special_compassregionname.dbrfonts/nevisshadow.fnt-19---"Game screen upper left difficulty level, upper right place name"
style_special_cooldown.dbrfonts/savapromedium.fnt-16-1--
style_special_enemyhealthfonts/linbiolinum_shadow-lg_spaced.fnt-14---Mob health at the center of the screen (v1.1.4.0 で追加)
style_special_enemylvl.dbrfonts/linbiolinum_shadow-lg_spaced.fnt (旧 briosopro.fnt, 19)-20---Mob level at the center of the screen (v1.1.4.0 で変更)
style_special_enemyname.dbrfonts/nevisshadow-lg_spaced.fnt (旧 briosopro.fnt, 21)-26-1-Mob's name at the center of the screen (v1.1.4.0 で変更)
style_special_enemyrace.dbrfonts//nevisshadow-lg_spaced.fnt (旧 briosopro.fnt, 15)-18-1-Mob Tribe at the center of the screen (v1.1.4.0 で変更)
style_special_floatingtextdefault.dbrfonts/jura.fnt-32-1--
style_special_healthpotionpickup.dbrfonts/jura.fnt-28-1-Display when picking up a potion
style_special_hudplayerlevel.dbrfonts/jura.fnt-23---plyaer level
style_special_itemfiltertitles.dbrfonts/nevisnooutlinespaced.fnt-16----
style_special_manapotionpickup.dbrfonts/jura.fnt-28-1-Display when picking up a potion
style_special_moneypickup.dbrfonts/jura.fnt-28-1-Display when picking up money
style_special_onscreenkeyboard.dbrfonts/briosopro.fnt)-32---on screen keyboard (v1.1.4.0 で追加)
style_special_partyplayerlevel.dbrfonts/juranooutline.fnt-12---Party player level (unconfirmed)
style_special_relicpickup.dbrfonts/briosopro.fnt)-32-1-pick up relic (v1.1.4.0 で追加)
style_special_riftdestination.dbrfonts/nevis.fnt-29-1--
style_special_riftmapnames.dbrfonts/briosopro.fnt-14----
style_special_riftmapnamescurrent.dbrfonts/briosopro.fnt-14----
style_special_riftmapprimarylabels.dbrfonts/savapromedium.fnt-14---World map location name
style_special_riftmapsecondarylabels.dbrfonts/savapromedium.fnt-12---World map location name
style_special_skillclassbuttondown.dbrfonts/briosopro.fnt-21-1--
style_special_skillclassbuttonup.dbrfonts/briosopro.fnt-21-1--
style_special_skillclassdescriptions.dbrfonts/linbiolinum_sansserif.fnt-18----
style_special_skillnames.dbrfonts/briosopro.fnt-25-1--
style_special_skilltiers.dbrfonts/linbiolinum_sansserif.fnt-15-1--
style_special_statusbarenergy.dbrfonts/jura.fnt-19---Energy bar
style_special_statusbarhealth.dbrfonts/jura.fnt-19---Health bar
style_special_titlescreentext.dbrfonts/titlescreen.fnt-30-1--
style_special_tutorial_contenttitle.dbrfonts/linbiolinum_sansserif.fnt-16-1--
style_tabtext_largegray.dbrfonts/briosopro.fnt-20----
style_tabtext_largewhite.dbrfonts/briosopro.fnt-20-1--
style_textblack_sizen.dbrfonts/jura.fnt-16----
style_textblack_sizen_bold.dbrfonts/jura.fnt-16-1--
style_textblue_sizen.dbrfonts/jura.fnt-16----
style_textblue_sizen_bold.dbrfonts/jura.fnt-16-1--
style_textblue_sizes.dbrfonts/jura.fnt-14----
style_textgold_sizel.dbrfonts/jura.fnt-18----
style_textgold_sizel_bold.dbrfonts/jura.fnt-20-1--
style_textgold_sizen.dbrfonts/jura.fnt-16----
style_textgold_sizen_bold.dbrfonts/jura.fnt-16-1--
style_textgold_sizes.dbrfonts/jura.fnt-15----
style_textgray_sizel.dbrfonts/jura.fnt-20----
style_textgray_sizel_bold.dbrfonts/jura.fnt-20-1--
style_textgray_sizen.dbrfonts/jura.fnt-17----
style_textgray_sizen_bold.dbrfonts/jura.fnt-17-1--
style_textgray_sizes.dbrfonts/jura.fnt-15----
style_textgreen_sizel_bold.dbrfonts/jura.fnt-20-1--
style_textgreen_sizen.dbrfonts/jura.fnt-18----
style_textgreen_sizen_bold.dbrfonts/jura.fnt-18-1--
style_textgreen_sizes.dbrfonts/jura.fnt-15----
style_textred_sizen.dbrfonts/jura.fnt-18----
style_textred_sizen_bold.dbrfonts/jura.fnt-18-1--
style_textwhite_sizel.dbrfonts/jura.fnt-20----
style_textwhite_sizel_bold.dbrfonts/jura.fnt-20-1--
style_textwhite_sizen.dbrfonts/jura.fnt-18----
style_textwhite_sizen_bold.dbrfonts/jura.fnt-18-1--
style_textwhite_sizen_bold+ds.dbrfonts/jura.fnt-18-1--
style_textwhite_sizes.dbrfonts/jura.fnt-15----
style_textwhite_sizes_bold.dbrfonts/jura.fnt-15-1--
style_videosubtitle.dbrfonts/cinematic.fnt-32-1-Movie
style_windowsubtitle01.dbrfonts/linbiolinum_sansserif.fnt-15----
style_windowtitle01.dbrfonts/nevis.fnt-20----


各論:各フォントの作成

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

  1. briosopro.fnt
    アイテム名として頻繁に目にする書体ですが、キャラクターシートで一番上に載る自分のキャラ名もこの書体を使っています。また、会話文にも使われます(データベース上は欧文基準でボールドになっていますが、日本語フォントを太くすると文字が詰まってかえって読みにくくなることがあります)。参考値、Size=20 Bold Shadow 0,1,1 (キャラ名の縁がはっきりして視認性が良くなる)
    [データベースの情報]
    style_briosopro.fnt
    conversation window option20
    conversation window text20
    default15
    default red size n16
    default white size n16
    default white size n bright16
    default white size nl18
    default white size ns14
    drop title0116Bold
    drop title0215Bold
    effect name20Bold
    items artifact23Bold
    items artifact size s21Bold
    items blueprint23Bold
    items broken23Bold
    items common23Bold
    items consumable23Bold
    items crafting23Bold
    items enchantment23Bold
    items enchantment size s21Bold
    items lore23Bold
    items magical23Bold
    items potion23Bold
    items quest23Bold
    items rare23Bold
    items relic23Bold
    items relic gray21Bold
    items relic gray size t17Bold
    items relic size s21Bold
    items relic size t17Bold
    items set21Bold
    items unique a23Bold
    items unique b23Bold
    number attribute04 sizen16
    number attribute05 sizen16
    number blue size l bold17Bold
    skill description20Bold
    skill level text19Bold
    skill name20Bold
    skill name gray20Bold
    skill name size s15Bold
    special char stats dps16
    special char stats player name20
    special char stats rollover name17Bold
    special on screen keyboard32[v1.1.4.0]
    special pick up relic32Bold [v1.1.4.0]
    special rift map names14
    special rift map names current14
    special skill class button down21Bold
    special skill class button up21Bold
    special skill names25Bold
    tab text large gray20
    tab text large white20Bold
    endless dungeon l24[gdx2]
    endless dungeon level counter16[gdx2]
    endless dungeon s16[gdx2]
    データベースによる理論上の設定実際の設定例
    14ClearTypeOutline, 1briosopro
    15ClearTypeOutline, 1
    15ClearTypeBoldOutline, 1
    16ClearTypeOutline, 1
    16ClearTypeBoldOutline, 1
    17ClearTypeBoldOutline, 1
    18ClearTypeOutline, 1
    19ClearTypeBoldOutline, 1
    20ClearTypeOutline, 1
    20ClearTypeBoldOutline, 1
    21ClearTypeOutline, 1
    21ClearTypeBoldOutline, 1
    23ClearTypeBoldOutline, 1
    24ClearTypeOutline, 1
    25ClearTypeBoldOutline, 1
    32ClearTypeOutline, 1
    32ClearTypeBoldOutline, 1

  2. cinematic.fnt
    ムービーの字幕に使われるフォントですが、字幕は改行しないのでフォントにもよりますがスペーシングを -1, あるいは -2 と強めに設定するのが良いでしょう。ただ、あまり狭くすると地名表示がせせこましくなる点にも留意してください。
    他にも、ゲームの一時停止、実績解除、ヒーロー討伐、レベルアップのメッセージ等、いろいろな画面メッセージで使われている重要なフォントです。
    [データベースの情報]
    style_cinematic.fnt
    cinematic text32Bold
    video subtitle32Bold
    データベースによる理論上の設定実際の設定例
    14ClearTypeOutline, 1cinematic

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

  4. criticalhit.fnt
    クリティカルの表示に使われるので、フォントを combattext と別にすると分かりやすいかもしれませんが、ゲーム内で確認できていません。
    [データベースの情報]
    style_criticalhit.fnt
    floating text combat enemy critical30Bold
    データベースによる理論上の設定実際の設定例
    30ClearTypeBoldOutline, 1criticalhit

  5. jura.fnt
    地上のアイテム名のほかに星座のフレーバーで確認しなければなりません。行間を広く取るフォントは不適当です。
    [データベースの情報]
    style_jura.fnt
    bar graph11Bold
    clock display25Bold
    debug13
    error17Bold
    experience bar popup24Bold
    items set name16Bold
    number blue size n16
    number gold bright size l bold18Bold
    number gold size l bold18Bold
    number gold size n13
    number gold size n bold13Bold
    number gold size s bold11Bold
    number green size n13
    number red size l bold18Bold
    number red size n13
    number red size n bold13Bold
    number white size n13
    number white size n bold13Bold
    number yellow size l bold18Bold
    special floating text default32Bold
    special health potion pickup28Bold
    special hud player level23
    special mana potion pickup28Bold
    special money pickup28Bold
    special status bar energy19
    special status bar health19
    text black size n16
    text black size n bold16Bold
    text blue size n16
    text blue size n bold16Bold
    text blue size s14
    text gold size l18
    text gold size l bold20Bold
    text gold size n16
    text gold size n bold16Bold
    text gold size s15
    text gray size l20
    text gray size l bold20Bold
    text gray size n17
    text gray size n bold17Bold
    text gray size s15
    text green size l bold20Bold
    text green size n18
    text green size n bold18Bold
    text green size s15
    text red size n18
    text red size n bold18Bold
    text white size l20
    text white size l bold20Bold
    text white size n18
    text white size n bold+ds18Bold
    text white size n bold18Bold
    text white size s15
    text white size s bold15Bold
    データベースによる理論上の設定実際の設定例
    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
    [データベースの情報]
    style_juranooutline.fnt
    special party player level12
    データベースによる理論上の設定実際の設定例
    12ClearTypejuranooutline

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

  8. linbiolinum_sansserif.fnt
    ステータス画面、アイテム説明、タイトル画面のキャラ名、ESCメニューのボタン、ジャーナル下欄小項目、画面右のクエスト説明文など、非常に用途の広いフォント。ほぼすべてのサイズが重要で、実例ではサイズ15を抜かしていますが、入れたほうが良かったかなと思います。入れればその分、字がはっきりします。データベースにはありませんが、サイズ19を抜かすと画面右に表示されるクエストの説明文がかすむことがあるので注意。なお、このフォントはメニュー言語欄の表示(そこから行く「言語選択欄」のではない)フォントも担当していますが、このフォントがない場合はシステムフォントがメニュー言語欄の表示に使用されます(つまり、言語欄はどんな場合も表示される仕様になっています)。Size 16=チュートリアルの各項目、ジャーナル下欄の小項目(デフォルトで縁取りになっているが、縁がない方が見やすい。ESCメニューの文字に影響し、立体的に表示させたいときは Shadow, 1,2,1 あたりが適当)。
    [データベースの情報]
    style_linbiolinum_sansserif.fnt
    button gold lg 0118
    button gold lg 01 bold18Bold
    button gold med 0116
    button gold vlg 01 bold22Bold
    button gold vlg 0222
    button gray gold lg 0118
    button gray gold med 0116
    button gray gold sm 0115
    button gray gold vlg 01 bold22Bold
    button gray gold vlg 0222
    button gray gold vsm 0114
    button gray med 0116
    no outline skill name17
    no outline skill name size s13
    no outline text brown size n17
    no outline text gold size n17
    no outline text gold size s15
    no outline text gold size t12
    no outline text gray 2 size t13
    no outline text gray gold size l20
    no outline text gray gold size n17
    no outline text gray gold size s15
    no outline text gray size n17
    no outline text gray size s15
    no outline text gray size t12
    no outline text lightblue size n17
    no outline text lightgold size n17
    no outline text lightgold size t12
    no outline text olive size n17
    no outline text olive size t15
    no outline text red size n17
    no outline text red size n bold18Bold
    no outline text white 2 size s15
    no outline text white size n17
    no outline text white size n 02 bold17Bold
    no outline text white size n bold18Bold
    no outline text white size s14
    no outline text white size s bold15Bold
    no outline text white size t13
    quest log quest name16
    quest log side quest name16
    quest widget objective16
    special char stats16
    special char stats number18
    special char stats number size s13
    special char stats size s15
    special skill class descriptions18
    special skill tiers15Bold
    special tutorial content title16Bold
    window subtitle 0115
    shrine window subtitle 0114[gdx2]
    データベースによる理論上の設定実際の設定例
    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_linlibertine_r.fnt
    quest widget quest16Bold
    quest widget region16
    quest widget title20Bold
    quest notification18Bold
    skill cool down text18Bold
    データベースによる理論上の設定実際の設定例style の設定
    16ClearTypeOutline, 1linlibertine_rlinlibertine_r style
    16ClearTypeBoldOutline, 1
    18ClearTypeBoldOutline, 1
    20ClearTypeBoldOutline, 1

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

  11. nevis.fnt
    [データベースの情報]
    style_nevis.fnt
    main menu large button20
    main menu runner button24
    main menu slide box16
    main menu small button14
    button gold vlg 0122
    button gray gold vlg 0122
    special rift destination29Bold
    window title 0120
    shrine window title 0120[gdx2]
    データベースによる理論上の設定実際の設定例
    14ClearTypeOutline, 1nevis
    16ClearTypeOutline, 1
    20ClearTypeOutline, 1
    22ClearTypeOutline, 1
    24ClearTypeOutline, 1
    29ClearTypeBoldOutline, 1

  12. nevisnooutline.fnt
    クエスト欄のタイトルおよび会話の人物名用フォント。ここを明朝体にすると人物名も明朝体になって会話ウィンドウにそぐわない感じがします。
    [データベースの情報]
    style_nevisnooutline.fnt
    conversation window name20
    help title22
    quest quest title22
    quest section headers21
    special devotion tabs14 [gdx1]
    データベースによる理論上の設定実際の設定例
    14ClearTypenevis
    20ClearType
    21ClearType
    22ClearType

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

  14. nevisshadow.fnt
    ゲーム画面上の左右に表示される難易度と場所名に使われます。オリジナルではゲームデザイナーの趣味でブラックレターと呼ばれる古風な飾り文字が使われていますが、ネイティブでも読みにくくて嫌う人が多数います。
    [データベースの情報]
    style_nevisshadow.fnt
    special compass region name19
    データベースによる理論上の設定実際の設定例style の設定
    19ClearTypeOutline,1nevisshadownevisshadow style

  15. nevisshadow-lg_spaced.fnt
    v1.1.4.0 で採用されたモンスター/NPC名の画面上部表示に使用されるフォント。フォントによっては太字にすると目立ちすぎます。また、FontForge による位置調整をする必要があります。
    [データベースの情報]
    style_nevisshadow-lg_spaced
    special race name18Bold
    special enemy/npc names26Bold
    データベースによる理論上の設定実際の設定例style の設定
    18ClearTypeBoldOutline, 1nevisnooutlinespacednevisshadow style
    26ClearTypeBoldOutline, 1

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

  17. savapromedium.fnt
    マップの地名表示に使われるフォントなので、これも重要です。字間行間が狭いフォントだとマップが読みにくくなります。
    size 12,14 がワールドマップ用のフォントで、size 16,18,24 はクエスト終了時のダイアログ用フォントです。
    ワールドマップ用のフォントは、ここでボールド設定にするよりも最初からボールド体のものを使ったほうが良い結果になります。
    [データベースの情報]
    style_savapromedium.fnt
    quest reward window continue button18
    quest reward window quest name18
    quest reward window quest title24
    quest reward window xp18
    special cool down16Bold
    special rift map primary labels14
    special rift map secondary labels12
    quick tip title16Bold
    データベースによる理論上の設定実際の設定例
    12ClearTypeOutline, 1savapromedium
    14ClearTypeOutline, 1
    16ClearTypeBoldOutline, 1
    18ClearTypeOutline, 1
    24ClearTypeOutline, 1

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

フォントの合成

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

  • 方法
    FontForgeは、Cドライブのフォルダしか対象にしていないので、予めドキュメントにfontsのようなフォルダを作っておいて、そこに合成したいフォントをコピーしておきます。
    日本語フォントに欧文フォントの味を加えたい場合は、欧文フォントに日本語フォントを「追加して統合する」のが簡便です。欧文フォントの空きに日本語フォントを追加する形になるので、日本語フォントのうち英数字記号が欧文フォントに変わる結果となります。

    例としてAlice-Regular というフォントにあおぞら明朝を統合してみます。

    1. まずAliceを開き、ついであおぞら明朝を開いておきます。この両者をうまく合成するには EM値を同じにしておかなければなりません。EM値は、上のメニューの エレメント > フォント情報 >> 一般情報 で確認できます。
      ※ EM(エム)値とはフォントの大きさのことで、活版時代に大文字のMの高さが基準にされたことが由来です。

    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 に移してゲームを起動します。見たところ、正常にビットマップ変換できたようです(上図右)。もっともタイトルの表示はうまくいったけれども、他の表示はうまくいかないということもあるので別の表示に使うときはまた注意しなければなりません。


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


フォントの位置調整

  • v1.1.4.0 および v1.1.4.1 でモンスター(とNPC)名とレベル、ヘルスの表示位置が変わったため、フォントの位置情報を変えないとUIに合わなかったり画面からはみ出たりするようになました。(もっとも、モンスターレベルとヘルス表示に関する linbiolinum_shadow-lg_spaced.fnt は数字だけなので、別のフォントにしたいのでなければ作成する必要はありません)
    NPC/モンスター(種族)名に使われているフォントは nevisshadow-lg_spaced.fnt で、その表示位置の変更は FontForge で行いますが、上下と左右で若干異なるので、順に説明します。


フォントのサブセット化

サブセット化の意義

フォントのサブセット化というのは、フォントに含まれている大量の文字から不要なものを削除し、フォントサイズを軽量化することです。日本語文字は欧米のものに比べるとけた違いに多いので、一つのビットマップフォントを作るときにサイズをいろいろ詰め込むと描画しきれず潰れてしまうため、それを防ぐためにサブセット化することが必要になります。ただし、シングルフォントだとクレジットなどに表示されない文字があるため、サブセット化はマルチフォント方式の場合に行うのがよいでしょう。
※ 「サブセットフォントメーカー」は、現在この目的のために利用できる唯一のフリーソフトです。いつ消えても不思議ではないので、利用するかもしれないと思った人は速やかにDLし保存しておきましょう。


目安として「第一水準漢字+第二水準漢字+記号+ローマ字+カタカナ+ひらがな+半角文字などの特殊文字」くらいあれば大抵の文章は読めるだろうということで、それ以外の文字をフォントから削除します。ただし、海外の業者翻訳の文には、通常の文字コードと違う文字を使うことがあるという点に注意してください。


方法

サブセットフォントメーカー

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


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

サブセットの軽量化

これまでフォントのサブセット化は、JIS漢字と記号などの非漢字を規定する JIS X 0213 をベースとした文字ファイルで行っていましたが、それだと文字総数が7,700以上もあってかなり無駄の多いフォントができます。ただ、それに含まれる漢字はかなり網羅的なので、将来のことを考えればやむなしとしていました。ところがこの無駄に大きなサイズが、Grim Internals を使用したときに、(おそらくメモリへの負担から)起動やプレー中にクラッシュを頻出させる一つの原因になっているようなので、より無駄を排したサブセットフォントを作成してみようと思い立ちました。それがブルガリア語乗っ取り型フォント軽量版です。その作成法を簡単にメモしておきます。


考え方としては、現在GDに使っている翻訳テキスト(MOD含む)から文字を重複しないように抽出して、それに絞ってサブセット化を行う、というものです。この方法をとれば、フォントサイズはかなり軽減します。もっとも、これまで使っていない文字を将来的に使うことになれば、また作り直さなければならない、という問題はありますが、DLC第二弾の完成によってGDの開発は一応終わったとみてよいので、そろそろ切り詰めたサブセット化を行ってもよいだろうと判断しました。

Windows10 付属の PowerShell を利用して使用文字(仮名、記号、漢字)を抽出する方法。

フォーラムに書き込んでくれた方の方法で、Windows10 を使用している人はこれによるのが簡単です。

  1. 文字抽出コマンド
    [Console]::OutputEncoding = [Text.Encoding]::UTF8
    $h = New-Object 'System.Collections.Generic.HashSet[Char]'
    $fs = gci -Recurse -File -Name -Include *.txt
    foreach($f in $fs) {
    	$ca = ((gc $f -Encoding UTF8 -Raw).Replace("`r","").Replace("`n","")).ToCharArray()
    	foreach($c in $ca) {
    		[void]$h.Add($c)
    	}
    }
    $o = [string]::Join('', ($h.GetEnumerator() | sort))
    $enc = New-Object "System.Text.UTF8Encoding" -ArgumentList @($false)
    [System.IO.File]::WriteAllLines((Join-Path $PWD "zcharlist.dat"), $o, $enc)

  2. コマンドの使い方
    適当なフォルダを作って、解凍したバニラやmodの日本語ファイルをコピーしておきます。コマンドはサブフォルダも見るので、それぞれの日本語ファイルをサブフォルダとして独立・並列に置いて結構です。Shift+右クリックするとPowerShell ウィンドウをここで開くというコマンドが出るので開いて、上記のコマンドを丸ごとコピーして、PowerShellウィンドウ上で右クリックして貼り付け、Enterキーを押すと実行されます。3秒くらいで zcharlist.dat というファイルが生成されます。中身はソート済みの文字リストです。
    カレントディレクトリ以降を探索して拡張子が.txtのファイルの中身を列挙してるだけなので、スクリプト自体はどこでも使えます。

  3. 抽出結果(2024年3月2日現在)
    これは、バニラ(ベース+DLC)と主要なmodの日本語ファイルを一つのフォルダに入れて上記コマンドで抽出した結果です。
    サブセット用文字: zcharlist.dat

    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~©çéñō–—―’“”…ⅡⅥ- 、。々〈〉《》「」【】~ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろわをんァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチッツテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロワンヴヵヶ・ー一丁七万丈三上下不与且世丘両並中串丸丹主久乎乏乗乙九乞乱乳乾亀了予争事二互五井亘些亜亡交亥享亭人仄仇今介仏仔仕他付代令以仮仰仲件任企伍伏伐休会伝伯伴伸伺似伽但佇位低住佐体何余作併使例侍侘供依侠価侮侯侵侶便係促俊俑俗保信修俺倉個倍倒倖候借倣値倦倫偉偏做停健偲側偵偶偽傀傍傑傘備催傭傲債傷傾僅働像僕僚僥僧儀億儒儘儚償儡優儲元兄充兆先光克免兎児党兜入全八公六共兵其具典兼内円冊再冒冗写冠冤冥冬冶冷凄凌凍凝几凡処凶凸凹出刀刃分切刈刊刑列初判別利到制刹刺刻剃則削前剖剛剣剤剥副剰割創劇力功加劣助努劫励労効勁勃勅勇勉動勘務勝募勢勤勧勲勾勿匂包匍匐化北匠匹区医匿十千午半卑卓協南単博卜占印危即却卵卸卿厄厚原厭厳去参又叉及友双反収叔取受变叙叡口古句叩只叫召可台叱史右叶号司各合吉吊同名后吐向君吞吟吠否含吸吹吻呂呆呈告呑呟周呪味呵呻呼命咄咆和咎咏咥咬咲咳哀品員哨哮哲唄唆唇唐唖唯唱唸唾商問啓啜善喉喋喘喚喜喝喧喩喪喫喰営嗅嗚嗜嗟嗢嘆嘔嘘嘩嘲嘴噂噌噛噤器噪噴噺嚇嚙囁囚四回因団囮困囲図固国圏園土圧在地均坊坐坑坩垂型垢垣埃埋城域埠執基堂堅堕堝堪報場堵塁塊塔塗塚塞塩填塵境墓増墜墟墨墾壁壇壊士壮声売壺変夏夕外多夜夢夥大天太夫央失夷奇奈奉奏契奔套奢奥奨奪奮女奴奸好如妄妊妖妙妥妨妬妹妻妾姉始委姿威娘娠娯娼婆婚婦媒嫉嫌嬉嬢嬪嬰子孔字存季孤学孫孵宅宇守安完宗官宙定宛宜宝実客宣室宥宮宰害宴宵家容宿寂寄密富寒寛寝寞察寡寧審寵寸寺対寿封専射将尊尋導小少尖尚就尺尻尼尽尾尿局屁居屈届屋屍屑屓展属屠層履屯山岐岩岬岳岸峒峙峠峡峰島峻崆崇崑崖崙崩嵌嵐川州巡巣工左巧巨巫差己巻巾市布帆希帝帥師席帯帰帳帷常帽幅幕幣干平年幸幹幻幼幽幾庁広庇床序底店府度座庫庭庶康庸廃廊廟延廷建廻弁弄弊式弓引弛弟弦弧弩弱張強弾当彗形彩彫彰影彷役彼彿往征径待徊律後徐徒従得徘御徨復循微徳徴徹心必忉忌忍志忘忙応忠快念忽怒怖思怠急性怨怪怯恋恍恐恒恣恥恨恩息恵悍悔悟悠患悦悩悪悲悶悼情惑惚惜惧惨惰想惹愁愉意愕愚愛感慄慈態慌慎慕慢慣慧慨慮慰憂憊憎憐憑憤憧憩憲憶憺憾懇懐懲懸懺成我戒或戦戮戯戴戸戻房所扇扈扉手才打払扱批承技把抑投抗折抜択抱抵抹押抽担拉拌拍拐拒拓拗拘招拝拠拡括拭拳拵拶拷拾持指按挑挙挟挨挫振挺挽挿捉捌捕捗捜捧捨据捷捻掃授掌排掘掛掟掠採探接控推措掲掴掻揃揉描提揚換握揮援揺損搬携搾摂摘摩摯摺撃撒撓撚撤撥撫撲撹擁操擦擬擲攣攪攬支改攻放政故敏救敗教敢散敬数整敵敷斂斃文斉斎斐斑料斥斧斬断新方於施旅旋族旗既日旦旧旨早旺昂昆昇明昏易昔星映春昧昨是昼時晒晩普景晰晴晶智暁暇暈暑暖暗暫暮暴曇曖曙曜曝曰曲更書曹曾替最月有朋服朗望朝期朦朧木未末本札朱朴朽李材村杖束条来杭杯東松板析林枚果枝枠枢枯枷柄染柔柱柳査栄校株核根格桃案桝桟桶梁梟梯械梱棄棍棒棘棚棟森棲棺椅植検楊楚楢業極楼楽概榴構槌槍様槽標模権横樫樹樽橋機檀檎檻欠次欲欺歌歓止正武歩歪歯歳歴死殆殉殊残殖殲殴段殺殻殿毅母毎毒比毘毛毟毯氏民気水氷永汁求汗汚汝江池汰汲決沃沈沌沖沙没沢沫沱河沸油治沼沿況泄泉泊泌法泡波泣泥注泰泳洋洒洗洞津洩洪活派流浄浅浜浪浮浴海浸消涙涛涜涯液涼淀淋淑淘淡淫深淵混添清渇済渉渋渓減渡渦温測港渾湖湧湯湾湿満源準溜溝溢溶溺滂滅滋滑滓滝滞滲滴漁漂漆漏演漕漠漢漫漬漿潔潜潤潮潰澄澱激濁濃濡濫瀉瀑瀕瀬火灯灰灼災炉炎炭炯炸点為烈烏烙焉焚無焦然焼煉煌煎煙照煩煮煽熊熔熟熱熾燃燈燕燥燦燭燻燼爆爛爪爬爵父爺爾片版牌牙牛牝牡牢牧物牲特牽犠犬犯状狂狐狗狙狡狩独狭狼狽猛猜猟猪猫献猶猾猿獄獅獣獰獲玄率玉王玩珀珍珠珪班現球理琥琴瑞瑠璃璧環璽瓦瓶甘甚生産甦用田由甲申男町画界畏畑留畜畢略番異畳疑疥疫疱疲疹疽疾病症痒痕痘痙痛痩痴痺瘡瘤瘴療癇癒癖癪癬発登白百的皆皇皮皺皿盃盆益盗盛盟監盤盪目盲直相盾省眉看真眠眩眺眼着睡督睥睨瞑瞞瞥瞬瞭瞰瞳瞼矛矢知短矮矯石砂研砕砥砦砲破硝硫硬碌碑碧碩確磁磨礎礫示礼社祀祈祓祖祝神祠祭祷禁禄禅禍福禽禿秀私秋科秒秘秤秦秩称移稀程税稚稜種稲稼稿穀穂積穏穢穣穫穴究空穿突窃窒窓窟窩窪窮窯立竜章竦竪端競竹笏笑笛符第筆筈等筋筒答策箇箔算管箱箴節範築篝篤篭簒簡簾簿籍籐籠籾粉粋粒粗粘粛粧精糊糞糧糸系糾紀約紅紋納紐純紙級紛素紡索紫累細紳紹紺終組絆経結絞絡絢給絨統絵絶絹継続綬維網綴綺綻綿緊緋総緑緒線締編緩緯練縁縄縒縛縞縦縫縮績繁繊繋繍織繕繭繰纏罠罪置罰署罵罹羅羊美群羨義羲羽翅翌習翔翠翡翳翻翼老考者而耐耕耗耳耽聖聞聡聳聴職聾肉肋肌肖肘肝股肢肥肩肪育肺胃胆背胎胚胞胡胴胸能脂脅脆脇脈脊脚脛脱脳腐腑腔腕腫腰腸腹腺腿膏膚膜膝膨膿臆臓臣臨自臭至致興舌舎舐舗舞航般舵船艦良艱色芒芝芯花芳芸芻芽苔苛若苦英茂茎茨茫茶茸茹草荊荒荘荷莫莱菌菜菩華萌萎萬落葉著葛葬蒔蒙蒸蒼蓄蓋蓑蓬蓮蔑蔓蔦蔵蔽薄薇薔薙薪薬藤藪藻蘇虎虐虔虚虜虫虹蚕蚤蛆蛇蛛蛮蛾蜂蜃蜘蜥蜴蝋蝕蝗蝙蝠蝶螂融螺蟠蟲蟷蟹蠅蠍蠢蠱血衆行術街衛衝衡衣表衰袋袖被裁裂装裏裔裕補裸製複褒褪襞襟襲西要覆覇見規視覗覚覧親観角解触言計訊討訓託記訛訣訪設許訳訴証詈詐評詛詞詠詣試詩詫詮詰話該詳誇誉誌認誓誕誘語誠誤説読誰課誹調談請諍論諜諦諫諸諾謀謁謎謗謙講謝謳識譚譜警議譲護讃讐谷豊豚象豪豹貌貝貞負財貢貧貨販貪貫責貯貰貴貶買貸費貼貿賀賂賄資賊賑賛賜賞賠賢賦質賭購賽贄贅贈贔贖赤赦走赴起超越趣足跋距跡跨跪路跳践踊踏踪踵蹂蹄蹴躇躊躍躙身躯躱車軋軌軍軒軟転軸軽較載輝輩輪輸轄轍轟辛辜辞辣辱農辺込辿迂迄迅迎近返迦迫述迷迸追退送逃逆透逐途這通逝逞速造連逮週進逸遁遂遅遇遊運遍過道達違遜遠遡遣遥適遭遮遵遷選遺避邁還那邦邪邸郊郎部郭郷都酊酋配酒酔酩酬酷酸醒醜醸采釈里重野量金釘釜針釣鈍鈴鉄鉛鉢鉤鉱銀銃銅銘銭鋒鋭鋳鋸鋼錆錐錠錨錫錬錯録鍋鍛鍮鍵鎌鎖鎚鎧鎮鏡鐘鑑長門閂閃閉開間関閣閥閲閻闇闊闘防阻阿陀降限陛院陣除陥陪陰陳陵陶陸険陽隅隆隈隊階随隔隕隙際障隠隣隷隻隼雀雄雅集雇雌雑離難雨雪雫雰雲零雷雹電需震霊霍霜霞霧露靄青靖静非靠面革靭靴鞄鞘鞭韓音韻響頁頂頃項順須預頑頓領頬頭頸頻頼題額顎顔顕願類顧顰風飛食飢飯飲飼飽飾餅養餌餓餞館饉饗首香馬馳馴駁駄駆駐駒駕騎騒験騙騰驕驚骨骸髄髏髑高髪鬨鬱鬼魁魂魄魅魔魚鮫鮮鯰鰻鱗鳥鳳鳴鴉鶏鶴鷲鷹鹿麒麓麗麟麦麻黄黒黙鼓鼠鼻齢龍!#%&()+.123456789:=?~、ァィゥョッーアイウエオカキクケコシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユラリルレロン゙゚�

漢字抽出ソフトを使う方法

フリーソフトの kanji Extractor (XtractKanji) を利用。ただし、このアプリが正確に抽出できるのは SJis 漢字だけなので、仮名や記号など非漢字部分については若干不安が残ります。

  • 作業工程は以下の通り
  1. 作業管理用として all_text フォルダを作成
  2. コマンドプロンプト (cmd) で全テキストを一つのテキストに集成
    エクスプローラのアドレスバーを左クリックして全選択状態で cmd と打つと、そこをルートにしたコマンドプロンプトが現れる
    1. 完全日本語化ファイルを対象に、次のコマンドでDLCを含めたバニラのテキストを纏める
      type *.txt > all_text.txt
      ("type *.txt > 何某.txt" で複数のテキストを一つの「何某」テキストファイルにリダイレクトする)
      all_base, all_aom, all_fg の三種のテキストを作成
    2. 同じく DoM, Grimarillion を対象に
      all_dom, all_grimaril の二種のテキストを作成
      これらに含まれている cataclysm, d3, tq の日本語化テキストの漢字をバニラの日本語化テキストに追加すれば、サブセット用にほぼ十分と考えられる
      以上で all_text フォルダに五種のテキストができる
  3. 更にこの all_text フォルダに cmd をかけて全テキストを一つに纏める
    名称は all_text.text
  4. all_text.text を対象にして kanji Extractor で漢字を抽出するが、その前に all_text.text のエンコードが Shift-jis であることを確認(ANSIで保存しないこと)。utf-8 だった場合は文字コード設定を Shift-jis にし直して何か一文字書いて保存し、それに抽出した文字をコピー上書きして all_text_jis.text として保存。
    Shift-jis で保存した纏めテキストを kanji Extractor で抽出し(一分かかかるかどうかで終る)、all_kanji_jis.txt として保存。なお、最初に書いたとおり、このアプリでは仮名と記号は正確に書きせません。

戦闘用フォント、タイトル用フォント (combattext, criticalhit, titlescreen) の軽量化

これらのフォントは使われている文字がさらに少ないので、別個にサブセット化します。究極的には、すべてのフォントについて対象を正確に見極めてそれぞれサブセット化すればよりサイズは減りますが、手間がかかりすぎるのでこの程度に妥協。ゲームのオリジナルな戦闘用文字はこれよりも少ないですが、Grim Internals を利用する場合はこれくらいは必要になります。

戦闘用文字

逸出血中毒燃焼感電気絶睡眠捕縛凍結石化生命力減衰少吸収体内損傷近接遠隔戦闘低下詠唱防御攻撃走行移動速度装甲冷却確率物理耐性貫通火炎酸不能挑発増加精神支配恐怖混乱削短縮刺突雷報復反射持続時間強向上
!"#$%&'()*+,-./0123456789:;<=>?ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|} ~あいえがきくさしじすせただってでなにのはまらりれわをんアァィイウエォオカキクグサシジスタダッテデトドナネノバパヒフブプヘベペポマミムメモュョラリルレロン?!

タイトル画面用文字

!"#$%&'()*+,-./0123456789:;<=>?ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|} ~あいうえおがきくさしじすずせただってでとなにのはまりれわをんーアィイウエォオカキクグゲサシジスタダッテデトドナネノバパヒフブプヘベペポマミムメモュョラリルレロン?!必専用【】訪開発参加完全日本語版名詞等英語版選択下©


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


コメント

  • briosopro.fntでアイテムの文字間調節できないのは仕様なんですかね -- 2024-01-29 (月) 21:42:12
    • 「フォントの各種設定」で解説したように、spacing のところ(デフォルトであれ個別であれ)を+1, -1とすれば、広げたり狭めたりできます。 -- Matougi? 2024-01-29 (月) 23:13:46
  • デフォルト側で極端に大きな数字を入れても会話文等は明確に変化があるけど、アイテム名だけは変化ないんですよね~ -- 2024-01-30 (火) 10:29:12
    • フォントにもよると思いますが、一般的にはかなり変わるはずです。例えば源真ゴシックだとDefault Spacing 0, -3 で「各種設定」に添付した図のように明確に違いが出ます。もっとも、フォントそのものの幅が変わるわけではないので、期待したほどコンパクトにならないということはあるかもしれません。 -- Matougi? &new{2024-01-30 (火)
  • なにかが間違ってたのか、再度やったら反映されました。画像付きで丁寧な解説ありがとうございます! -- 2024-01-30 (火) 22:23:52