- UnsciiはクラシックなシステムフォントをベースにしたビットマップUnicodeフォントセットで、キャラクターセルアートとターミナル・プログラミング環境の両方に適した書体
- 主なバージョンは**unscii-8(8×8ピクセル)とunscii-16(8×16ピクセル)**で、複数の代替スタイルや欠けていたグリフを補完した「full」派生版も含む
- Unicode 13.0の「レガシーコンピューティング」文字追加を反映してUnscii 2.0が公開され、既存の誤り修正、可読性改善、新規文字追加が行われた
- Amiga、Commodore 64、IBM PCなどクラシックシステムフォントの視覚的特徴を研究し、中立的で一貫した形状を実現
- レガシー文字アートと現代のUnicode環境をつなぐツールとして、ASCIIアートやターミナルグラフィックの再現に重要な役割を果たす
Unscii 概要
- UnsciiはクラシックシステムフォントをベースにしたビットマップUnicodeフォントセット
- キャラクターセルアート(character cell art)に適しており、ターミナルおよびプログラミング環境でも使用可能
- 2つの主要バリエーション: unscii-8 (8×8ピクセル)、unscii-16 (8×16ピクセル)
- unscii-8には複数の代替スタイルが存在
- unscii-16-fullにはFixedsys ExcelsiorとGNU Unifontの欠落グリフを収録
- unscii-16-fullはGPL、その他のバリエーションはパブリックドメイン
- 作者はViznut
Unscii 2.0
- **Unicode 13.0(2020-03-10)**で「レガシーコンピューティング」向けのグラフィック文字214字が追加
- PETSCII、Teletext/Videotexなどの欠けていた文字を含む
- Unscii 1.xにすでに含まれていた文字が正式なUnicodeマッピングを獲得
- Unscii 2.0ではこのマッピング反映が主要な更新理由
- 追加で一部文字の誤り修正、可読性改善、新規文字追加を実施
- Unicodeで現在利用可能な文字のテスト画像を提供
例 (EXAMPLES)
- Amiga ANSIアート: HellbeardのDivine Stylers、unscii-16でレンダリング
- PC ANSIアート: Rad ManのAnsi Love、unscii-16でレンダリング
- Commodore 64 PETSCII画像: RedcrabのI Has Floppy、Dr.TerrorZのThe First Ball、MermaidのGary
- ソースコードパッケージにはビットマップ→Unscii変換器を同梱
- 256色xtermパレットを使ったunscii-8変換例を提供
ダウンロード (DOWNLOADS)
- 実際のビットマップ形式はHEXとPCFの2種類
- HEXはUnifontプロジェクトと同じ単純なヘクスダンプ形式
- TTF、OTF、WOFFはベクター化版
- PCF版はU+FFFFを超える文字を含まない
- ただし新しいグラフィック文字は**PUA(Private Use Area)**範囲で提供
- マッピング情報は
<uns2uni.tr>ファイルに含まれる
背景 (BACKSTORY)
- Unicodeには疑似グラフィック(pseudographic)文字が存在するが、ANSIアートではほとんど使われていない
- MUDなどでもMS-DOSコードページ437のブロック文字だけが使われていた
- これは既存Unicodeフォントの非CP437グラフィック文字実装が不完全だったため
- Unicode Consortiumは疑似グラフィック実装にあまり関心を示していなかった
- 「フォントがなければアートもなく、アートがなければフォントもない」という悪循環が存在
- これを解決するため、アート互換UnicodeフォントとしてUnsciiを開発
デザインの基盤
- 8×8システムフォントは線の太さに応じて1ピクセル型と2ピクセル型に分かれる
- Unsciiは2ピクセル型を採用し、クラシックシステム間の類似性が高く、中立的な形状を実現しやすい
- 8×8版の視覚的ベースとなるシステム:
- Amiga (Topaz-8)、Amstrad CPC、Atari 8-bit/Arcade/32-bit、BBC Micro、Commodore 64、IBM PC (CGA/VGA 80×50)
- 8×16版は8×8を変換原則に従って拡張
- 参考フォント: Windows Fixedsys、IBM PC VGA、X Window 8x13/9x15、Macintosh Monaco、Digital VT420、DejaVu Sans Mono、Lucida Console、Inconsolata
- 中立的な形状を優先しつつ、アートの接続性や可読性が必要な場合は調整
- 例:
/\\XYはASCIIアートの接続性を維持し、iIlのセリフは長めに調整
- 未定義の8×16グリフは8×8の高さ2倍版で置き換える
追加バリエーションと文字マッピング
- ゲームフォントと細線フォントを研究してunscii-8-thin、unscii-8-mcr、unscii-8-fantasyを制作
- Unicodeにない数百の文字をPUA領域にマッピング
- U+E080..E0FF: Teletext/Videotexブロックモザイク
- U+E100.. : PETSCII、Videotexスムーズモザイク、追加シェーディング、丸角など
- U+E800.. : 非定型だが有用な交差線、対角線、非直線パターンなど
- U+EC00.. : ゲーム指向ビットマップなどの特殊文字
- Unicode 13.0以降、一部文字は正式Unicodeに含まれるようになったが、互換性のためPUAマッピングを維持
1件のコメント
Hacker News のコメント
少し話題から外れるが、関連する話ではある
以前、HTML + Canvasでインベーダー系ゲームを作っていたとき、IBM PC OEMフォントを探していて VileRの The Ultimate Oldschool PC Font Pack を見つけた
数多くのROMからOEMフォントとその派生版を復元した執念には驚かされる
このサイトは緻密なアーカイブであるだけでなく、ライブプレビューやアスペクト比補正のような機能も提供していて、見て回るのがとても楽しい
私はそこで複数のOEMフォントを比較しながら、自分のプロジェクトに使う最適なフォントを探して何時間も過ごした
ANSIアートのようなレトロ用途にも向いているし、現代的な環境でも完璧に馴染む
Viznutが作ったオーディオ/ビジュアルのライブコーディングツール IBNIZをパフォーマンスで使ったことがある
本当に熱い体験だった
IBNIZ リンク
彼の作品一覧は Pouet のプロフィール で見られる
その変態性と天才性がうらやましくて、自分もこれを見て少しは感染できていたらと思う
私のローカルの Nerd Font は一部のグラフィックグリフをサポートしていない
こういう部分が追加されるといいのだが
lsofで確認してみると、複数のフォントがfallbackとして使われていた
DejaVuSans、DroidSansFallback、Segoe UI Symbol など様々なフォントが混ざって、結果として完璧なレンダリングになっていた
今MUDを作っているのだが、これらのフォントはまさに自分が求めていたスタイルそのものだ
完璧なタイミングで共有してくれて感謝する
ターミナルにSixel対応がついに入ってきて、
Sixel のWiki にある通り、40年越しに一周回った感じがする
9600bpsのシリアルリンクで非圧縮カラーラスターデータを送るのはひどいアイデアだった
今はギガビット環境なのでユーザーの時間を無駄にする度合いは減ったが、それでもCPUと複雑性の浪費ではある
むしろWebブラウザにFTPやGopherのサポートがあってほしい
Constantine Bytensky の cnxt フォントも似た系統だ
unscii が好きなら cnxt も気に入るはず
CNXT は “Constantine’s Nine x Twenty” の略だ
サイトは今は開けないが、私はどんなモノスペースフォントでも動くサイドプロジェクトを作ったことがある
バイナリをユニコードに変換してまた戻せるようにし、制御文字を対応するシンボルに置き換える
printable-binary プロジェクト
UTF-8文字1つ(1〜3バイト)が入力データ1バイトに対応し、平均で70%ほどサイズは増えるが、
UTF-8を理解するどんな媒体でもバイナリ独立性を得られる
ただ、実運用では base64 の方がサイズ増加が33%で済むので、より効率的かもしれない
こういうフォントは本当に素晴らしい
私はあのASCIIアートの感覚が恋しくて、自分のブログプラットフォーム lmno.lol にバナーとして追加した
Unscii は素晴らしい
以前、モバイルでも使えるシンプルなUnsciiアートエディタを作った
unicode-drawing-club.netlify.app
ファビコンが The Grate Book of Moo のロゴとほとんど同じか、かなり似ているように見える
Hacker News では少しマイナーすぎるリファレンスかもしれないが、気づく人はいると思う