ASCIIアートはコンピューターの黎明期から続く開発者文化の定番です。ターミナルの起動バナーからREADMEのヘッダー、IRCのチャンネル挨拶まで、あらゆる場面で使われてきました。このガイドでは、テキストからASCIIアートへの変換の仕組み、適切なFIGletフォントの選び方、そしてオンラインツールを使った即座の生成方法を解説します。

ASCIIアートテキストとは

ASCIIアートテキストは、標準の印刷可能文字を使って大きな文字形状を表現します。ピクセルアートとは異なり、ASCIIアートは純粋に文字だけで構成されています。等幅フォントが使用できる環境ならどこでも正しく表示されます:ターミナル、Markdownファイル、ソースコードのコメント、プレーンテキストメールなど。

 _   _      _ _       
| | | | ___| | | ___  
| |_| |/ _ \ | |/ _ \ 
|  _  |  __/ | | (_) |
|_| |_|\___|_|_|\___/ 

FIGletフォントの仕組み

FIGlet(Frank, Ian, and Glenn’s Letters)はASCIIアートテキストを生成するための標準ライブラリです。FIGletフォントは、各文字を複数行のASCII表現にマッピングするプレーンテキストファイル(.flf)です。エンジンは入力文字列を読み込み、各文字の字形を検索して、行ごとに組み立てます。

出力に影響する主なパラメーター:

  • フォント — 字形のスタイルを定義(ブロック、スクリプト、シャドウ、3Dなど)
  • — 折り返し前の最大文字数
  • レイアウト — 文字間のスペース(フル、フィット、またはスマッシュ)
  • 方向 — 左から右、または右から左

人気のFIGletフォント

フォントスタイル最適な用途
standard清潔で読みやすい汎用、READMEヘッダー
banner全大文字、太字短いバナーやお知らせ
slantイタリック風コードのセクション区切り
shadowダブルシャドウターミナルの挨拶
big大きくシンプル素早い視認性
block塊状の3Dプロジェクトロゴ
script筆記体風クリエイティブな見出し
doomスペースインベーダー風ゲームプロジェクト、レトロ感
speed丸みを帯びたモダンなCLIツール
3d立体感奥行きのあるロゴ

よくある使用ケース

READMEヘッダー

GitHubとGitLabはコードブロック内のASCIIアートを正しく表示します:

```
  ____                 _____           _ 
 / __ \___  ___ ____  |_   _|__   ___ | |
/ / _` / _ \/ _ `|/ _` || |/ _ \ / _ \| |
\ \__,_\___/\_,_/_/|_/ |_|\___/\___/|_|
 \____/                                  
```

ほとんどのターミナルの幅とGitHubのプレビューペインとの互換性のため、幅を80文字以内に保ちましょう。

ターミナル起動バナー

~/.zshrc~/.bashrcにASCIIアートを追加する開発者も多くいます:

# ~/.zshrc
cat << 'EOF'
  ____              _       ___  __ ___ 
 |  _ \ _____   __/ \     / _ \/ _/ __|
 | | | / _ \ \ / / _ \   | | | | |___ \
 | |_| |  __/\ V / ___ \  | |_| | |___) |
 |____/ \___| \_/_/   \_\  \___/|_|____/
EOF

コードのセクション区切り

長いソースファイルでは、論理セクションを分けるためにASCII区切りを使うことがあります:

# ============================================================
# ██████╗  █████╗ ████████╗ █████╗ ██████╗  █████╗ ███████╗███████╗
# ============================================================

プログラムでASCIIアートを生成する

Node.js(figletパッケージ)

npm install figlet
import figlet from 'figlet';

figlet.text('Hello World', { font: 'Standard' }, (err, data) => {
  if (err) throw err;
  console.log(data);
});

// 同期版
const result = figlet.textSync('ZeroTool', { font: 'Slant' });
console.log(result);

Python(pyfigletパッケージ)

pip install pyfiglet
import pyfiglet

# デフォルトフォント
result = pyfiglet.figlet_format("Hello World")
print(result)

# フォント指定
result = pyfiglet.figlet_format("ZeroTool", font="slant")
print(result)

# 利用可能なフォント一覧
fonts = pyfiglet.FigletFont.getFonts()
print(f"{len(fonts)}種類のフォントが利用可能")

Go(go-figureパッケージ)

go get github.com/common-nighthawk/go-figure
import figure "github.com/common-nighthawk/go-figure"

func main() {
    myFigure := figure.NewFigure("Hello World", "standard", true)
    myFigure.Print()

    // カラー出力
    colorFigure := figure.NewColorFigure("ZeroTool", "slant", "green", true)
    colorFigure.Print()
}

幅と折り返しの考慮点

ASCIIアートはコンテナが狭すぎると崩れます。目安:

  • 80列:ほとんどのターミナルで安全、クラシックなデフォルト
  • 120列:ほとんどのIDE端末とモダンなディスプレイで安全
  • ロゴの折り返しは絶対避ける — 生成前に対象の幅を確認

文字幅の短いフォント(speedsmall)は同じ列数でより多くのテキストを収めることができます。コピー前にジェネレーターの幅プレビューで確認しましょう。

出力をきれいに保つコツ

  1. 狭いフォントでは大文字を使う — 多くのFIGletフォントは大文字向けに設計されており、小文字の字形はアンバランスに見えることがある
  2. 等幅フォントのコンテキストでテスト — プロポーショナルフォントでは行がずれる
  3. ワンクリックコピー — オンラインツールは正確なスペースを保持した生の複数行文字列をコピーする
  4. 異なるターゲット向けのエスケープ — JSON文字列では改行は\nにする必要があり、YAMLではブロックスカラー(|)を使ってリテラル改行を保持する

オンラインASCIIアートジェネレーターの使い方

ZeroTool テキストからASCIIアートへ →

任意のテキストを貼り付け、200種類以上のFIGletフォントからライブプレビューで選択し、ワンクリックでコピー。インストール不要、APIキー不要、レート制限なし — すべてブラウザ内で動作します。

機能:

  • 入力またはフォント変更時のライブプレビュー
  • 200種類以上のFIGletフォントをスタイル別に分類
  • クリップボードへのワンクリックコピー
  • 対象コンテナに合わせた幅制御
  • 初回読み込み後はオフラインで使用可能

テキストからASCIIアートを即座に生成 →