파일을 정리했다면 한글폰트를 제작해봅시다.
한글패치를 처음 만들때 뿐만이 아니라
기존의 폰트가 마음에 안들어 자신이 사용하고 싶은 폰트로
변경하고자한다면 같은 방법으로 제작하여 넣으면 됩니다.
패러독스 게임들은 폰트가 비트맵 폰트로 제작되어 있어
비트맵 폰트를 만들수 있는 프로그램이 필요합니다.
현재 가장 유용하게 사용할수 있는 프록램으로는 BMFont 란 프로그램으로
http://www.angelcode.com/products/bmfont/
위의 링크에서 다운 받으실수 있습니다.
BMFont를 실행하면 위와같은 창이뜹니다
하지만 아직은 아무런 설정이 되어 있지 않은 상태로
사용가능한 한글들을 모두 포함하는 문자표를 등록할 필요가 있습니다.
http://cafe.daum.net/Europa/2M1/1086
위 링크로 들어가시면 일전에 정신적데미지님 께서 만드신 대부분의 한글이 포함된 문자표를 등록할수 있는
파일을 받으실수 있습니다. fonttool.zip 을 받으시면 됩니다.
그런다음 load configuration을 선택하여 fonttool.zip 에 포함된 euc-kr.bmfc 파일을 불러옵니다.
그러면 대부분의 한글을 표현할수 있는 문자표를 불러오게됩니다.
중앙창에서 Hangul 탭들을 눌러보시면 다른 한글자들 더 추가 및 삭제할수도 있습니다.
하지만 기본적으로 표현가능한 한글이 이미 표함되어 있기때문에 구지 그러실 필요는없습니다.
그럼 차례대로 메뉴를 보도록하겠습니다.
Font settings
font: 폰트를 선택합니다. (일반적인 폰트는 문제가 없지만 가끔 폰트에 따라서 영어가 포함되어있지않거나 깨지는수도 있습니다)
size: 크기 bold: 굵기 italic: 기운폰트
Font smoothing : 외곽선을 매끄럽게 다듬습니다.
크기가 작거나 선이 가는 글꼴에선 오히려 가독성을 해치니 어느정도 크고 굵은 글꼴에만 사용하시기 바랍니다.
Super sampling : Font smoothing 처럼 외곽선을 매끄럽게 하는 용도로 사용하나 지나치게 흐려지므로 추천하진 않습니다.
Export Options
Padding : 글자 내부의 여백을 설정합니다.
Spacing : 글자와 글자 사이의 간격을 설정합니다. ( 수치가 0일경우 옆글자와 섞여서 글자 외곽에 지저분한것이 생길수 있으므로 2~3 정도 수치를 넣어주는것을 추천합니다)
Width / Height : 글꼴 이미지 배경의 가로/세로 크기 입니다. 512, 1024, 2048, 4096 등 2의 제곱수로 설정해줘야 합니다.
Chnl Value (A/R/G/B) : 한 픽셀이 갖고 있는 ARGB채널을 결정하는데 One은 0xFF, Zero는 0x00, glyph는 글꼴이 표현되는 픽셀색에 따라 자동결정됩니다. 일부 색이 다른 글꼴을 만들어야할 경우 이 부분을 조절해줘야 합니다. (예: R,G,B 세가지 항목에 Invert를 체크해주면 검은색 글꼴이 생성됨)
Textures / Compression : 이미지 파일의 포맷을 결정합니다. 뭘로 정해도 상관없는 듯하나 중문판의 경우 포맷은 dds, 압축은 DX3를 사용하니 이를 따르면 큰 문제는 없을 듯합니다.
Visualize
만들어질 폰트 이미지를 미리 보는기능입니다.
- 글꼴 이미지가 한장을 초과할 경우 Export Options으로 돌아가 이미지의 가로/세로를 늘려 한장에 포함되도록 설정을 바꿔야합니다.
위와같이 1장안에 담길 크기로 만들어야합니다.
Save bitmap font as
파일제작
*.fnt 폰트설정 파일과
*.dds 폰트 이미지 파일 이 생성됩니다.
그럼 지금 사용중인 크킹2 폰트파일들을 보죠
이처럼 크기에 따라 폰트가 나누어져 있습니다. (mapfont는 제작법이 다르므로 밑에 설명드리겠습니다.)
이것은 크킹2 원본내의 영문 폰트들입니다. 제작된 한글 폰트보다 갯수가 더 많습니다. 위의 영문폰트들은 열어보면 크기나 폰트가 비슷한것들이 많아서 한글패치 제작에선 비슷한 크기의 폰트는 통합하여 크게 4개 사이즈의 폰트와 하나의 맵폰트로 구성하였습니다.
각각 사용되어질 폰트를 지정해주는 것이 interface/fonts.gfx (유로파4의경우 core.gfx)
파일에 들어 있습니다.
파일을 열어보면 각각 폰트의 크기,색깔,사용되어질종류에따라서 나누어져있습니다.
처음 한글패치를 제작하는 경우라면 폰트파일을 불러오는것을 영문폰트로 지정된것을 한글폰트로 바꾸어 주어야합니다.
"name =" 은 폰트성격을 구분해주는 이름으로써 interface 폴더내의 gui파일들과 연결되어있습니다. 그러므로 구지 바꾸어 주지 않아도 됩니다.
"fontname ="이 fonts 폴더에서 어떤 파일을 불어 와야할지 설정해주는 것이므로 크기에 따라 분류하여 제작된 한글폰트이름으로 바꾸어주면 영문폰트에서 한글폰트를 읽어 오는것으로 바뀝니다.
color 부분은 제작된 폰트는 따로 색이 입혀져 있진 않지만 게임내에서 녹색 빨간색 노랑색등 다양한 색을을 낼수 있게 만들어주고 색에따라 폰트가 세분화 되어있습니다. 기본적으로 그냥 두시면됩니다.
fonts.gfx (core.gfx)를 만드는 과정은 처음 한글패치를 제작하는데에 필요한 작업으로 이미 만들어진 한글패치에서는 건들이지 않으셔도 됩니다.
그럼 다시 만들어진 폰트를 적용하는 것으로 넘어가겠습니다.
현재 크킹2와 유로파4는 폰트 제작방법이 조금 다릅니다.
위의 save as 하여 fnt dds 파일 만드는것까지는 같지만
이게 2바이트를 지원하는 프로그램밍 작업을 하면서 서로 다르게
제작되어서 인지는 몰라도 파일 생성후 다른 작업을 거치게 됩니다
Crusader kigns 2
(vic2 hoi3 등등 도 해당)
만들어진 폰트는 유니코드형식의 폰트 코드로 되어있는데 이를 2바이트 용 폰트 코드로 바꾸는 작업이 필요합니다.
아까 받으신 fonttool.zip 파일을 보면 ConvFnt3.exe 파일도 존재합니다.
이 프로그램으로 이작업 수할수 있습니다.
ConvFnt3.exe파일을 실행하여 생성된 fnt 파일을 선택하여 줍니다. 그러면 변환작업이 진행됩니다.
그러면 이파일이
이렇게 변환이 됩니다.
크기에 맞게 제작된 폰트파일을 변환하여 fonts 폴더에 이름을 맞추어 넣어주면 됩니다.
Europa Universalis 4
유로파 4 에 사용된 한글폰트는
ConvFnt3.exe 을 이용한 변환 작업을 해주지 않아도 됩니다 하지만 다른 작업이 필요합니다.
아래와같이 붉게 블럭지정된 부분은 지워주셔야합니다.
chnl=15 같은 경우엔 파일 아래로 쭈욱 있어 문서편집프로그램에서 글자 모두 바꾸기 기능으로 삭제를 해주시면 편합니다.
삭제하면 아래와 같이 됩니다. 이작업이 잘못 이루어지면 게임이 실행이 되질 않습니다.
이렇게 만들어진 폰트를 적용하시면됩니다.
맵폰트 제작법
맵폰트제작법은 크킹2 유로파4 각각의 폰트제작 방법대로 진행하면 되나 몇가지 과정이 더 추가됩니다.
폰트크기는 크킹2 유로파4 모두 62 의 사이즈를 가지고 있지만 적은 차이의 수로 변동하셔도 됩니다.
우선 BMfont 프로그램 으로 제작시0
Export Options 메뉴의 chn 부분에서 R: G: B: 부분에 Invert 를 체크하셔야합니다.
그렇게 dds와 fnt 파일을 만든후에는 위에 기재된 크킹2 유로파4 폰트 적용법대로 과정을 거치시면됩니다.
그렇게 폰트를 적용하고 실행하면
유로파 4 같은 경우엔 바로 잘 적용이 됐습니다
하지만 크킹2를 보면
폰트 사이에 점이 찍혀있습니다.
이는 중문화를 한글화하면셔 생긴 문제로 프로그래밍 작업이나 폰트수정이 필요합니다.
저는 프로그래밍쪽은 모르기때문에 폰트를 수정하여 점을 없애보도록하겠습니다.
작업에 앞서 폰트파일의 구성에 대해서 잠깐 보도록 하겠습니다.
우선 dds 파일을 열어보면(제가 사용하는 dds뷰어 입니다.
수많은 한글들이 나열되어져있습니다.
그리고 상단에 pos:1201x418 처럼 커서가 가르키는 지점의 좌표를 확인해볼수 있습니다.
아래의 fnt 파일을 열어보시면 char id=32, 33, 34 ... 와 같이 코드번호가 있는것을 보실수 있습니다.
한글의 각 글자들은 고유의 코드를 가지고 있습니다. 각코드들은 그 글자에 해당하는 코드들이고 그 옆의 x=4090 y=0 와같은 좌표는 아까 dds 파일에서 보았던 글자의 좌표를 말해줍니다.(좌표의 기준점은 왼쪽 상단입니다) 고로 "상" 이라는 글자의 코드를 알고 싶다면 dds 파일에서 상을 찾아서 좌표를 보고 역으로 fnt 파일에서 "상"이란 글자에 해당하는 코드를 찾을수 있습니다.
그옆의 width=3 height=1 같은 경우엔 좌표 시작 점부터 폰트를 인식하는 범위를 말해줍니다.
이를 응용하면 게임의 오리지날 영문폰트와 한글폰트를 합칠수 있습니다.
일전에 배포했던 크킹2 지명/국명/인물명 영문 한글패치에서 사용된 맵폰트를 보시면
오리지날 영문과 한글폰트가 합쳐져 있습니다. 이는 지명국가명은 영문으로 표시되지만 가문명/문화권에대한 표시는 한글로 표시되기때문에 오리지날 영문폰트를 원하는 상황에서는 두개를 합칠필요가 있기때문입니다.
한글로 제작된 맵폰트를 포토샵으로 불러온후 사용하고자하는 오리지날의 영문 폰트를 한글 맵폰트 dds 파일 빈공간에 복사하여 넣습니다. 그리거 fnt 파일에서 알파벳 a b c d e ... 에 해당하는 코드를 찾아서 새로 추가한 영문폰트로 좌표를 바꾸어주면 오리지날 영문 폰트 + 한글폰트 인 맵폰트가 제작이 가능합니다.
위 파일이 그때 제작했던 한영 통합 맵폰트입니다.
다시 본론으로 돌아가서 크킹2 맵폰트의 점을 지우는 작업은
점에 해당하는 좌표를 찾아서 폰트 적용 범위를 아무것도 없는 1로 잡아주면 맵폰트에서의 점이 사라지게 됩니다.
점에 해당하는 코드는 char id=46 입니다.
이 점의 width height 범위를 1로 수정해줍니다.
이제 점이 사라졌습니다.
발광폰트
이대로 마무리 짓고 적용해도 좋지만
오리지날폰트에 존재하는 폰트의 발광효과를 넣어보도록 하겠습니다.
맵폰트에 발광효과를 넣으려면 폰트주변의 발광으로 인한 경계공간이 더필요합니다 그래서 BMFont 로 폰트를 제작할시에 font settings 의 outline thickness를 8 정도로 잡아주어 폰트의 경계를 넓혀주어 폰트를 제작합니다.
맵폰트 dds 파일을 포토샵에서 불러옵시다. (포토샵에서 dds 파일 편집을 하려면 작업을 가능하게하는 플러그인이 필요합니다. 구글에서 dds photoshop plugin 으로 검색하면 손쉡게 찾을수 있습니다.)
dds 파일은 크게 2가지 환경으로 나누어져 있다고 볼수 있는데요
맵폰트의 경우 검정색으로 폰트가 채워진 기본 작업 환경과
흰색으로 패워진 알파 채널입니다.
게임상에서 흰색폰트의 경우 알파채널을 통해서만 보여지고 검은색 폰트의 경우 기본 폰트+알파를통해서 나타나지게 됩니다.
알파의 경우 그뿐만이 아니라 필요한 부분만 게임내에서 보여질수 있게 하는 필터 역활을 함으로써 알파부분에 발광효과를 넣으면 게임상에서 그대로 적용이됩니다.
다시 레이어 작업 환경으로 돌아가 백그라운드 오른쪽 마우스를 눌러 듀플리케이트 레이어(복제)작업을 합니다.
그런후 알파채널과 같은 색을 만들어주어야하기때문에 생성된 레이어에두고 포토샵 상단 탭에 image - adjustments - invert 를 해줍니다.
그럼 레이어의 색이 반전됩니다.
그런후 Magic wand tool 를 선택하고 Tolerance 를 50 정도 Contiguous가 해제된 상태에서 검은 배경을 선택하여 삭제해 줍니다.
그럼 검정색 배경이 사라집니다.
그런후 new layer 를 사용하여 background 와 폰트가 있는 background copy 레이어 사이에 새로운 레이어를 추가해 줍니다
그리고 paint bucket tool 를 이용하여 새로 생성된 layer 1 에 코드번호 000000인 순수한 검정색을 부어 줍니다.
그런후 background copy 레이어를 다시 선택후
Layer - layer syle - outer glow를 선택해줍니다.
그런후 outer glow 메뉴에서 structure 부분의 opacity와 elements 의 사이즈 부분을 미세하게 조종하여 퍼짐정도를 설정하고
structure 부분의 맨밑에 있는 색깔 창에서 기본으로 되어있는 노란색에서 흰색으로 바꾸어줍니다.
퍼점정도는 포토샵에서 보이는것보다 게임에서 보이는것이 더 강하게 보이므로 미세하게 은은한 정도만 주는것이 좋습니다.
그후 background copy 레이어가 선택된 상태에서 오른쪽 클릭 merge down 을 하여 아래의 검은색 레이어와 합칩니다.
합쳐진레이어를 전체 선택을 하여 알파채널에 붙여넣기를 합니다.
그리고 layer 1 은 삭제합니다.
그리고 저장하여 불러오면
발광폰트 완성
다음에는 localisation 폴더에 대해서 다룰 예정입니다.