---
title: "Draw Your Font — 手書き文字の写真から、そのまま入れて使えるフォント（TTF/WOFF）を作る"
description: "手書き文字の写真から、そのまま入れて使えるフォント（TTF/WOFF）を作る"
upstream_path: user-guide/skills/optional/creative/creative-draw-your-font.md
upstream_blob: 23a0596bc8ce5ee92b489c5a0e37220686441bb3
sources:
  - https://hermes-agent.nousresearch.com/docs/user-guide/skills/optional/creative/creative-draw-your-font
---

# Draw Your Font {#draw-your-font}

手書き文字の写真から、そのまま入れて使えるフォント（TTF/WOFF）を作ります。

## skill の情報 {#skill-metadata}

| | |
|---|---|
| 提供元 | 追加インストール型 — `hermes skills install official/creative/draw-your-font` で入れます |
| パス | `optional-skills/creative/draw-your-font` |
| バージョン | `0.1.0` |
| 作者 | Danilo Znamerovszkij (https://github.com/danilo-znamerovszkij/draw-your-font)、Hermes Agent が移植 |
| ライセンス | MIT |
| 対応プラットフォーム | linux, macos, windows |
| タグ | `font`, `handwriting`, `typography`, `ttf`, `woff`, `vision`, `creative` |
| 関連 skill | [`pixel-art`](/hermes/docs/user-guide/skills/optional/creative/creative-pixel-art/) |

## 参考: SKILL.md 全文 {#reference-full-skillmd}

:::info
以下は、この skill が呼び出されたときに Hermes が読み込む定義の全文です。skill が有効なあいだ、エージェントはこれを指示として見ています。
:::

# draw-your-font {#draw-your-font}

手書きの文字を撮った写真を入れると、そのまま使えるフォントが出てきます。見て判断するのはあなたの仕事です（文字を見つけて名前を付け、出来を見極めます）。図形の処理は CLI がすべて引き受けます（輪郭の抽出、字形の寸法、フォントの組み立て）。SVG のパスや座標を自分で書き換えてはいけません。

## Hermes での準備（セッションごとに 1 回） {#setup-in-hermes-once-per-session}

CLI はバージョンを固定した npm パッケージ `draw-your-font@0.1.0` です。npx から実行します（Node 18 以上が必要で、全体へのインストールは不要です）:

```bash
npx -y draw-your-font@0.1.0 --help
```

以下の例で `$DYF` と書かれているところは `npx -y draw-your-font@0.1.0` に読み替えてください。シェルの変数はツールの呼び出しをまたいで残らないので、毎回コマンド全文を書きます。処理はすべて手元で行われ、利用者の手書き文字が端末の外に出ることはありません。

Hermes では、写真はメッセージ中のファイルパスとして届くか、ゲートウェイの画像キャッシュ経由で届きます。CLI には実際のファイルパスを渡してください。会話に写真が現れてもパスがない場合は、ファイルを渡してもらってください（CLI が必要とするのは実物のファイルであって、あなたが見た記憶ではありません）。

見て判断する手順（一覧シート、プレビュー、字形の一覧）は、PNG を `vision_analyze` で読み込んで行います。

## どの流れで進めるか決める {#decide-the-flow}

- **写真がまだない** → 台紙を用意する方法を勧めます。印刷して、書いて、撮ってもらいます。
- **手書きの写真をもらった** → 下の本流に進みます。
- **画像を貼り付けてもらったがファイルパスがない** → あなたには見えていますが、
  CLI にはファイルが必要です。画像ファイルをターミナルにドラッグしてもらう（そうするとパスが入ります）か、パスを直接教えてもらってください。記憶をもとに進めてはいけません。
- **このセッションで作ったフォントを直したいと言われた** → 「手直し」の節へ。

## 台紙を使う流れ（いちばんきれいに仕上がります） {#template-flow-best-quality}

```bash
$DYF template -o template.pdf --charset minimal   # or: spanish
```

利用者にはこう伝えてください。印刷して、濃いペン（0.5 mm 以上）で 1 マスに 1 文字ずつ書き、文字を実線の上に乗せるように置きます。それから各ページを明るいところで真上から撮って、ファイルパスを教えてもらいます。マス目は薄いグレーで印刷され、処理の途中で消えます。残るのはインクの跡だけです。

## 本流: 写真からフォントへ {#main-flow-photos-font}

**1. 切り出す。** 台紙のページでも、自由に書いた写真でも同じように使えます:

```bash
$DYF segment photo1.jpg photo2.jpg -d work
```

**2. 見てから、名前を付ける。** `work/contact-1.png` を `vision_analyze` で読み込みます（写真 1 枚につき 1 つ）。見つかったかたまりには番号が振られています。ここがあなたの目の出番です。次を確かめてください:

- 書かれた文字ひとつひとつに、枠がちょうど 1 つずつ付いているか。別々の線で書かれた文字は
  枠 2 つに分かれることがあります（名前の付け直しで対応できます。主な枠に文字を割り当て、
  かけらのほうは `""` にします）。また、くっついた 2 文字が 1 つの枠に入ることもあります
  （その部分だけ撮り直してもらうか、その文字をあきらめます）。
- 不要な枠（影、罫線、汚れ、ページの端）は `""` にします。

そのうえで `work/labels.json` に、かたまりの番号と文字の対応を書きます。たとえば
`{"0": "A", "1": "B", "7": "", "8": "a"}` のようにします:

- 台紙のページ: 並び順は台紙に印刷された文字の並びどおりです。鵜呑みにせず、
  実物と照らし合わせてください。minimal の並びは A–Z、a–z、
  0–9、そのあと `.,;:!?'"-()@#&+/$` です。spanish ではさらに `ÑñÁÉÍÓÚáéíóúü¿¡` が続きます。
- 自由に書いた場合: 一覧シートから 1 文字ずつ見分けます。形がそっくりな大文字と小文字
  （S/s、O/o、C/c、X/x など）は、まわりとの大きさや位置関係で決めます。確信の持てる
  隣の文字と比べてください。
- 何を書いたか利用者が教えてくれた場合（たとえば「ABC のあとに abc」）。それを信じて、
  読む順（上の行から、左から右へ）に対応させ、目でも確かめます。
- 同じ文字が 2 回出てくる場合は、出来のよいほうに名前を付け、もう一方は `""` にします。

**3. 組み立てる。**

```bash
$DYF build -d work --labels work/labels.json --name "Dan's Hand"
```

フォントの名前は利用者にちなんだものにします（はっきりしなければ質問は 1 つだけにしてください）。

**4. 渡す前に見極める。** `work/preview.png` と `work/glyphs.png` を `vision_analyze` で読み込み、
アートディレクターのつもりで見てください:

- 途切れたり、にじんだりした文字（輪郭の抽出に失敗）→ たいていはペンの線が薄い場合です。
  `--weight 1` を試すか、その文字だけ撮り直してもらいます。
- 全体的に細すぎる／太すぎる → `--weight 1` か `--weight -1` を付けて組み直します。
- 輪郭がギザギザ → `--smooth 1.5`（最大 2）を付けて組み直します。
- 文字の位置がおかしい（たとえば `g` が下に伸びていない）→ たいていは名前の付け間違いです。
  labels.json を直して組み直します。
- 丸い部分が塗りつぶされている（b、o、g が黒く見える）。これは起きないはずのことです。
  起きた場合は切り出した画像が汚れているので、撮り直してもらってください。

組み直しは手間もリスクも小さいので、何度でも試してかまいません。まず自分で直せるものを直し、
インクそのものに問題があるときだけ撮り直しをお願いしてください。

**5. 渡す。** フォントは `<workdir>/<NameWithoutSpaces>.ttf` にできます（組み立ての
出力に正確なパスが表示されます）。そのパスと、入れる手順を伝えてください。
macOS ならダブルクリックして「フォントをインストール」、Windows なら右クリックして「インストール」です。
足りない文字があることも伝え（組み立ての出力に、まかなえなかった文字が表示されます）、
押しつけずに次を提案してください:

- Web 用の形式と CSS: `--formats ttf,woff,woff2,css` を付けて組み直します。
- 読みやすさの診断（後述）。
- 足りない文字を埋めるための次の写真。**すべての**写真（前のものと新しいもの）を
  新しい作業ディレクトリに入れて segment をやり直します（`$DYF segment p1.jpg p2.jpg -d
  work2`）。そのうえで新しい一覧シートから名前を付け直し（かたまりの番号は振り直され、
  前の labels.json は引き継がれません）、新しい作業ディレクトリから組み立てます。

## 手直し（会話しながら詰める） {#refine-conversational-iteration}

| User says | Do |
|---|---|
| 「もっとなめらかに／丸く」 | `build … --smooth 1.5`（最大 2） |
| 「もっと太く」 | `build … --weight 1`（最大 2） |
| 「もっと細く」 | `build … --weight=-1`（マイナスの値には `=` の形が必要です） |
| 「g の形がよくない」 | その文字の `work/crops/<id>.png` を見せて、撮り直しかなめらかにするかを提案します |
| 「文字が違う」／入れ替え | labels.json を直して組み直します |
| 「woff2 が／Web 用がほしい」 | `build … --formats ttf,woff,woff2,css` |
| プレビューの文言を変えたい | `$DYF preview -d work --text "…"`（組み立てのあとで） |

手直しのコマンドはどれも、保存済みの切り出し画像から組み直します。インクそのものに
問題がある場合を除いて、撮り直しは要りません。

## 読みやすさの診断（渡したあとに提案します） {#legibility-report-offer-after-delivering}

```bash
$DYF preview -d work --text "minimum mill rn m cl d I l 1 O 0 quick brown fox" -o work/legibility.png
```

これを読んで、正直に、でも思いやりを持って伝えてください。本文用としての 10 点満点の点数、
紛らわしくなりやすい組み合わせを 2〜3 個（rn→m、cl→d、I/l/1、O/0）、そして具体的な直し方を 1〜2 個
（その文字を大きく書き直す、字間を広げる）です。見出しやメモのような用途は、
長い文章より多少崩れていても問題ありません。この診断を理由に受け渡しを止めてはいけません。
これは助言であって、通過条件ではありません。

## 困ったとき {#troubleshooting}

かたまりが多すぎる／少なすぎる、グレーの補助線が消えずに残る、
影がかたまりとして拾われる、ボールペンの線が薄い、といった場合は
`references/troubleshooting.md` を参照してください。
