9_폰트랩_파이썬_스크립트

글자색(Fill Color)을 한방에 변경: 이것은 '혁명'이다 - AI와 폰트랩 파이썬 스크립트(Fontlab Python Script)

Fontlab 2026. 5. 28. 23:37

FontLab 8: Shape Fill Color Changer (v3.2) 매뉴얼

Script 메뉴 표출명: Claude: Change Color - Shape Fill Color Changer_v3.2

 

이 스크립트는 FontLab 8 환경에서 특정 Fill Color를 가진 모든 Shape의 색상을 지정한 색으로 일괄 변경하거나, 폰트 내 모든 글자색을 검정으로 일괄 변환해 주는 자동화 도구입니다.

 

Pain Point: 필자는 글자 만들기 작업을 할 때 글자 조각(Shape)에 색상을 부여해 '작업완료' '작업중' '보완필요' 등의 의미를 부여합니다. 예를 들어 글자 조각이 분홍색이면 '수정작업이 완료된 것이다'라는 의미를 가지는 것이죠. 색상을 부여하면 Font Window, Glyph Window 어디에서는 곧바로 작업 상태를 인지할 수 있다는 장점이 있습니다.

그런데 말입니다... 이렇게 여러 색이 칠해진 글자를 한번에 '검정'으로 변환하기 위해 Font Window에서 여러 글자를 셀블록으로 설정하고 Color 팔레트에서 검정을 지정한 다음 Apply 단추를 누르면 완료 시간이 하세월입니다. 10~20 글자 정도는 괜찮지만, 만약 3,000자 정도를 셀블록으로 설정하고 Apply 단추를 누르면 마치 폰트랩이 크래시(따운)된 듯한 동작을 보입니다. 25분 기다리면 그때서야 글자색이 변경됩니다.

'Color 패널'에 있는 글자색 변경 기능. 셀블록을 지정한 후 색상 팔레트에서 원하는 색을 선택하고 Apply 단추를 누르면 됩니다.

 

이 스크립트는 글자색을 이리저리 변경하는 과정이 많은 사람에게는 '혁명'입니다. 5,069자를 가진 5개의 마스터로 구성된 폰트에서 모든 마스터를 대상으로 '검정'이나 '원하는 색'으로 변경하는데 10초도 안걸립니다. 하나의 마스터 25분에서 5개의 마스터 10초는 혁명 아닙니까? 제가(아니, 정확히는 클로드에게 부탁해서 만들었...) 만들어 놓고도 놀랬습니다. 쿨럭~

 

이 스크립트는 폰트랩 8에서 멀티플 마스터 파일일 때 Layers & Masters 패널이 열려 있어야 정상 동작을 합니다. 멀티플 마스터 파일에서 Layers & Masters 패널이 열려 있지 않으면 스크립트 실행시 안내 메시지가 나타납니다. 단일 마스터 파일에서는 안내 메시지가 나타나지 않습니다.

 

1. 주요 UI 및 기능 설명

버튼 및 메뉴 기능 설명
Layers & Masters 폰트 파일에 있는 마스터를 감지하여 자동으로 나타납니다.
마스터 이름으로 된 버튼을 누르면 해당 마스터로 전환됩니다.
Detect Color Glyph Window에서 선택한 Shape의 Fill Color를 감지하여 표시해줍니다.
변경할 색 상자 클릭하여 결과물에 적용할 목표 색상을 지정합니다 (기본값: 검정).
현재 마스터 변경 현재 활성화된 마스터에 있는 Shape의 색상만 변경합니다.
전체 마스터 변경 폰트 파일 내에 존재하는 모든 마스터에 있는 Shape의 색상을 일괄 변경합니다.
Update 색상 변경 후 Font Window에 결과가 즉시 반영되지 않을 때, 클릭하면 화면이 업데이트됩니다.
처리 결과 창 작업 진행률, 성공 및 오류 메시지 등 색상 변경 처리 내역을 실시간 로그로 보여줍니다.

글자색을 한방에 빠르게 바꿔봐요.

 

 

2. 기본 사용 방법

①특정한 글자 조각에 있는 색을 추출하여 이것을 원하는 색으로 바꾸는 방법, ②모든 글자의 색을 일괄 '검정'으로 바꾸는 방법이 제공됩니다.

 

