ディスカッション (11件)
小さなスクリーンでの表示にぴったりな、5x5サイズのピクセルフォントを作成しました。省スペースなUIデザインや、レトロゲーム風のインターフェース開発にぜひ活用してみてください。
サブピクセルレンダリングを活用すれば1x5でもいけるよ https://www.msarnoff.org/millitext/
CJK(中国語・日本語・韓国語)文字についても似たような議論があるよ https://chinese.stackexchange.com/questions/16669/lowest-pixel-resolution-needed-to-support-chinese
作者が見てたら伝わるといいな。小文字のtだけど、小文字のkが上に1ピクセル伸びてるみたいに、クロスの部分の上に1ピクセル足すと良くなると思う。今のままだと大文字のTに見えちゃうんだよね。でも、すごくよくできてる。シェアしてくれてありがとう。
4x4: "E", "M", "W"をきれいに描くには足りない。
とはいえ、小文字の高さは大文字より低くしたいって考えると、5x5だと "e" をきれいに描くには足りないから、縦に少なくとも6ピクセルは必要。それだと今度はディセンダー(下にはみ出す部分)がある文字をきれいに描けないから、少なくとも縦7ピクセル必要になる(厳密には "g" や "y" のディセンダーをベースライン上に置きつつ区別するなら8ピクセルあるべきだけど、まあ妥協点としてはありかな)。それに実際は、文字と文字の間に余白が必要だから、結局各文字を描くには少なくとも8x6ピクセルは必要ってことだね。
Jason KottkeのSilkscreenフォントを忘れちゃいけないね: https://kottke.org/plus/type/silkscreen/
5x5はすごくいいし、3x5も悪くないね。ただ残念なことに、どちらもASCIIを網羅してない。サイズも少し誤解を招くかな。結局余白を入れる必要があるから、実際には6x6か4x6のグリッドが必要だね。
自分はSpleenがお気に入り:
https://github.com/fcambus/spleen
これの5x8フォントはASCIIをフルカバーしてる。ただほとんどのグリフは実質4x8で、水平方向の余白が含まれてる感じ。今やってるプロジェクト用に調整して全部4x8にしてみた。これだと5x9グリッドで表示できて、すべてのグリフ間に縦横の余白を確実に確保できるんだ。かなり快適だよ。
90年代のPCの定番ゲームに出てくる5x6のピクセルフォントがずっと好きだったな:
https://covertaction.fandom.com/wiki/Cryptography_(Mini-Game)
特に緑色のテキストで高さが1ピクセル余分にあるおかげで、カッコいい「イタリック」風の表現ができてたんだよね。特にE、D、J、U、Vなんかは良かった。
オン・オフの2状態じゃなくてマルチレベルのグレースケールを使えば、もっと小さいフォントサイズでもテキストを可読にできるよ。ただし「文字(letters)」じゃなくて「テキスト(text)」って言わないといけない。つまり、ぼやけた文字を文脈から人間が推測するっていう前提だけどね。しかもこれには専用のフォントすら必要ない。
例: https://imgur.com/a/text-80-characters-per-line-240-pixels-wide-AlYrnSS
これだと文字間の余白を含めて、平均すると1文字あたり水平3ピクセルだよ。
こういうフォントはLED看板みたいな巨大スクリーンにも最適だよね。ピクセルが大きくて解像度がめちゃくちゃ低いから、論理的には極小サイズのスクリーンってことだし。
極小フォントのほとんどは、特に1:1スケールで表示すると一目で読むのがめちゃくちゃキツいんだよね。
数年前にゲームMODを作ってた時、すごく小さくてコンパクトなフォントが必要だったんだけど、3x3とか3x5、果ては2x5までいろいろ試しても、どれもまともに読めなかった。
最終的に、zephramっていう人が作った「Gremlin-3x6」フォント[0]に行き着いた。1ピクセルだけ背が高いけど、横並びにしたときは十分コンパクト。何より重要なのは、標準的なラテン文字のどれもがしっかり区別できて、拡大しなくても読めること。
残念ながら、それ以来zephramはFontStructのアカウントを消しちゃって、フォントも全部消えちゃったんだけど、自分のMODリポ[1]にCC0ライセンスと一緒にコピーを置いてあるよ。プロジェクトのスクリーンショット[2]で実際のレンダリングが見られる。