操作
リファクタ #538
完了日本語フォントを Zen Maru Gothic に統一して同梱フォント約25MBを削減する
リファクタ #538:
日本語フォントを Zen Maru Gothic に統一して同梱フォント約25MBを削減する
説明
背景¶
ビルドレポート(2026-07-06 16:29、圧縮 91.1MB / 非圧縮 258.5MB)でフォント関連が非圧縮 33.7MB を占めることが判明。単一アセット最大は案内板(VisitorsInformationBoard)の MPLUSRounded1c-Medium SDF.asset = 静的4096×4096アトラス・5690文字で 16.5MB。ほかに SleepKit2 の HigureGothic が SDF の Dynamic 設定経由で生 TTF 6.3MB を同梱、LuraSwitch2 の NotoSans/Audiowide も同様に TTF 0.6MB を同梱。
案内板はプレイヤー名(任意の Unicode)を表示するため静的サブセット化は不可。動的アトラス化で任意文字対応と削減を両立する。yama-stream パッケージの UI が使う ZenMaruGothic-Regular.ttf(3.7MB)はどのみち同梱されるため、これを共通日本語フォントの軸にする(ユーザー確認済み 2026-07-06)。
対応内容¶
- Assets に TMP フォントアセット「ZenMaruGothic-Regular SDF (Dynamic)」を新規作成(ソース = Packages/net.kwxxw.yama-stream の TTF、動的アトラス 1024、マルチアトラス有効)
- 案内板の TMP 29箇所を新フォントに差し替え、アウトライン材質プリセット(MPLUSRounded1c-Medium SDF Material_outline)相当を新アトラス用に作成 → M+ SDF 16.5MB が同梱対象外に
- SleepKit2 の TMP 91箇所(SDF / SDF Overlay 両系統。Overlay は専用材質を用意)を差し替え → HigureGothic TTF 6.3MB + SDF 2点 2MB が対象外に。SleepKit の旧 UI Text(非 TMP)が Higure を使っていないかも走査して確認
- LuraSwitch2 の NotoSans-Light SDF / Audiowide-Regular SDF を Dynamic→Static 化(現在のグリフは固定 UI 文字のみ)してソース TTF 参照を解除 → TTF 0.6MB が対象外に
- M+ / Higure のファイル自体はサードパーティ配布物のためリポジトリには残す(参照を外せば同梱されない)
完了条件¶
- ビルドのフォント関連合計が 33.7MB → 10MB 以下(非圧縮)
- 実機で: 案内板の参加者名表示(日本語名・英語名)、SleepKit UI、LuraSwitch の文字表示が正常
- ZenMaru 収録外の文字(ハングル・絵文字等)は従来同様表示不可であることを許容(必要ならフォールバック追加を別途検討)
操作