UDN
Search public documentation:
ImportingFontsKR
English Translation
日本語訳
中国翻译
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
日本語訳
中国翻译
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
폰트 만들고 임포트하기
개요
1단계 - 새 애셋 만들기
2단계 - 임포트할 폰트 선택
3단계 - 캐릭터 세트의 프로퍼티 설정
프로퍼티 | 설명 |
USize | 생성되는 텍스처의 넓이를 픽셀로 표시. |
VSize | 생성되는 텍스처의 높이를 픽셀로 표시. |
XPad | 가로축의 캐릭터간 간격을 픽셀로 표시. |
YPad | 가로축의 캐릭터간 간격을 픽셀로 표시. |
AntiAlias | 생성되는 텍스처 데이터의 안티 앨리어싱을 유효화할 것인지 아닌지 결정. |
Chars | 해당 폰트로 생성될 캐릭터들을 지정하는데 사용. 이는 폰트 전체를 모두 생성하지 않는 경우, 또는 사용할 캐릭터들을 제한하고자 할 때 편리합니다. |
Wildcard | Path와 관련하여 사용됨. 이는 주어진 디렉토리에서 파일을 선택할 경우 사용할 패턴을 지정합니다. |
Path | 하나 또는 그 이상의 파일을 폰트에 포함할 캐릭터의 세트로서 지정하는데 쓰임. 지역화를 위한 폰트를 생성할 경우, 그리고 그 폰트에 필요한 캐릭터들만을 원할 경우에 유용합니다; 사용할 지역화 파일(들)을 지정하면 필요한 캐릭터들만을 생성합니다. |
Style | 1000 픽셀당 인쇄용 픽셀의 수를 지정합니다. 보통 캐릭터에는 400, 볼드체에는 700이 사용됩니다. |
Italic | 이탤릭체를 사용해 폰트를 생성할 것인지 아닌지 결정. |
Underline | 밑줄긋기가 유효화된 폰트를 생성할 것인지 아닌지 결정. |
bCreatePrintableOnly | 인쇄할 수 없는 캐릭터들을 폰트에서 삭제할 것인지 아닌지 결정함. 폰트에서 제어문자들이 제거되므로 공간이 절약됩니다. |
bUseSymbolCharSet | 폰트를 심볼의 세트로서 임포트할 것인지, 아니면 캐릭터의 세트로서 임포트할 것인지 결정함. |
ExtendBox | 캐릭터당 밀어넣을 텍스처 UV의 양을 픽셀로 표시. |
Wildcards (와일드카드)
Wildcard 텍스트 파일은 캐릭터들을 함유하고 있는 파일이며, 임포터가 가리키는 대상입니다. 따라서 이는 콘텐츠를 읽고 파일 안에 함유되어 있는 캐릭터들만을 임포트합니다. 반면에, FilePath는 텍스트 파일(와일드카드)이 들어있는 디렉토리를 가리키는 경로일 뿐입니다. 이를 이용하기 위해서는, 캐릭터 파일의 경로와 와일드카드가 다음과 같아야 합니다.CharacterFilePath=C:\FileName\FileName CharacterFileWildcard=YourTextFile.txt윈도우스에서 텍스트 파일의 실제 경로는 다음과 같아야 합니다:
C:\FileName\FileName\YourTextFile.txt다음은 프로퍼티를 임포트하고 설정하는 단계입니다:
-
C:\FontPath
라는 이름의 폴더를 만들어FontChars.txt
라는 이름의 텍스트 파일을 그 폴더에 넣습니다. - FontChars.txt 파일에 와일드카드 캐릭터 텍스트를 붙여 넣습니다.
- FontChars.txt 텍스트 파일을 UNICODE로서 저장합니다 (예:윈도우스의 NotePad).
- UnrealEd를 열고, Generic Browser 를 오른쪽 클릭해서, New Font Imported from TrueType 을 선택합니다.
-
FontName
을 Arial Unicode MS등으로 설정합니다. - 다음 프로퍼티들을 설정합니다:
-
bCreatePrintableOnly
true 로 설정 -
CharsFilePath
C:\FontPath 로 설정 -
CharsFilePath
C:\FontPath 로 설정 -
TexturePageMaxHeight
= # -
TexturePageWidth
= # - padding/extend 박스의 값들을 설정합니다
-
- 폰트 및 캐릭터 크기를 선택합니다
- 임포트합니다
bCreatePrintableOnly
플래그가 설정되었는지 확인하십시요. 이 체크박스가 알맞게 설정되지 않으면 캐릭터들이 바르게 임포트되지 않을 수 있습니다.
주: Wildcard 입력 이외에 반드시 Character File Path를 사용해야 합니다. 파일 경로에는 파일 이름이 포함되어서는 안됩니다. 이는 파일의 경로일 뿐입니다. 또한 임포트하려는 텍스트 파일이 UNICODE 캐릭터를 포함하고 있는 경우에는 반드시 UNICODE로서 저장되어야 합니다. 또 파일은 0xfffe 헤더를 가지고 있어야 합니다. 그렇지 않으면 난관에 봉착하게 됩니다. 현재 UTF-8 포맷으로 저장된 폰트 캐릭터 파일은 지원되지 않고 있습니다.
Wildcard 의 예
다음은 다목적 캐릭터들의 목록입니다. 각 행의 앞에 있는 여백들은 계획적인 것입니다. 하나는 보통 여백이고, 또 하나는 불어용입니다. 영어:!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~확장:
€„ˆ‹Œ‘’“”–—˜™›œ¡¢£¨©ª«®°²³´¹º»¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÑÒÓÔÕÖØÙÚÛÜßàáâãäåæçèéêëìíîïñòóôõöøùúûüýÝ¥§Ÿ…와일드카드를 이용하면 임포트하려는 캐릭터들이 폰트가 지원하는 한 모두 임포트 되는것이 보장됩니다. 위의 캐릭터들을 임포트한 후에도 타원형 캐릭터가 빠져 있다면, 이는 TTF 파일에 존재하지 않는 것입니다.
Extendbox
ExtendBox
의 수치가 아주 높은 경우 가외의 캐릭터가 그려집니다. 또는, 이탤릭 폰트가 잘리는 경우, 이를 사용해 교정할 수 있습니다. ExtendBox
는 Padding
(가로 또는 세로)과 다릅니다. Padding 은 입력된 수치에 따라 캐릭터 사이의 간격을 띄우는 반면, ExtendBox
는 캐릭터의 2D UV 좌표를 이동할 뿐입니다.
=ExtendBox=를 사용할 때 약간의 패딩을 추가하면, 캐릭터 e 를 사용할 때 d 의 절반이 렌더되는 일을 피할 수 있습니다.
어떤 경우에는 특정 소문자나 - 같은 특수 문자가 기준선이 아닌 대문자 열에 자리잡고 있는 것이 발견될 것입니다. 실제의 텍스처 위의 캐릭터 위치는 의도적인 것으로, 게임에서는 이런 모양으로 표시되지 않습니다. 이는 폰트를 임포트할 때 전반적인 텍스처의 사용량을 절약하기 위한 것이며, 텍스처 자체에서만 존재합니다.
커닝에 대해서는, 폰트의 기본 커닝값을 설정할 수는 있지만, 실제 폰트 자체의 리딩은 설정할 수 없습니다.
텍스처를 현재의 임포트에 근거해서 외부에서 조정하는 일을 조심하십시요. 텍스처를 변경해도 UV는 바뀌지 않으며, 그 결과로 텍스처가 절단되거나 더 심한 문제가 생길 수 있습니다. 대신 임포트를 다시 하고, 캐릭터를 비슷한 기준선으로 임포트하는 (엔진에서 이전에 했던 것처럼) bEnableLegacyMode
체크박스를 체크하십시요.
폰트 프로퍼티
기존의 폰트 수정
폰트 페이지가 생성된 후에도 이를 수정할 수 있습니다. 때로는 폰트가 생성되는 동안에, 캐릭터가 배정된 공간 밖으로 삐져 나가거나 엉뚱한 픽셀이 추가되는 수가 있습니다. 이런 경우, 아티스트는 폰트 페이지를 익스포트하여 Paint 프로그램을 사용해서 깨끗이 정리할 수 있습니다. 폰트 페이지를 익스포트/임포트할 때도 Font Properties 창을 사용합니다. 먼저 익스포트할 폰트 페이지를 선택합니다. Export 버튼을 눌러 폰트 페이지를 익스포트할 디렉토리를 찾으십시요. 익스포트/임포트 과정은 다음과 같은 엄격한 명명 규칙을 사용합니다: FontName_Page_#.tga Update 과정에서는 어느 페이지를 대체할 지 결정할 때 이름을 사용합니다. 그러므로 폰트 페이지의 파일 이름을 바꾸지 마십시요. Update 는 선택된 폰트 페이지를 대체할 한 개의 파일을 임포트합니다. Update All 옵션은 명명 규칙에 맞는 TGA 파일 디렉토리를 조사합니다. 이 파일들은 자동으로 임포트되어 기존의 폰트 페이지들을 대체합니다. Export 옵션은 선택한 폰트 페이지를 앞서 소개한 명명 규칙을 사용해서 TGA 파일로 익스포트합니다. Export All 은 모든 폰트 페이지들을 앞서 소개한 명명 규칙을 사용해서 지정된 디렉토리로 익스포트합니다.폰트 미리보기
폰트가UE3에서 어떻게 보일것인지 보려면, 폰트 프로퍼티창의 "Preview" 버튼을 사용합니다. 이 버튼을 누르면 아래와 같은 미리보기 화면이 나옵니다. 이 대화상자는 게임에서와 같은 코드로 텍스트를 렌더하므로, 게임을 실행하지 않고도 띄어쓰기 등을 점검할 수 있습니다. 이는 지역화 패스에서는 반복 시간이 빨라지게 하는 효과가 있습니다. 입력 칸에 텍스트를 써넣으면, 미리보기 화면에 텍스트가 그려집니다. 그 폰트가 다양한 환경에서도 좋게 보이도록 텍스트 및 배경의 색깔을 바꿀 수 있습니다줄 간격
UI 콤보박스 그리고/또는 Text Style을 사용해서 폰트의 수평 및 수직 여백을 조정할 수 있습니다. 스타일을 "custom"으로 변경합니다. 왼쪽 중간에 보면 "Chars"라는 섹션이 있습니다. 이곳에서 커닝 및 줄 높이를 편집할 수 있습니다. 게다가, 필요한 경우 위젯별, 화면별로 스타일을 오버라이드할 수 있습니다. 위젯 프로퍼티의 Components -> StringRenderComponent, StyleOverride에서 "Spacing Adjust" 옆의 박스를 체크하면 이들 필드의 값을 변경할 수 있습니다. StyleOverride 의 사용은 오직 그 해당 위젯에만 영향을 미치며, 그 위젯은 언제나 영향을 받습니다.동방 언어 폰트 (아시아어 및 아랍어)
- New Font Imported From TrueType을 선택합니다.
- New Font 대화상자에서, UI Texture Group에 기본 설정값의 AntiAlias 와 LODGroup을 사용합니다.
22-39,127-514,654-819'폰트 바꾸기를 하려면, "Fonts_KOR" , "Fonts_JPN"등 아시아어 폰트용의 또다른 패키지를 만들어야 합니다. 이 패키지내에서, 폰트의 이름들은 주 폰트 패키지의 것들과 정확하게 매치되어야 합니다. 언어가 한국어로 바뀌면, 기본 폰트 패키지도 바뀌어야 합니다. 여기서 가장 신경써야 할 점은, 폰트 객체내에 포함되어 있는 텍스처를 제외하고는 두 패키지들이 똑같아야 한다는 것입니다. 예를 들어,폰트의 이름이 "Mainfont"라면, 패키지는 다음과 같이 설정되어야 합니다 :
Fonts.Mainfont Fonts_ KOR.Mainfont Etc.기본 폰트 패키지가 _ KOR 로 바뀌면, 모든 스타일은 다른 패키지의 것을 쓰지 않고 이 'Mainfont' 를 사용합니다. 역으로 서구언어의 캐릭터 세트를 사용할 때도 마찬가지입니다(한국어가 영어로 적재되지 않음). 폰트의 크기는 게임 내에 대화/캐릭터가 얼마나 있는지, 사용자가 얼마나 많은 캐릭터 세트를 사용할 수 있는지에 크게 좌우됩니다. 위에서 언급한 게임 텍스트를 바탕으로 한 임포트 방법의 사용은, 사용자의 입력을 필요로 하거나 많은 대화를 허용하는 컴퓨터 터미널 인터페이스가 있는지에 따라 최소화될 수도 최대화될 수도 있습니다. 비유를 하자면, Gears 1 JPN 폰트 패키지는 대략 5.5mb 입니다 (가장 큰 타입의 크기가 1-1.3mb). 다중 폰트 내에 얼마나 많은 레벨이 있는지에 따라, 무사히 넘어갈 수도 있습니다; 그러나 파일의 크기는 다소 무거울 것입니다. 한 언어에 대해 다중폰트를 사용하고, 다른 언어에서는 사용하지 않으면 버전 사이에 시각적으로 다른 경우에는 볼 수 없는 기이한 현상이 나타날 수 있습니다. Asian 폰트 사용허가를 내면 그 폰트는 두 가지의 폰트 포맷으로 배달됩니다- 하나에는 @ 심볼이 접두사로 붙어있고, 다른 하나에는 없습니다. 여러분은 @ 심볼이 있는 폰트를 임포트하려 하기 쉽습니다. 이것이 가장 선정하기 쉽도록 목록의 맨 위에 놓여 있기 때문입니다. 그렇지만 @ 버전은 텍스트의 세로 출력용입니다. 여기 있는 캐릭터들은 한 방향으로 90도 회전됩니다. 왜냐면 그것들이 실제 표시하려는 텍스트가 다른 방향으로 90도 회전, 다음과 같은 폰트의 더미를 만들기 때문입니다:
L I K E T H I S전통적으로 이것이 아시아의 언어를 읽는 방법입니다 - 위에서 아래로 (그리고 오른쪽에서 왼쪽으로). 여러분이 필요한 것은 왼쪽에서 오른쪽으로 읽는 버전이며, 폰트 이름에 @ 접두사가 없는 것들이 그것입니다.
MultiFonts
ResTests
와 ResHeights
배열을 채워넣으면 됩니다. 이 두 배열은 같은 수의 요소들을 가지고 있어야 합니다. 각 ResTests
요소는 그에 상응하는 ResHeights
높이의 캐릭터 세트가 사용되는, 가장 근접한 세로 표시 해상도 입니다.
한 예로, 3가지 해상도를 지원하는 MultiFont 를 임포트해 봅니다:
ResTests[0] = 480.0 ResHeights[0] = 16 ResTests[1] = 720.0 ResHeights[1] = 24 ResTests[2] = 1080.0 ResHeights[2] = 32게임이 1280x720의 해상도로 실행되면, 엔진은 자동으로 24호의 크기로 구어진 캐릭터 비트맵을 사용하여 렌더합니다. 사용할 문자를 결정할 때 화면의 세로 해상도만을 본다는 점을 주목하십시요. 또한 텍스처의 크기에 비해 너무 큰 크기의 캐릭터를 사용하면 메모리/오버런 크래쉬가 일어나므로, 적당한 크기의 캐릭터를 사용하도록 조심하기 바랍니다.
커스텀 폰트
bEnableLegacyMode
체크박스를 체크하십시요.