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단계 - 새 애셋 만들기
위의 그림에서처럼 Generic Browser 의 보기 창을 오른쪽 클릭, New Font Imported From TrueType(트루타임에서 임포트한 새 폰트) 메뉴 옵션을 선택합니다. 그러면 아래 그림과 같은 애셋 대화상자 New가 나타납니다.
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등으로 설정합니다. - 다음 프로퍼티들을 설정합니다:
-
bCreatePrintableOnlytrue 로 설정 -
CharsFilePathC:\FontPath 로 설정 -
CharsFilePathC:\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 체크박스를 체크하십시요.
폰트로서의 콘솔 버튼
Microsoft는 Xbox용 TrueType 콘솔 버튼 폰트를 제공합니다; 조금만 부추기면 여러분을 위해서도 제공해줄 지 모릅니다. Gears of War 에서 A/B/X/Y, 트리거, 등의 버튼들은 맞춤 제작된 것들로서, 익스포트된 폰트 시트에 대체되어 있습니다. 이를 사용하는 방법은 두 가지 중 하나입니다... 좌표를 하나도 바꾸지 않고, 임포트한 폰트의 크기에 작품을 맞춥니다. 이를 위해서는 몇 차례의 임포트를 해야 캐릭터 호수와 매치되는 픽셀 크기를 얻게 됩니다. 에디터로부터 TGA 를 익스포트하고, PhotoShop을 열어 이미지들을 놓여야 할 자리에 대충 놓습니다. 때로는 작품이 UV의 경계내에 맞게 되기까지 몇 번 이 작업을 되풀이해야 하는 경우도 있습니다 . 폰트의 프로퍼티를 열어 캐릭터 목록을 보면 좌표를 알수 있습니다. 이는 하나하나에 UV가 배정된 ASCII 값의 목록입니다. 다음은 참고 도면입니다:
액센트된 캐릭터를 나타내는, 보다 더 복잡한 것도 있습니다.
PhotoShop의 Slice에 UV를 입력, 캐릭터들이 올바른지 확인할 수 있습니다; 올바르지 않은 경우에는 얼마나 잘못 되어있는가에 따라 다른 UV 세트로 다시 해보십시요.
Gears 의 콘트롤러 버튼은 UV 면에서 볼때 크게 달라지지 않았습니다. 작품은 임포트된 UV의 크기에 따라 텍스처에 잘 들어맞습니다.
폰트를 완전히 자신의 취향대로 만들 수도 있습니다. 이는 다소 더 난해하며, 새로 임포트한 후 수동으로 UV를 프로퍼티창에서 입력해야 합니다. Gears 의 "game over" 폰트가 이런식으로 만들어진 것입니다; 캐릭터들 (GoW 로고 타입) 은 PhotoShop에서 손으로 만들어졌으며, 텍스처안으로 조립되어 넣어졌습니다. 새 폰트가 임포트된 후에는 UV를 변경, 올바르게 작동되도록 했습니다. Gears에서 이것은 55-75호의 폰트로 임포트되어, 임포트된 높이가 그것이 대체될 작품의 크기와 약간 비슷합니다.
UV를 변경할 때는 일정한 높이를 유지하도록 신경써야 합니다. 아니면 기준선 문제에 부딪쳐 골치가 아파집니다.. 새 값을 적어넣은 다음, 반드시 =ENTER=키를 누르십시요. 그 다음 다른 입력 필드를 클릭해 그 값이 입력 되었는지 확인하십시요.
임포트 과정 중, 가로 및 세로 패딩을 조금씩 늘려 공간을 약간 더 확보하면 편리합니다. 그렇지만 캐릭터간의 높이가 모두 같게 유지되도록 조심하여야 합니다. 그렇지 않으면 캐릭터가 잘려 나갑니다.
