본문 바로가기

폰트 기술

Glyphs에서 OTF 내보내기(폰트 압축과 시간)

반응형

글립스(Glyphs)의 장점 중 하나 : OTF 생성 및 feature 지원

맥용 폰트 제작 프로그램인 글립스(Glyphs)의 큰 장점 중 하나가 CJK용으로 적합한 OTF를 내보내고, OTF용 feature를 생성할 수 있다는 점입니다. 폰트랩(FontLab)에서는 일반적인 OTF는 생성이 가능하나, 글립 수가 많은 CJK를 위한 OTF를 내보내는 것 자체가 불가능합니다. 이러한 특징때문에, 요즘은 저도 폰트 제작에 있어서 글립스를 더 자주 사용하는 편입니다.

glyphs' font export
얼마나 기다려야 할까??

 

OTF 내보내기의 핵심 : FDK

FDK라는 프로그램은 Adobe Font Development Kit for OpenType(AFDKO)이라고도 하며, 오픈소스로 발표되었습니다. 실제 2000년대 초반에 OTF를 제작하기 시작할 때부터 사용했던 프로그램(들)이고, 지금도 늘 사용하고 있습니다. FDK 안에는 매우 많은 프로그램들이 있고, 그 기능 또한 매우 뛰어납니다. 다만, 뛰어난 기능들이 있음에도 불구하고, 명령어를 직접 입력해야 하는 CUI 환경이라는 단점으로 인해 GUI에 익숙한 폰트 디자이너들에게는 매우 어렵게 느껴지는 프로그램입니다. 그러나, Adobe가 오픈소스라는 대세를 따라 FDK를 오픈하게 되면서, 폰트 제작 프로그램들이 해당 소스를 GUI 뒤쪽에서 OTF 폰트를 생성하는 기능으로 사용하기 시작했습니다. 폰트랩(FontLab) 6는 물론이고, Glyphs 또한 그렇게 하고 있습니다.

FDK의 단점 : 어렵다!

FDK가 뛰어난 프로그램이라는 사실은 조금이라도 사용해 본 사람(기술자, 디자이너)이라면 누구든지 찬성할 수밖에 없습니다. 그러나, 뛰어난 기능이 있다는 사실 이면에는 폰트 기술에 대한 이해라는 뒷받침이 있어야만 한다는 전제가 숨어 있습니다. 그렇지 않으면, 그 기능을 제대로 이해하기 어렵고, 용도를 찾기 어렵습니다. 따라서, 실제 GUI(폰트 내보내기 중에 나오는 아이콘) 뒤에서 FDK가 아무런 형체 없이 돌아간다고 하더라도 그 기능을 아느냐 모르느냐에 따라 활용의 폭이 늘어날 수밖에 없습니다.

테스트용 폰트(OTF) 내보내기와 폰트 압축

최종 폰트를 내보내기 이전에도 다양한 테스트를 위해 폰트를 생성해야하는 경우가 많이 있습니다. 글립스에서 지원하는 테스트 환경만으로는 실제 제대로 된 테스트를 진행하기 어려우므로, 어쩔 수 없이 폰트를 내보낸 후 실제 작업환경에서 테스트를 진행할 수밖에 없습니다. 그런데, 글립스에서 아무런 설정 없이 폰트를 내보낼 경우, 매우 오랜 시간이 소요됩니다. 한글 11,172자를 포함하는 폰트의 경우, 적게는 3분 길게는 20분 정도 걸려서 폰트가 생성됩니다. 단지 테스트를 위한 폰트인데도 심한 경우에는 20분씩이나 기다려서 폰트를 내보내야하는 문제가 있습니다. 그럼, 그 원인은 무엇일까요?

