Version: 2022.3
언어: 한국어
폰트 에셋
Font Asset 프로퍼티 레퍼런스

폰트 에셋 소개

폰트 에셋은 폰트에 대한 컨테이너 역할을 합니다.폰트 에셋을 사용하면 폰트를 프로젝트로 임포트하고 원래의 폰트를 변경하지 않고도 한 파일에서 폰트의 배리에이션을 만들 수 있습니다.폰트 에셋을 생성하는 또 다른 이유는 중국어와 같이 방대한 문자 세트가 있는 언어를 처리하기 위해서입니다.모든 문자 세트가 아닌 필요한 문자만 포함할 수 있습니다.

TrueType(.ttf), OpenType(.otf), TrueType Collection(.ttc) 폰트를 폰트 에셋으로 전환할 수 있습니다.폰트 에셋에는 모든 문자가 포함된 폰트 아틀라스 텍스처가 있습니다.폰트 에셋을 생성할 때 선택할 수 있는 아틀라스 채우기 모드렌더 모드가 몇 가지 있습니다.

아틀라스 채우기 모드

TextCore는 정적, 동적, 동적 OS 아틀라스 채우기 모드를 지원합니다.

정적 폰트 에셋

정적 폰트 에셋은 전환 중에 문자를 아틀라스 텍스처로 미리 베이크합니다.정적 폰트 에셋을 사용하여 프로젝트에 레이블 및 섹션 제목과 같이 알 수 있는 텍스트를 포함할 수 있습니다.정적 폰트 에셋을 생성할 때 폰트 아틀라스는 기본적으로 비어 있습니다.폰트 아틀라스를 수동으로 생성하고 프로젝트에 필요한 모든 문자를 포함시켜야 합니다.프로젝트 빌드에 폰트 소스 파일을 포함할 필요가 없으므로 빠르고 효율적입니다.

정적 폰트 에셋 생성 방법에 대한 지침을 참조하십시오.

동적 폰트 에셋

동적 폰트 에셋은 빈 아틀라스 텍스처로 시작합니다.동적 폰트 에셋은 소스 폰트 파일에서 문자를 찾아 UI에서 사용할 때 문자를 동적으로 추가합니다.동적 폰트 에셋을 사용하여 프로젝트에 텍스트 입력 필드와 같은 알 수 없는 텍스트를 포함할 수 있습니다.동적 폰트 에셋은 탄력적이지만, 프로젝트 빌드에 모든 소스 폰트 파일을 포함해야 하므로 추가적인 성능 오버헤드가 발생합니다.

동적 폰트 에셋 생성 방법에 대한 지침을 참조하십시오.

동적 OS 폰트 에셋

동적 OS 폰트 에셋은 소스 폰트 파일이 아닌 운영체제의 폰트 파일을 참조하는 동적 폰트 에셋입니다.동적 OS 폰트 에셋은 동적 폰트 에셋에 비해 메모리 오버헤드가 적습니다.프로젝트 빌드에 폰트 소스 파일을 포함할 필요가 없습니다.해당 폰트가 타겟 플랫폼의 운영체제에 있는지 확인해야 합니다.동적 OS 폰트 에셋은 폴백 폰트 에셋의 훌륭한 후보입니다.

동적 OS 폰트 에셋을 생성하려면 운영체제에서 폰트를 프로젝트에 임포트하고 이를 사용하여 동적 폰트 에셋을 생성한 후 아틀라스 채우기 모드동적 OS로 변경합니다.

아틀라스 렌더 모드

TextCore는 비트맵 및 SDF(서명된 거리 필드)에 대한 아틀라스 렌더 모드를 지원합니다.

비트맵 폰트

