언어:
페이지 정보
수준별:
엔진 버전:
언리얼 엔진

폰트 애셋 및 에디터

언리얼 엔진

이 글에서는 폰트 에디터 에서 사용할 수 있는 Font (폰트) 및 Font Face (폰트 페이스) 애셋 유형에 대해 다룹니다.

폰트 애셋

언리얼 엔진 4 의 폰트는 Font (폰트) 애셋으로 분류되며, 두 가지 캐시 메서드를 사용합니다. 하나는 Runtime (런타임)의 Composite Font (합성 폰트) 형태이며, 다른 하나는 Offline (오프라인)의 이전 미리 계산하는 Font Atlas (폰트 아틀라스) 메서드입니다. 폰트 에디터에서 폰트 애셋을 열어 두 메서드 사이 전환이 가능합니다 (기존 폰트 애셋을 대체할 필요 없이 오프라인 메서드에서 새로운 합성 메서드로 간단히 전환할 수 있습니다).

폰트 페이스 애셋

Font Face (폰트 페이스) 애셋은 폰트를 임포트할 때 생성되며, 폰트 애셋에서 레퍼런싱할 수 있는 폰트 데이터를 저장합니다. 즉 같은 폰트 데이터를 여러 폰트 애셋, 심지어 애셋 내 여러 타입 페이스에도 재사용하여 궁극적으로 메모리 사용량을 줄일 수 있다는 뜻입니다.

FontFaceWindow.png

폰트 페이스 애셋을 열면 Hinting (힌팅) 및 Loading Policy (로딩 정책) 세팅에 접근할 수 있습니다.

프로퍼티

설명

Source File Name

이 폰트 페이스를 기준으로 생성합니다. 항상 디스크에 존재하지는 않을 수 있는데, 기존에 이 애셋 안에 폰트 데이터를 로드하고 캐시했을 수 있기 때문입니다.

Hinting

폰트 페이스에 사용할 힌팅 알고리즘입니다.

선택

설명

Default

폰트에 지정된 기본 힌팅 방법을 사용합니다.

Auto

자동 힌팅 알고리즘을 강제 사용합니다.

Auto Light

논-모노크롬 디스플레이에 최적화된 자동 힌팅 알고리즘을 강제 사용합니다.

Monochrome

모노크롬 디스플레이에 최적화된 자동 힌팅 알고리즘을 강제 사용합니다.

None

힌팅을 사용하지 않습니다.

Loading Policy

런타임에 이 폰트 페이스를 어떻게 로드할지 결정하는 enum 입니다. 옵션 관련 자세한 설명은 enum 부분을 확인하세요.

선택

설명

Lazy Load

전체 폰트를 메모리에 레이지 로드합니다. 스트리밍보다 많은 메모리를 차지하지만, 폰트 내 글리프 렌더링 시 파일 IO 가 없습니다. 초기 로드 시 버벅임이 발생할 수는 있습니다.

Stream

디스크에서 폰트를 스트리밍합니다. 레이지 로드 또는 인라인 보다 메모리를 적게 차지하지만, 글리프 렌더링 시 파일 IO 가 있습니다. 특정 상황이나 플랫폼에서는 버벅임이 발생할 수 있습니다.

Layout Method

폰트 레이아웃에 사용할 메서드를 선택합니다. 폰트가 잘리거나 높이 문제가 있는 경우 이 옵션을 변경해 보세요.

선택

설명

Metrics

폰트에서 사용할 수 있는 메트릭스 데이터로 폰트 레이아웃을 결정합니다. 전형적으로 바람직한 옵션이지만, 깨지거나 잘못된 메트릭스가 있는 폰트의 경우 바운딩 박스 값을 사용하여 폰트 레이아웃을 결정하면 더 나은 결과를 얻을 수 있습니다.

Bounding Box

폰트 바운딩 박스의 값을 사용하여 레이아웃을 결정합니다. 유효 메트릭스가 있는 폰트의 경우 선 높이가 보통 더 커지게 되지만, 메트릭스가 깨지거나 잘못된 폰트의 경우 훨씬 나은 결과를 낼 수도 있습니다.

폰트 애셋을 4.15 이후로 업그레이드

언리얼 엔진 4.15 이후 폰트 애셋은 Font (폰트)와 Font Face (폰트 페이스), 두 개의 애셋으로 분리되었습니다. 기존 폰트 애셋은 로드 도중 내부 폰트 데이터를 삽입된 폰트 페이스 애셋으로 업그레이드하지만, 자동 분리하지는 않습니다. 폰트 에디터에서 폰트 패밀리 내 항목 아래에서 Upgrade Data (데이터 업그레이드)를 선택하여 직접 해줘야 합니다.

FontUpgradeData.png

데이터 업그레이드 선택 후 새로운 폰트 페이스 애셋을 저장하겠냐고 묻습니다.

