Element Reference 개체의 일괄 색상 변경 - AI와 폰트랩 파이썬 스크립트(Fontlab Python Script)
Fontlab
2025. 10. 27. 23:43
(2026.07.11 15:10) - v1.4: Delta Filter가 적용된 Shape도 색깔을 바꾸는 옵션 추가
FontLab 8: Change Linked Element Color 매뉴얼
Script 메뉴 표출명: Cluade: Change Color - Linked Element Color - Single Master
폰트랩은 요소(글자 조각, Shape, Contour, Outline)의 재사용을 위해 Component와 Element Reference라는 두 가지 기능을 제공합니다. 예를 들어 '맘'이라는 글자에서 사용한 받침 'ㅁ'을 '암', '담', '남' 등에서 연결된 형태로 그대로 사용할 수 있습니다. 단순한 복사하기/붙여넣기가 아니라 연결된 상태로 사용되므로 공통된 요소를 사용하고 있는 어느 하나의 글자에서 받침 'ㅁ'의 높이, 두께, 위치를 변경하면 연결되어 있는 다른 글자에서도 수정사항이 곧바로 반영됩니다.
요소의 재사용 - Component와 Element Reference
Component를 사용하기 위해서는 그 재료가 반드시 독립적인 Glyph으로 존재해야 합니다. 따라서 Component를 사용하려면 '맘'의 받침 'ㅁ'을 별도의 글립으로 만들어 두어야 합니다. 이때 글립 이름으로 _17350과 같이 밑줄과 다섯자리의 숫자가 많이 사용됩니다. Glyph 이름 작성규칙에 맞으면 어떤 형태로 이름을 지어도 관계없지만 우리나라 폰트 제작사들은 대부분 Component용 글립 이름으로 밑줄과 다섯자리 숫자를 사용합니다.
이에 비해 Element Reference는 사용방법이 Component와 유사하지만 그 재료가 반드시 독자적인 Glyph으로 있지 않아도 됩니다. 일일이 글립으로 만들 필요 없이 '맘'의 받침 'ㅁ'을 복사한 후 '연결하여 붙여넣기(단축키 Ctrl+Shift+V)' 기능으로 붙여넣으면 다른 글자에 연결된 속성을 가지면서 붙여집니다.
Component와 Element Reference의 특징 비교
Component (컴포넌트)
Element Reference (레퍼런스)
참조 방식
특정 source glyph를 참조(클라이언트-서버 방식)
서로를 참조 (모두 평등, Peer-to-Peer 방식)
사용 용도
글리프 전체를 재사용 (예: Adieresis = A + dieresiscomb)
글리프 조각(Shape, Contour 등)을 재사용
수정
source glyph에서만 수정 가능
연결된 모든 glyph에서 수정 가능
메트릭/앵커
source glyph의 메트릭/앵커 정보 포함
메트릭/앵커 정보 없음
독립 속성
위치, 크기(Transform 이용), 회전, 기울기
위치(Element 툴), 회전, 기울기, fill color, stroke color
2350자 또는 Adobe-KR-9의 2780자의 한글을 만들 때는 Element Reference를 사용하여 한글을 만드는 게 더 편합니다. Component를 이용할 때에 비해 자음과 모음을 일일이 별도의 글립으로 만들지 않아도 되며, 글자수가 적기 때문에 엥간하면 버티면서 연결된 붙여넣기로 글자를 만들 수 있기 때문입니다.
폰트랩의 Component와 Element Reference의 기능에 대해 심층탐구가 필요한 분은 졸저 'Fontlab Type Design'을 참고해주세요.
Element Reference의 'Fill Color'는 독립 속성
그런데 위의 표에서 알 수 있듯이 Element Reference는 'Fill Color'가 독립 속성입니다. 무슨 말이냐면 '맘', '암', '담', '남'에서 받침 'ㅁ'을 Element Reference로 연결해 사용했을 경우 '맘' 글자의 받침 'ㅁ'의 색깔을 바꾸면 '맘' 글자에서만 색깔이 바뀌고 나머지 '암', '담', '남' 글자의 받침 ㅁ은 색깔이 바뀌지 않습니다. 이에 비해 Component는 하나의 컴포넌트용 글립을 여러 글자에서 빌려다 쓰는 형태이므로 컴포넌트용 글립(예를 들어 받침 'ㅁ'을 담아놓은 _17350 글립)에서 색상을 변경하면 이를 빌려다쓰는 모든 글자에서 색상이 변경됩니다.
글자를 만들 때 '이 글자 조각 내가 모두 손봤다' 또는 '더 작업이 필요하다' 등의 의미로 글자 조각(자음이나 모음 등)에 색깔을 지정하는 방법을 사용하면 좋습니다. 그런데 Element Reference로 연결된 글자 조각(여기에서는 받침 'ㅁ')은 색상이 독립적이라서 받침 'ㅁ'의 색깔을 바꾸고자 한다면 해당 글자를 공유하고 있는 모든 글자를 찾아서 받침 'ㅁ'을 선택해 일일이 색상을 바꿔줘야 합니다. 작업의 편리성을 위해 색깔을 지정하는데, 색깔을 지정하기 위해 오히려 작업의 편리성을 훼손하는 아이러니한 현상이 발생하는 것입니다.
바이브 코딩 시대라는데, 혹시 이것도 가능할까?
폰트랩은 내부적으로 돌아가는 파이썬 스크립트를 지원합니다. 폰트랩 프로그램 안에서 실행되어 마치 폰트랩의 기능처럼 동작합니다. TypeRig, 박민우 개발자의 MW Script 등 대단한 스크립트를 사용할 수 있습니다.
폰트랩 8의 Script 메뉴
AI가 엄청난 능력으로 인간을 도와주는 시대가 열렸습니다. 코딩도 AI에게 의뢰하는 바이브 코딩 시대가 되었습니다. AI가 그렇게 코딩 실력이 좋다면 Element Reference로 연결된 요소의 색깔을 한 번에 바꾸는 파이썬 스크립트도 만들 수 있지 않을까? 지난 몇일 동안 Claude, ChatGPT, Gemini, Copilot, 뤼튼, 퍼플렉시티... 알만한 AI에게 MW 스크립트, TypeRig 스크립트, 폰트랩 웹페이지의 Python API 페이지 등을 제공하고 학습시키면서 수많은 시도를 했습니다(전문 개발자가 아니라서 코딩에 특화된 AI는 써보지 못했습니다). 제대로 된 지시를 내리지 못해서인지 Element Reference로 연결된 요소의 색깔을 한 번에 바꾸는 것은 고사하고 하나의 글립에 있는 하나의 글자 조각(Contour, Outline, Shape)의 색깔도 바꾸지 못했습니다.
AI들이 파이썬을 몰라서가 아니라 파이썬과 폰트랩을 연결하는 방법, 파이썬을 위해 폰트랩이 사용하는 API 사용법을 해설한 자료가 많지 않기 때문이었습니다. 완벽한 최종본, 진짜 완벽한 최종본 등 AI 특유의 우왕떠는 결과들은 하나도 작동하지 않았습니다. 여기저기서 에러의 연속...
클로드가 드디어 해내다
오늘 다시 한번 클로드를 살살 달래가면서 작업했습니다. 1) TypeRig 위주의 소스를 한도까지 첨부해서 공부시킨 다음 하나의 글립안에 있는 하나의 글자 조각 색깔 바꾸는 스크립트 만들기 수행 -> 2) 웬일로 갑자기 성공! 너 그러면 Fontlab의 Component와 Element Reference의 기능을 공부해볼래 부추키기 -> 3) 난 말야 독립 속성을 가지는 Element Reference 개체의 색을 한 번에 바꾸는 것을 하고 싶어 하는 단계로 살살 달래면서 수많은 에러 메시지를 피드백해주었습니다.
그랬더니 갑자기 '되는 결과'를 클로드가 내뱉었습니다. 일단 Element Reference 개체의 색을 한 번에 바꾸는 것이 가능해진 상태에서 색깔 구성, 화면 구성 등을 조금씩 더 보강해달라고 했더니 그런대로 잘 작동하는 Python Script를 얻었습니다. 대단하군요. 클로드양~
위의 색깔은 필자가 애용하는 색깔 조합입니다. 기본색 5개에, 하위색 5묶음(옅은색/진한색)으로 구성되어 있습니다. 색깔을 클릭하면 굵은 외곽선이 나타나 해당 색깔을 선택했음을 시각적으로 알려주며, Apply/Close 단추는 빈번하게 클릭하므로 일부러 크게 만들었습니다.
맥용 폰트랩 8에서 정상 동작 확인하였습니다.
'담' 글자의 모음 ㅏ가 21개의 글자에 그대로 Element Reference로 연결되어 사용된 상태입니다. '담'에서 'ㅏ'의 색깔을 빨간색으로 변경하면 Element Reference로 연결돤 다른 모든 글자의 색깔도 한꺼번에 변경됩니다.
맥용 폰트랩 8에서 정상 동작 확인하였습니다.
'삳삼샄'에 사용된 'ㅏ'는 Delta Filter를 사용해서 세로 길이를 아래로 5 유닛 늘린 것입니다. 이 스크립트는 Delta Filter가 적용된 글자 조각은 색상을 바꾸지 않습니다. Delta Filter가 적용된 글자 조각만 대상으로 하여 색상을 일괄 변경하는 스크립트도 이 블로그에 있습니다.
클로드가 만들어준 파이썬 스크립트입니다. 윈도우 10-Fontlab 8에서는 잘 작동합니다. 화면 디자인 형태나 색상을 변경하고 싶으면 AI에게 제시하면서 바꿔달라고 하면 될 것입니다(제미나이에게는 부탁하지 마세요. 그녀석은 지 마음대로 날뜁니다. 클로드에게 부탁하세요).
스크립트 설치 방법: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 파일에 자세하게 설명되어 있습니다.