비트맵 렌더링은 폰트의 각 픽셀을 씬 및 GUI 픽셀에 완벽하게 맞추어 조정하는 폰트 에셋을 생성합니다.픽셀 아트에는 다음 렌더 모드를 사용합니다.

  • 텍스트를 안티앨리어싱 비트맵으로 렌더링하려면 SMOOTH 또는 SMOOTH_HINTED를 사용합니다.SMOOTH_HINTED는 이미지를 더 선명하게 만들기 위해 문자 픽셀을 텍스처 픽셀에 맞추어 조정합니다.
  • 텍스트를 비 안티앨리어싱 비트맵으로 렌더링하려면 RASTER 또는 RASTER_HINTE를 사용합니다.RASTER_HINTE는 이미지를 더 선명하게 만들기 위해 문자 픽셀을 텍스처 픽셀에 맞추어 조정합니다.

SDF 폰트

SDF 렌더링은 변환하거나 확대할 때 선명하게 보이는 폰트 에셋을 생성합니다.SDF 렌더링은 아웃라인 및 드롭 섀도우와 같은 효과를 지원합니다.

비트맵 폰트 텍스처와는 달리 SDF 폰트 에셋에는 윤곽선 거리 정보가 포함되어 있습니다.폰트 아틀라스에서 이 정보는 각 글리프의 중간에서 가장자리를 지나 한 지점까지 이어지는 그레이스케일 그레디언트처럼 보입니다.그레디언트의 중간 지점은 글리프의 가장자리에 해당합니다.

아래의 이미지는 비트맵 및 SDF 폰트 에셋과 이를 통해 생성된 렌더링 텍스트입니다.비트맵 폰트는 텍스트가 카메라에서 얼마나 멀리 떨어져 있는지, 텍스트가 어떻게 변환되고 왜곡되었는지에 따라 가장자리가 다소 들쭉날쭉하고 흐릿한 텍스트를 생성합니다.SDF 폰트는 카메라와의 거리에 상관없이 가장자리가 매끈한 텍스트를 생성합니다.

비트맵 폰트, 아틀라스 텍스처, 렌더링 결과
비트맵 폰트, 아틀라스 텍스처, 렌더링 결과
매끈한 비트맵, 아틀라스 텍스처, 렌더링 결과
매끈한 비트맵, 아틀라스 텍스처, 렌더링 결과
SDF 폰트, 아틀라스 텍스처, 렌더링 결과
SDF 폰트, 아틀라스 텍스처, 렌더링 결과

SDF 폰트에는 다음 렌더 모드를 사용합니다.

  • SDFAA:이 모드를 사용하면 90포인트 크기를 초과하는 제목과 같은 큰 텍스트를 큰 아웃라인으로 화면에 렌더링하는 경우를 제외한 대부분의 사용 사례에서 폰트 아틀라스를 생성합니다.SDFAA는 빠른 생성을 위한 동적 또는 동적 OS 폰트 에셋의 기본 모드입니다.SDFAA는 더 빠르지만 정확도가 떨어지는 SDF 생성 모드입니다.
  • SDFAA_HINTED 이 모드를 사용하면 더 선명한 결과를 위해 문자 픽셀을 텍스처 픽셀에 맞추어 조정합니다.
  • SDF32:정적 폰트 에셋의 기본 모드입니다.복잡하거나 작은 문자가 있는 폰트에 이 모드를 사용합니다.32배 오버샘플링을 사용하는 더 느리고 정확한 SDF 생성 모드입니다.
  • SDF16:정적 폰트 에셋과 72포인트 이상 크기의 제목과 같이 큰 텍스트에는 대부분 이 모드를 사용합니다.16배 오버샘플링을 사용하는 더 느리고 정확한 SDF 생성 모드입니다.
  • SDF8:이 모드를 사용하면 8배 오버샘플링으로 더 느리고 정확한 SDF를 생성할 수 있습니다.
  • SDF:이 모드를 사용하면 오버샘플링 없이 더 느리고 정확한 SDF를 생성할 수 있습니다.

폰트 에셋 배리언트