일반적으로 OTF 폰트를 내보내면, 글립스에서는 폰트의 용량을 줄이는 일종의 폰트 압축 과정을 거치게 됩니다. 이는, 글립스 자체엔진이 아닌 FDK에서 실행되는 기능이므로, FDK의 기능을 알면 충분히 조절할 수 있습니다. FDK에서의 폰트 압축 기술은 글립들에서 공통적으로 사용되는 아웃라인 구조를 일종의 라이브러리화(subroutine)하는 방식으로 처리됩니다.  OTF 폰트의 아웃라인 방식이 Adobe의 Type1 아웃라인 방식이므로 Adobe의 폰트 압축 기술을 그대로 사용하고 있는 것입니다. 이 폰트 압축 기술을 이용할 경우, 폰트의 용량이 적게는 20%, 많게는 50% 이상을 압축할 수 있습니다. 단점은, 일반적으로 점이 많은 폰트들이나 아웃라인 구조가 복잡한 폰트들의 경우, 폰트 생성에 시간이 오래 걸리는 단점이 있습니다. 즉, 폰트 생성 시간과 폰트 압축률을 맞교환하는 방식이나 마찬가지입니다. 폰트 파일의 용량을 최소화할 수 있다는 장점이 있지만, 이를 위해서는 폰트를 생성하는 시간이 길어지는 단점을 받아들일 수밖에 없다는 것입니다.

최종 OTF 생성 시에는 폰트의 용량을 최소화시키기 위해 시간이 오래 걸리더라도 폰트를 압축하는 과정을 거쳐야만 합니다. 그러나, 매번 테스트 폰트를 제작하는 시점에서조차 폰트를 압축해야 할 필요가 없습니다. 다른 기능은 모두 같으나 압축률만 차이가 나는 상황이라면 굳이 폰트를 압축할 필요가 전혀 없습니다. 폰트를 내보낸 후에 차를 한잔 마시고 와서 보니 폰트가 다 생성되었다면 다행이지만, 그마저도 생성이 다 되지 않았다면...시간을 버리는 일입니다. 즉, 테스트 폰트 생성을 위해서는 폰트의 용량을 포기하고 시간을 얻는 것이 중요합니다. 

글립스에서의 폰트 정보 설정

폰트 압축과 관련된 설정은 글립스의 폰트 정보(Font Info) 대화창에서 지원하고 있습니다. 문제는 글립스에서 지원하는 기능들이 많이 숨어 있고, 업데이트마다 한 두 가지씩 추가되다 보니 알기가 어렵다는 사실입니다. 게다가 가장 큰 문제는, 일반 디자이너들은 이 부분에 대해 이해하기가 어렵습니다. 폰트 기술 명세서를 한번이라도 읽어봤다면 그런 기능이 있다는 걸 알 수는 있겠지만, 그럴 일이 기술자들이 아니면 거의 없는 경우이다 보니 어쩔 수 없습니다. 그러나, 위에서 폰트 압축과 관련된 용어가 'subroutine'이었다는 사실을 깨달으신 분들은 Font Info에서 해당 단어와 같거나 가장 비슷한 단어를 찾아 설정하면 된다는 것 또한 눈치챘을 것입니다.

해당 정보 설정을 위한 방법은 다음과 같습니다. 한글판과 영문판 모두를 위해 한글 레이블과 영문 레이블을 같이 적습니다.

폰트 정보(Font Info) > 폰트(Font) > 사용자 정의 변수(custom parameter) 에 Disable Subroutines 추가 후 체크를 눌러주시면 됩니다. 이렇게 작업하면, 기존에는 OTF 폰트를 하나 생성하는데 10분이 걸렸다면, 1분 이내로 생성할 수 있습니다. 다만, 폰트 파일 크기가 기존보다 약 20% 이상은 더 크다는 사실도 확인하실 수 있을 것입니다. 다만, 최종 폰트를 내보내는 시점에서는 해당 부분을 삭제한 후 폰트를 내보내시면 폰트 용량이 최소화된 폰트를 생성할 수 있습니다!

glyphs' font info
폰트 압축 및 압축 해제는 여기서!