특정한 색만 원하는 색으로 바꿔치기

  1. Shape 선택: Glyph Window에서 글자를 불러들인 다음, 색상을 변경하고자 하는 글자 조각(Shape)을 선택합니다. 예를 들어 '말' 글자의 ㅁ에 분홍색이 지정되어 있는데, 분홍색을 검정으로 바꾸고 싶다면 'ㅁ'을 선택합니다.
  2. 색상 감지: 스크립트 창에서 "Detect Color" 버튼을 클릭합니다. (정상적으로 감지되면 좌측 '감지된 색' 영역에 해당 색상이 표시됩니다.)
  3. 목표 색상 지정: 우측의 '변경할 색' 컬러 박스를 클릭하여 원하는 색상을 선택합니다.
  4. 변경 실행: 작업 범위에 따라 "현재 마스터 변경" 또는 "전체 마스터 변경" 버튼을 클릭합니다. 글자색이 순식간에 변경됩니다.
  5. 화면 갱신: 작업 완료 후 변경 내역이 자동으로 업데이트됩니다. 업데이트 과정에서 화면이 리프레시되듯 한번 깜박입니다.

 

모든 글자색을 '검정'으로 바꾸기

  1. 이 과정에서는 색을 추출할 필요가 없습니다.
  2. 스크립트 중앙에 빨간색으로 표시된 '모든 글자색을 검정으로 변경' 옵션을 클릭합니다. '모든 글자색을 검정으로 변경' 옵션이 선택되면 '변경할 색' 상자에 '검정으로 고정'이라는 문구가 나타납니다.
  3. '모든 글자색을 검정으로 변경' 옵션이 선택되면 목표 색깔이 이미 '검정'으로 지정되어 있으므로 곧바로 '현재 마스터 변경'이나 '전체 마스터 변경' 단추를 누릅니다. 이제 순식간에 색깔이 바뀝니다. 작업이 완료되면 화면이 한번 깜박이면서 변경내역 업데이트가 수행됩니다.

'전체 마스터 변경' 버튼을 눌러 5,069개의 글립을 가진 5개의 마스터에서 전체 마스터를 '검정'으로 변환하는데 10초가 걸렸습니다. 30,044개의 글립을 가진 3개의 마스터 파일에서는 30초가 걸렸습니다.
맥용 폰트랩 8에서 정상 동작 확인하였습니다.

 

5,069자를 가진 5개의 마스터로 구성된 폰트 파일에서 '전체 마스터'를 대상으로 글자색을 검정으로 바꾸는 과정입니다. '윣'에서 받침 ㅅ은 '델타 필터'가 적용된 것입니다. 옵션에서 'Delta Filter가 적용된 Shape는 색상을 변경하지 않음'이 선택된 상태이므로 글자색이 바뀌지 않았습니다. 그런데 '윣'은 왜 있냐고요? '육성' 입력과정이 깨지지 않게 하기 위해서입니다. 우리 이 스크립트를 잘 육성해보아요.

 

 

3. 세부 옵션 설정

작업의 유연성을 위해 두 가지 체크박스 옵션을 제공합니다.

  • Delta Filter가 적용된 Shape는 색상을 변경하지 않음 (기본값: 켜짐)
    • 이 옵션이 켜져 있으면, '델타 필터를 적용한 글자 조각(Shape)'의 색상은 변경하지 않고 건너뜁니다.
    • '델타 필터'가 적용된 글자 조각(Shape)은 특별한 의미를 가지기 때문에 최후의 직전 단계까지는 색상을 변경하지 않으려는 사용자를 위해 만든 옵션입니다.
'델타 필터'가 적용된 글자 조각(Shape)만 색상을 바꾸는 스크립트는 아래에 준비되어 있습니다.
●Claude_Change_Color__Delta_Shape_Color_v2.2.py
0.04MB

델타 필터를 적용한 글자 조각만 색깔 바꾸기

 

  • 모든 글자색을 검정으로 변경 (기본값: 꺼짐)
    • 특정 색상을 탐지할 필요 없이, 폰트 내의 모든 Shape 색상을 검정(RGB 0, 0, 0)으로 강제 일괄 변환하는 기능입니다.
    • 이 옵션을 활성화하면 'Detect Color' 단계를 생략하고 바로 실행 버튼을 누를 수 있습니다.
"도대체 '델타 필터'가 뭔데 이 블로그의 스크립트 설명 내용에 자주 출몰하는가" 하는 생각이 들 것입니다. 델타 필터는 글자 조각(Shape)를 변형하는 기능입니다. 원본과의 연결 속성을 보존하면서 특정한 글자 조각(Shape)에 대해서만 노드(Node)를 이동시켜 길이를 늘리거나 줄이기, 위치 이동하기, 형태 변형하기 등을 수행할 수 있습니다. 원본에서 높이만 5 유닛 키우고 싶은데 105%와 같은 비율적인 변형은 싫고, 그렇다고 독립적인 글자 조각(Shape)을 만들기도 싫고...의 희망사항을 해결해주는 도구입니다.
다음은 졸저 'Fontlab Type Design' 책에 실린 델타 필터에 대한 내용입니다.

