Glyphs3で(独自の文字セットの)日本語フォント作る時の設定あれこれ
Glyphs3で日本語のフォントを「仮名と英数字」「漢字は教育漢字まで」など独自の文字セットで作ることが多いのですが、
OSやアプリケーションで、幅広く使えるフォントにするにはいくつか設定が必要となります。
日本語のフォントを公開・販売していく中で、検証中に出た不具合や報告いただいたエラーを解決するためにやってきた方法をまとめようと思い、このnoteを書いています。
内容は、主にどのフォントにも適用する共通のカスタムパラメーターの設定です。
記事公開時点での、自分の環境・前提は以下の通りです。
- Glyphs3.4
- 仮名フォント・漢字は教育漢字を収録など独自文字セットを作成
- バリアブルフォントと各スタイルを書き出したttfを作成
- 公式のサポート対象となってるバージョンのOSやアプリに対応させる
(同じ設定でotfを書き出して検証したところ、特にエラー出ることなく使えているので、otfを作成する時にも参考にしていただけるかと思います。)
サクッと知りたい方向けに、ぱっと見で分かるスクリーンショットを貼って起きます。


何と言っても、まずはコレから。
ここから、各設定を見ていきます。フォント情報(⌘i)>フォントタブのカスタムパラメータについてです。
glyphOrder: .notdef, space
ROS: Adobe-Identity-0
codePageRanges: Latin1, JIS/Japan
おまじないのような設定。各項目については、ものかのさんのGitHubにまとめられています。
monokano/Glyphs-Template: Glyphsの日本語フォント用テンプレート
https://github.com/monokano/Glyphs-Template
metaテーブルの追加
これだけだと、OfficeアプリやWindowsで「日本語」と認識してもらえませんでした。(仮名フォントだと判定に必要な文字や字数が不足しているのか?)日本語のフォントだと認識してもらうために、次の設定を追加。
meta table: dlng:Jpan, slng:Jpan, Latn
meta tableは、フォントがどの言語用のフォントかをアプリなどに明示するため。おそらくdlng (design languages: どの言語に向けて作られたか)だけでも良さげだが、slng (supported languages: どの言語をサポートしているか)も設定しています。
meta — Meta table (OpenType 1.9.1) - Typography | Microsoft Learn
https://learn.microsoft.com/ja-jp/typography/opentype/spec/meta
metaテーブルの設定の仕方は、
カスタムパラメータの「+」を押した後、「meta テーブル」を選択し、
タグを選択し、

日付(..data?)に、言語ごとに決められた4文字を入力。

OKを押せば、完了!

vmtxテーブルを出力するように設定
縦組に対応している日本語フォントだと縦書きの字形や設定が入っています。縦書きに関する情報がアプリ側が理解できるような形になっていないとエラーや不具合が起きる可能性があります。(Safariで表示が崩れたり、Windowsでインストールできなかったり...)
それを防ぐために、フォント情報>フォントのカスタムパラメータに以下の設定を追加します。
Export vmtx table: ☑️
vmtxは縦組みの時の文字の縦方向の送り量(高さ)やサイドベアリング(TSB)などの情報が保存されているテーブルです。
特定の字形(結合字形)を含む場合は要確認
結合文字であるvoicedcomb-kanaやsemivoicedcomb-kana ( unicode 3099, 309A )を入れてフォントを書き出すとGDEFテーブルが出力されます。出力されることには、特に問題はないのですが…
(条件が絞りきれてませんが)日本語の静的なフォントの場合だとバージョンが「0.0」と存在しないバージョンになってしまうことがあり、一部のアプリケーションでエラーが起きます。
※結合文字のvoicedcomb-kanaやsemivoicedcomb-kanaは、かな+濁点「い゙」等を表示する際に使われます。
※バリアブルフォントを書き出すとバージョンが「1.3」になるためエラーは起きない。(GDEFテーブルのバージョンは、1, 1.2, 1.3のいずれかである必要があります。)
※フィーチャーで文字と結合文字を組み合わせて出力するように設定するとエラーは起きない事例あり。
voicedcomb-kana ( unicode 3099 )
semivoicedcomb-kana ( unicode 309A )
書き出したフォントのGDEFテーブルのバージョンを確認・修正できるスクリプトを作りましたので、上記2つの字形を出力する際の確認・修正に良かったら使ってください!
↓スクリプトの使い方


https://github.com/toktaro/Glyphs-Scripts/blob/main/scripts/CheckandFixGDEFTable.py
「チェックするのがめんどくさい」「結合文字は不要」であれば、出力時に含めるの☑️を外す等し、出力されないように設定してしまうのも手です。

濁点・半濁点を字形に入れて出力する場合は、「voiced-kana ( unicode 309B )」「semivoiced-kana ( unicode 309C )」を使うようにします。
*コンポーネントとして、voicedcomb-kanaを濁点、semivoicedcomb-kanaを半濁点に使う分には問題は確認されていません。
(余談)フォントとバリアブルフォントを書き出す時のフォント名
バリアブルフォントとスタティック(一般的)なフォントを書き出す時は、バリアブルフォントの出力設定でファミリー名に「VF」を追加しておきましょう。
フォント・バリアブルフォントが同名だと、人もアプリもどっちのフォントを参照しているのか混乱し、不具合が起きます!

以上、「なんだこのエラー…」「どこにも解決策載ってない\(^o^)/」と苦戦したことをまとめてみました。
Glyphs3のバージョンが変わると不要になるものもあるかもですが、過去の自分と同じように苦戦している方の参考になれば嬉しいです!
独自の文字セットでフォントを作る時は、いつも使っている文字をカスタムフィルタとしてまとめておくと何かと便利です。
カスタムフィルタを簡単に作成できるツールを作って、記事にまとめていますので、見てみてください!
(投げ銭用に有料になっていますが、記事の内容もツールも無料で確認・使用できます!)
設定したGlyphsファイルをAdobe illustratorのテンプレート(ait)形式のように扱いたい..という場合は、macOSの「ひな形」機能を使うと便利です!
詳しくは、こちらの記事をご覧ください。
普段はこんなフォントを作ってBOOTHで公開・販売しています!

