- Steam配信されているWindows版Europa Universalis IVの日本語化パッチの副産物です。パッチはこのプログラムを使って作成されたフォントのみを受け付けます。
- CP1252の0x80から0x9Fまでに相当する文字(例えば€)はUCS2のコードポイントではなくて、CP1252のコードポイントとして作成されます。
- 0x100から0x1FFまでの文字は私用領域(0xE000)にシフトされたコードポイントになります。例えばλは3BBではなくて、0xE3BBのコードポイントになります。
- 0xE,0xFのコードポイントにはそれぞれ、日付用に"日"と"年"が割り振られます。
- Windows10 or later
- python 3.5 or later
- pillow
pip install pillow
- 同梱している1_tool/bmfont64.exeを使用して、作成したいフォントのconfigurationファイル(.bmfc)を2_main_text/bmfcフォルダに保存してください。この時、含める文字は空にしてください。
- 含めたい文字を2_main_text/sourceフォルダに任意の名前のBOM付きのUTF-8のtxtファイルに入れておきます。こちらで予めCP1252の追加文字と大体のSHIFT_JISの範囲の文字を入れたテキストを用意していますので、これ以外で必要な文字をtxtとして追加してください。
- 準備が整ったら、2_main_text/generate.pyを実行します。2_main_text/outフォルダに生成されたフォントが入ります。
- 3_map_textについても同様に実施してください。
Automation.
- GitHubのアカウントを作ってください。
- このレポジトリをForkしてください。以下そのForkしてきたレポジトリに対して処理してください。
- 1_tool/fontに生成に必要なフォントファイルを入れてください。
- 2_main_text/bmfcにbmfontの設定ファイルを入れてください。このとき文字は1つも含めないでください。
- 2_main_text/sourceにUTF8-BOMで含めたい文字を入れたテキストを置いてください。拡張子はtxtにしてください。
- 3_map_textについても同様にしてください。
- 以上の変更をレポジトリのmasterにpushしておいてください。
- Azure DevOpsの画面を開きます
- 無料で始めるをクリックしてください。Microsoftのアカウント作成が必要です。
- organizationsを1つ作ってください。名前は何でも良いです。
- Projectを1つ作ってください。名前は何でも良いです。
- 作成したProjectを開いてPipelinesを開いてください。
- Pipelineを1つ作成してください。名前は何でも良いです。
- Select a sourceでGitHubを選び、上の方でGitHubにForkしたレポジトリを選んでください。この時、OAuth2の連携が必要になります。
- Select a templateはEmptyほげほげリンクを選んでスキップしてください。
Pipelineを作ります。この画面は最終的な完成品です。 ymlを載せますので頑張ってそれっぽく作ってください。
resources:
- repo: self
lfs: true
queue:
name: Hosted VS2017
#Your build pipeline references the ‘token’ variable, which you’ve selected to be settable at queue time. Create or edit the build pipeline for this YAML file, define the variable on the Variables tab, and then select the option to make it settable at queue time. See https://go.microsoft.com/fwlink/?linkid=865971
variables:
python.version: '3.6'
steps:
- task: UsePythonVersion@0
displayName: 'Use Python $(python.version)'
inputs:
versionSpec: '$(python.version)'
- script: 'python -m pip install pillow'
displayName: 'install pillow'
- powershell: |
cd 1_tool
$targetFolder = './fonts';
$itemList = Get-ChildItem $targetFolder;
foreach($item in $itemList)
{
if($item.PSIsContainer)
{
Write-Host ($item.Name + 'is folder');
}
else
{
powershell ./Add-Font.ps1 -ExecutionPolicy unrestricted ./fonts/($item.Name)
}
}
add-type -AssemblyName system.drawing
(New-Object System.Drawing.Text.InstalledFontCollection).Families
displayName: 'PowerShell Script'
- script: 'mkdir fonts'
displayName: 'create temp folder'
- script: |
cd 3_map_text
mkdir out
python generate.py
cd out
dir
displayName: 'generate map font'
- task: CopyFiles@2
displayName: 'Copy Files to: 3_map_text out'
inputs:
SourceFolder: '3_map_text/out'
Contents: |
*.dds
*.fnt
*.tga
TargetFolder: fonts
- script: |
cd 2_main_text
mkdir out
python generate.py
cd out
dir
displayName: 'generate main font'
- task: CopyFiles@2
displayName: 'Copy Files to: 2_main_text out'
inputs:
SourceFolder: '2_main_text/out'
Contents: |
*.dds
*.fnt
*.tga
TargetFolder: fonts
- task: ArchiveFiles@2
displayName: 'Archive fonts'
inputs:
rootFolderOrFile: fonts
archiveFile: '$(Build.ArtifactStagingDirectory)/$(filename).zip'
- task: jakobehn.jakobehn-vsts-github-tasks.publish-github-release.PublishGitHubRelease@0
displayName: 'Publish GitHub Release Build: $(build.buildNumber)'
inputs:
applicationName: 'font-test'
token: '$(token)'
repo: EU4fontcreate
owner: 'matanki-saito'
tagName: 'Build-$(build.buildNumber)'
releaseName: 'Build: $(build.buildNumber)'
assetsPattern: '$(Build.ArtifactStagingDirectory)/$(filename).zip'
下記よく確認してください。
- git LFSを有効にするチェックが入っているか
- HostはVS2017か
ファイル名やGitHubに成果物を送信するときのアクセスキーなどを登録します。Taskタブの右にVariablesがあるので、ここで下記のように設定してください。
- filename: zipのファイル名
- python.version: pythonのバージョン
- token: GitHubのアクセストークン(ここで作ってください:https://github.com/settings/tokens)
Pipelineをキューに入れて実行を待ちます。処理がうまくいくと、Githubのアセットに生成されたファイルが飛んできます。
処理のトリガーはmasterの修正などにすると良いと思います。