Scaleform フォント

ムービー字幕以外のフォントの話です。
Life is Strange には4つのフォントがあります。
  1. オブジェクト,日記等の手書き風文字
  2. 画面下部に表示される台詞 イタリック
  3. 画面下部に表示される台詞
  4. ポスター,SMS等
これらが swf という形で upk に格納されています。

ここからの情報はアドレスは忘れましたが YouTube にあった UE3+Scaleform の英語情報からです。

作成手順: fla ⇒ swf ⇒ upk
ま ず fla (フラッシュ) を作成します。自分が持っているのは Adobe Flash Professional CS6 なんでこれに UDK-2012-01\Development\Flash の下にあるエクステンションを組み込みます。これが Scaleform です。
フラッシュを作ります。
LIS10
上画像の様にテキストを4作成します。各テキストのプロパティでフォントを指定します。
SN_Font_JA.upk では
  • Normal Font (ふい字P)
  • Italic Font (源柔ゴシックP Italic)
  • Dialogue Font (源柔ゴシックP Regular)
  • Roboto Font (源真ゴシックP)
と設定しています。源柔ゴシックP Italic については後で解説します。
この状態で UDK-2012-01\UDKGame\Flash\SN_Font_JA フォルダに fonts_ja.fla という名前でセーブします。

次に swf 生成するのですが画面左上にある Scaleform Launcher の Test with: GFxMediaPlayer ボタンを押下します。パブリッシュ処理が開始されます。この時にフォントデータが埋め込まれます。
これで fonts_ja.swf が生成されるのでこれを upk 化します。

UDK を起動してコンテンツブラウザから右クリック インポート で生成した UDK-2012-01\UDKGame\Flash\SN_Font_JA\fonts_ja.swf を指定してインポートします。
fonts_ja をセーブすると SN_Font_JA.upk が生成されています。

この SN_Font_JA.upk を Life is Strange が読み込むようにするには
LifeIsStrangeEngine.ini の [Engine.StartupPackages] セクションに Package=SN_Font_JA を追加する。
Life is Strange はこの指定をしなくても読み込まれるようです。

GFxUI.int にある [FontLib] [Fonts] セクションを書き換えるのですが日本語で起動するときは GFxUI.JPN があればそちらを読むので GFxUI.JPN を作成し
[FontLib]
FontLib=SN_Font_JA.fonts_ja

[Fonts]
NormalFont=HuiFontP
ItalicFont=Gen Jyuu Gothic P Italic
DialogueFont=Gen Jyuu Gothic P Regular
RobotoFont=Gen Shin Gothic P Regular

とすると良い。

ItalicFont について、自分の環境によるのかもしれませんがうまくいかなかったため
源柔ゴシックP を FontForge を使ってグリフを回転させたものを 源柔ゴシックP Italic として生成したものを使用する形にしています。