폰트 에셋의 지표만 변경하려면 새 폰트 에셋을 생성하지 말고 다른 폰트 에셋을 기반으로 폰트 에셋 배리언트를 생성하십시오.폰트 에셋 배리언트는 텍스처를 위한 추가 공간을 차지하지 않고 원본 폰트 에셋과 구별되는 스타일링을 가질 수 있습니다.배리언트는 고유의 Face Info, Character, Glyph, Adjustment Pair 데이터를 저장하지만, 여전히 원본 아틀라스를 참조합니다.

폰트 에셋 배리언트를 생성하려면 폰트 에셋을 오른쪽 클릭하고 Create > Text> Font Asset Variant를 선택합니다.

패딩

폰트 텍스처의 문자는 개별적으로 렌더링할 수 있도록 문자 사이에 패딩이 필요합니다.이 패딩은 픽셀 단위로 지정합니다.또한 패딩은 SDF 그레디언트를 위한 공간을 만듭니다.패딩이 클수록 더 매끄럽게 전환되어 더 높은 품질의 렌더링과 두꺼운 아웃라인과 같은 더 큰 효과를 얻을 수 있습니다.512x512 텍스처에는 패딩을 5로 사용합니다.경험상 샘플링 대 패딩 비율을 1:10으로 하는 것이 좋습니다.

큰 텍스처에 Multi Atlas Textures 활성화

대부분의 폰트의 경우 모든 ASCII 문자를 포함하는 경우 512x512 텍스처 해상도를 사용하십시오.수천 개의 문자를 지원하려면 큰 텍스처를 사용하고 폰트 에셋의 인스펙터(Inspector) 창에서 Multi Atlas Textures를 활성화하십시오.이렇게 하면 기본 텍스처가 가득 차면 동일한 크기의 새 텍스처가 자동으로 생성됩니다.

또한 최대 텍스처 크기로 인해 전체 글리프 세트를 충분한 품질의 단일 아틀라스에 넣을 수 없는 모바일 기기용으로 디자인하는 경우에도 Multi Atlas Textures를 활성화할 수 있습니다.

폰트 에셋 사용

UI 빌더에서 폰트 에셋을 사용하려면 인스펙터 창의 Font Asset에서 폰트를 선택하십시오.

참고:Font 필드는 이전 버전과의 호환성을 위한 것입니다.레거시 프로젝트에 Font 리스트에 있는 폰트를 사용하려면 Font Asset에서 None을 선택해야 합니다.그렇지 않으면 Font에서 선택한 폰트가 적용되지 않습니다.

다음 구문을 사용하여 USS의 텍스트 요소에 폰트 에셋을 적용할 수 있습니다.

-unity-font-definition:<resource> | <url>

예제:

Label {
-unity-font-definition: url("/Assets/UI Toolkit/Resources/Fonts & Materials/LiberationSans SDF.asset");
}

자세한 내용은 USS 텍스트 프로퍼티를 참조하십시오.

베스트 프랙티스

요약하자면 폰트 에셋을 생성할 때 다음과 같이 하는 것이 좋습니다.

  • 사용자 입력 텍스트:빠른 생성을 위해 동적 또는 동적 OS 채우기 모드, SDFAA 모드를 사용하십시오.현지화를 위한 폴백을 추가해야 할 수도 있습니다.
  • 일반 레이블:샘플링 포인트 크기가 더 작은 정적 채우기 모드와 SDF16 모드를 사용하십시오. -제목:샘플링 포인트 크기가 더 큰 정적 채우기 모드와 SDF32 모드를 사용하십시오.
  • 픽셀 아트:비트맵 폰트 렌더 모드를 사용하십시오.
  • 패딩:샘플링 대 패딩 비율을 1:10으로 사용하십시오.
  • 큰 텍스처에 ** Multi Atlas Textures**를 활성화하십시오.

추가 리소스

폰트 에셋
Font Asset 프로퍼티 레퍼런스