Unscii - 블록형 그래픽을 위한 비트맵 유니코드 폰트

1 month ago 10

  • Unscii는 고전 시스템 폰트를 기반으로 한 비트맵 유니코드 폰트 세트로, 문자 셀 아트와 터미널·프로그래밍 환경 모두에 적합한 형태
  • 주요 버전은 unscii-8(8×8 픽셀)unscii-16(8×16 픽셀) 이며, 여러 대체 스타일과 누락된 글리프를 보완한 ‘full’ 변형 포함
  • Unicode 13.0의 ‘레거시 컴퓨팅’ 문자 추가를 반영해 Unscii 2.0이 출시되었으며, 기존 오류 수정과 가독성 개선, 신규 문자 추가가 이루어짐
  • Amiga, Commodore 64, IBM PC 등 고전 시스템 폰트의 시각적 특징을 연구해 중립적이고 일관된 형태를 구현
  • 레거시 문자 예술과 현대 유니코드 환경을 연결하는 도구로, 아스키 아트 및 터미널 그래픽 재현에 중요한 역할

Unscii 개요

  • Unscii는 클래식 시스템 폰트를 기반으로 한 비트맵 유니코드 폰트 세트
    • 문자 셀 아트(character cell art)에 적합하며, 터미널 및 프로그래밍 환경에서도 사용 가능
  • 두 가지 주요 변형: 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에 이미 포함되어 있던 문자들이 정식 유니코드 매핑을 획득
  • Unscii 2.0은 이 매핑 반영이 주요 업데이트 사유
  • 추가로 일부 문자의 오류 수정, 가독성 개선, 신규 문자 추가 수행
  • 유니코드에서 현재 사용 가능한 문자들의 테스트 이미지 제공

예시 (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)

  • 실제 비트맵 형식은 HEXPCF 두 가지
    • HEX는 Unifont 프로젝트와 동일한 단순 헥스덤프 형식
    • TTF, OTF, WOFF는 벡터화된 버전
  • PCF 버전은 U+FFFF 이상의 문자 미포함
    • 그러나 새 그래픽 문자는 PUA(Private Use Area) 범위에 제공
    • 매핑 정보는 <uns2uni.tr> 파일에 포함

배경 (BACKSTORY)

  • Unicode에는 의사그래픽(pseudographic) 문자가 존재하지만, ANSI 아트에서 거의 사용되지 않음
    • MUD 등에서도 MS-DOS 코드페이지 437의 블록 문자만 사용
  • 기존 유니코드 폰트의 비-CP437 그래픽 문자 구현이 불완전했기 때문
    • Unicode Consortium은 의사그래픽 구현에 관심이 적었음
    • “폰트가 없으면 아트도 없고, 아트가 없으면 폰트도 없다”는 악순환 존재
  • 이를 해결하기 위해 아트 호환 유니코드 폰트로서 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는 아스키 아트 연결성 유지, iIl의 세리프는 길게 조정
  • 정의되지 않은 8×16 글리프는 8×8의 높이 2배 버전으로 대체

추가 변형 및 문자 매핑

  • 게임 폰트와 얇은 선 폰트를 연구해 unscii-8-thin, unscii-8-mcr, unscii-8-fantasy 제작
  • 유니코드에 없는 수백 개의 문자를 PUA 영역에 매핑
    • U+E080..E0FF: Teletext/Videotex 블록 모자이크
    • U+E100.. : PETSCII, Videotex 부드러운 모자이크, 추가 음영, 둥근 모서리 등
    • U+E800.. : 비정형적이지만 유용한 교차선, 대각선, 비직선 패턴 등
    • U+EC00.. : 게임 지향 비트맵 등 특이 문자
  • Unicode 13.0 이후 일부 문자는 정식 유니코드에 포함되었으나, 호환성을 위해 PUA 매핑 유지

Read Entire Article