폰트 에디터

콘텐츠 브라우저 에서 폰트 애셋을 더블클릭하면, 폰트 에디터 창 안에서 열립니다.

FontEditorWindow.png

폰트 에디터 창에 대한 분석은 아래와 같습니다:

툴바 메뉴

ToolbarMenu.png

이 메뉴에서는, 변경 내용을 저장하거나, 콘텐츠 브라우저 에서 애셋을 찾거나, 프리뷰 창(4)의 배경색을 변경하거나, 프리뷰 창의 전경(텍스트)색을 변경할 수 있습니다. 변경 사항을 업데이트 또는 익스포트하는 옵션이 있지만, 이 옵션은 Offline (오프라인) 캐시 모드에서만 사용 가능합니다.

기본 폰트 패밀리

DefaultFontFamily.png

이 창에서는, 이 폰트 애셋에 사용할 기본 폰트 패밀리를 지정할 수 있습니다. 특정 폰트 스타일 버전을 추가하거나 (예를 들어 Normal, Bold, Italics, Underline, 등.) 각기 다른 폰트 스타일 모음을 하나의 Composite Font (합성 폰트)로 만들 수도 있습니다. 공백 폰트 애셋을 생성했다면, 이 창 안에서 폰트를 할당할 수도 있습니다.

서브 폰트 패밀리

AddSubFontFamily.png

이 창에서 Add Sub-Font Family (서브 폰트 패밀리 추가) 버튼을 클릭하면, 이 폰트 애셋이 사용할 서브 폰트 패밀리를 할당할 수 있습니다.

SubFontFamily.png

여기서 Character Range (글자 범위)를 지정하고, 어느 한 글자가 이 범위 안에 들어가면 기본 이외 다른 폰트 스타일을 사용하도록 지정할 수 있습니다. 각기 다른 언어마다 다른 폰트 유형을 사용하고자 할 때 좋습니다.

프리뷰

Preview.png

이 창에서는 폰트를 미리볼 수 있으며, 샘플 텍스트 입력을 위한 글상자가 제공됩니다.

폰트 메트릭스 그리기

PreviewDrawFontMetrics.png

Draw Font Metrics (폰트 메트릭스 그리기)는 프리뷰의 일부로 선 높이, 글리프 바운딩 박스, 베이스 라인 오버레이 표시를 토글합니다.

  • Base Line - 베이스 라인은 텍스트가 놓이는 기준 선입니다.

  • Line Bounds - 라인 바운드는 주어진 텍스트 스트링 길이에 대해 생성된 바운딩 박스입니다.

  • Grapheme Cluster Bounds - 그래핌 클러스터(문자소군) 바운드는 주어진 언어의 논리적 글자로 간주되는 것 주변에 그리는 바운딩 박스로, 다수의 글리프 조합이 가능합니다 (예를 들어 기본 글자에 액센트 글리프).

  • Glyph Bounds - 주어진 글리프 주변에 그리는 바운딩 박스입니다.

디테일

Details.png

이 창에서는, Font Cache Type (폰트 캐시 유형) 변경은 물론 (런타임에) Font Size (폰트 크기)와 Font Name (폰트 이름)을 바꿀 수 있습니다.

  • 이전 메서드를 사용중인 경우, Offline (오프라인) 캐시 모드에 있을 때도 여전히 폰트 파라미터를 변경할 수 있습니다.

  • 기존 폰트 애셋을 대체할 필요 없이 Offline (오프라인)에서 Runtime (런타임)으로 전환할 수도 있습니다.

예제 폰트 애셋

예제 폰트 애셋은 아래와 같습니다.

클릭하면 이미지 원본을 확인합니다.

Composite Font (합성 폰트)는 항상 Default Font Family (기본 폰트 패밀리)를 포함하며, 주어진 글자 범위에 사용할 Sub-Font Family (서브 폰트 패밀리)를 몇이든 포함할 수도 있습니다. 각 폰트 패밀리 자체는 폰트 페이스를 몇 개로든 구성할 수 있으며, 스타일에 따라 이름을 붙일 수 있습니다. 런타임에 해당 글자의 폰트 패밀리 중 (사용가능한 폰트에 따라) 각 글자에 가장 적합한 폰트가 사용됩니다.

위 예제 이미지에서 보듯, 일본어 텍스트는 일본어 폰트 패밀리 글자 범위 안에 해당하므로, Default Font Family (Roboto) 가 아닌 Source Han Sans 로 그립니다. 서브 폰트 패밀리의 폰트는 Regular, Bold, Light 등 일치하는 이름에 따라 선택되지만, Bold Italic 처럼 Default Font 특성에 따라 맞추기도 합니다 (폰트에 Bold 특성에 포함되어 있어서 자동으로 Bold Japanese 를 선택했습니다).