AI와_폰트랩으로_나만의_폰트_만들기_델타필터_활용하기.pdf
1.45MB

Fontlab Type Design 책의 델타 필터 관련 내용입니다.

 

델타 필터 사용 예제입니다. '감' 글자의 받침 'ㅁ'이 남맘암 등 16개 글자에 연결 속성을 가진 Element Reference로 사용된 상태입니다. '감'의 'ㅁ'만 높이를 위로 5 유닛 올려주고 싶을 때, 'ㅁ'을 변형하면 16개의 모든 글자에서 변형이 이루어집니다. 이럴 때 '감'의 'ㅁ'에 델타 필터를 적용한 후 '델타 필터용 노드'를 움직여 변형하면 해당 글자에서는 적절한 수정이 이루어지고, 연결된 다른 글자에서는 원본 형태가 그대로 유지됩니다. '감'의 'ㅁ'은 델타 필터를 적용한 상태이다라는 의미로 초록색으로 칠해놓았습니다.

 

4. 알아두면 좋은 점 (Update 로직)

폰트랩 특성상 스크립트로 색상을 변경하면 화면에 즉각 반영되지 않습니다. 이를 해결하기 위해 마련된 Update 버튼은 폰트 환경에 따라 스마트하게 동작합니다.

  • 멀티 마스터 폰트: 다른 마스터로 이동했다가 다시 현재 마스터로 돌아오는 단순 마스터 이동을 수행합니다. 마스터를 전환하면 폰트랩이 화면 갱신을 하는 원리를 이용한 동작입니다. 빠른 속도로 다른 마스터로 갔다 되돌아오기 때문에 화면이 번쩍이는 느낌을 주게 됩니다.
  • 싱글 마스터 폰트: 이동할 다른 마스터가 없기 때문에, 현재 글립을 임시 마스크로 복사(Ctrl+M)하고 해당 마스크로 이동했다가 빠져나오는 과정을 수행합니다. 마스크로 이동하면서 화면 갱신을 유도한 뒤 다시 되돌아와 생성했던 마스크를 삭제(Ctrl+K)하는 트릭을 사용합니다. 이는 단순 마스크 생성과 삭제이기 때문에 폰트 데이터 자체에는 아무런 영향을 주지 않는 안전한 동작입니다.
난 작업할 때 글자 색상 같은 것 바꾸지 않는데? 글자 색상으로 작업상태를 구분해보세요. 작업효율이 3배 증가함을 보장합니다. 진짭니다. 오늘 손본 것은 분홍색, 내일 손본 것은 파란색으로 해놓았다가 모레 모두 '검정'으로 바꾸면 됩니다. 작업화면이 울긋불긋 아마추어 같아도 검정으로 바꾸는 순간 프로가 됩니다.

●Claude_Change_Color__Shape_Fill_Color_Changer_v3.2.py
0.06MB

(2026. 06. 03 업데이트 버전)


스크립트 설치 방법: Windows - 다운로드한 파일을 C:/문서/Fontlab/Fontlab 8/Scripts 폴더에 복사한 후 Fontlab을 재시작하거나, Fontlab의 Scripts 메뉴에서 제일 하단의 Refresh Scripts를 실행합니다. 다시 Script 메뉴를 열어 보면 스크립트 이름이 나타납니다. 이를 선택해 실행하면 됩니다.

macOS - 사용자/Library/Application Support/FontLab/FontLab 8/Scripts/ 폴더에 복사한 후 위의 과정과 동일하게 수행합니다. Library 폴더가 숨김 속성으로 되어 있어 보이지 않을 수도 있으므로 ChatGPT에게 숨김 속성 해제하는 방법을 물어봐서 처리하시면 좋습니다.

폰트랩에서 파이썬 스크립트를 사용하려면 반드시 TypeRig 라이브러리가 폰트랩에 설치되어 있어야 합니다. TypeRig 라이브러리가 설치되어 있지 않은 상태에서는 '대부분'의 폰트랩용 파이썬 스크립트가 실행조차 되지 않습니다. TypeRig 라이브러리 설치 방법은 첨부된 PDF 파일에 자세하게 설명되어 있습니다.
tistory_Fontlab_TypeRig_설치방법.pdf
1.39MB